# Where to host a Vue app in Europe in 2026

Last updated: 2026-11-10

A Vue app built with `create-vue` is a Vite project, so after `npm run build` it's a `dist` folder of static files. **Eurobase** builds it from Git and serves it from European infrastructure, with the `index.html` fallback for Vue Router already in place, for free or a flat €10 a month. **statichost.eu** is a Swedish host made only for static sites, **Clever Cloud** and **Scalingo** suit teams that want the Vue front end next to a backend and a managed database, and **Coolify on Hetzner** suits people who'd rather run their own server.

If your app uses server-side rendering through Nuxt, read [Nuxt hosting in Europe](/i/nuxt-hosting-europe) instead.

## Vue hosting in Europe at a glance

| Platform | Company | How a Vue build is served | Starts at | History-mode fallback |
|---|---|---|---|---|
| Eurobase | Warsaw, Poland | Built from Git, run on V8 isolates | Free, then €10 a month + VAT | Built in for Vite apps |
| statichost.eu | Stockholm, Sweden | Built from Git, served as static files | Free for 1 site, then €9 a month | A `/* /index.html 200` rewrite |
| Clever Cloud | France | Static application, build command and web root set by you | Free credits, then by instance size | Not documented |
| Scalingo | Strasbourg, France | Node.js and Nginx buildpacks, or a small Express server | €7.20 a month for 256 MB, excl. VAT | `try_files` in your `nginx.conf` |
| Coolify on Hetzner | Open source, on a German host | Nixpacks build, Static site type | Free software, plus a Hetzner server from €5.49 a month excl. VAT when it can be ordered | Same Static setup, per its Vue page |

Prices are from each provider's own page, checked on 9 and 10 November 2026.

## What to check before you pick a host for Vue

- **Refreshing a deep link.** With `createWebHistory()`, Vue Router's docs warn that opening `/user/42` directly returns 404 unless the server falls back to `index.html`. Find out how each host does that, and add a catch-all route in the router so real 404s still show a page.
- **Build-time variables.** Anything in `import.meta.env.VITE_*` is baked into the JavaScript at build time. The host must pass those values to the build, and they're visible to every visitor, so keep secrets out of them.
- **Where the API lives.** A Vue SPA usually calls a backend. A host that can also run that API, or sit next to a database, saves you a second provider and a CORS setup.
- **Who you sign with.** The company on the contract decides which laws apply, not the city of the server. See [EU region vs EU company](/i/eu-region-vs-eu-company-cloud-act).

## 1. Eurobase

Eurobase deploys from GitHub, GitLab, Codeberg, Forgejo or Gitea. It detects a Vite project, installs exactly what your lockfile lists and runs the build itself, with no build command or output folder to enter. Coding agents can also deploy it through the Eurobase MCP server or CLI. The result runs on V8 isolates on European infrastructure run by Scaleway, a French provider. Unknown paths already go to `index.html`, so Vue Router in history mode works on refresh. Redirects and headers go in `_redirects` and `_headers` files in Vite's `public` folder.

`VITE_` values belong under **Build** as variables, not secrets, because Vite writes them into the bundle. If a build secret ever lands in the output, Eurobase stops the deployment rather than publish it. Vite needs to be 6.1.0 or later, and you commit exactly one lockfile.

- **Best for:** Vue SPAs that may later need an API, a function or a SQLite database on the same platform, at a price that doesn't move with traffic.
- **Price:** free for 2 projects. Starter costs €10 and Pro €20 a month + VAT, and that covers the whole workspace however many members join. Usage isn't billed today: work over a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites keep serving.
- **Company:** a business registered in Warsaw, Poland.
- **What it lacks:** preview deployments, Dockerfile builds, a worldwide CDN and managed Postgres, MySQL or Redis. Neither ISO 27001 nor SOC 2 is held yet, and both are in progress.

The [Deploy a static site](/docs/guides/static-site) guide covers Vite builds, and [Workers](/docs/workers) lists the build limits.

## 2. statichost.eu

statichost.eu is an independently owned host in Stockholm that only serves static files. It clones your repository from any Git provider, runs your build and publishes the output, and says every layer runs on European providers, with no AWS or Cloudflare. For a Vue SPA you add a `/* /index.html 200` rewrite, which its routing docs describe as the way a client-side app should work.

- **Best for:** a Vue front end whose API already lives somewhere else.
- **Price:** the free Hobby plan covers 1 site, 10 GB of bandwidth and 100 build minutes, and asks for no card. Starter at €9 a month includes 500 GB, with extra traffic at €1 per 10 GB, and Professional at €49 a month raises that to 1 TB and adds a performance CDN.
- **What it lacks:** server code. Its docs say server rendering isn't supported, branch preview links are marked coming soon, and the worldwide CDN is in private beta.

## 3. Clever Cloud

Clever Cloud, a French platform, runs static sites, Node.js apps and databases from one account. For a Vue build, you create a Static application, set `CC_BUILD_COMMAND` to your build and `CC_WEBROOT` to `/dist`. It serves the folder with Static Web Server, or with Caddy if you commit a Caddyfile, and an `sws.toml` file sets things like a 404 page or cache headers. Its infrastructure page lists datacenters around Paris and elsewhere in France, plus sites such as London and Warsaw, most of them marked ISO 27001.

- **Best for:** a Vue front end that sits beside a Node.js or Python API and a managed Postgres from the same provider.
- **Price:** billed by the second by instance size and count, with free credits and no card needed to start.
- **What it lacks:** an `index.html` fallback for history mode in its static guide, so you work out the server setting yourself.

## 4. Scalingo

Scalingo is a Heroku-style platform run by Scalingo SAS in Strasbourg. Its docs offer two ways to serve a built front end: a small Express server that serves `dist`, or the Node.js and Nginx buildpacks together, where Node.js builds the app and Nginx serves it. The Nginx config in its docs already includes `try_files $uri $uri/ /index.html`, which is the fallback Vue Router asks for. There is a SecNumCloud region next to the standard one.

- **Best for:** teams already on Scalingo for the backend, or French projects that need its SecNumCloud region.
- **Price:** the 256 MB container is €7.20 a month excl. VAT, and €8.64 in the SecNumCloud region. A 30-day free trial is available.
- **What it lacks:** a Vue page in its documentation. You assemble the buildpacks, `nginx.conf` and `Procfile` yourself, and a container runs all the time even for plain files.

## 5. Coolify on Hetzner

Coolify is an open-source dashboard that gives a server you rent Git deploys, and its docs include a Vue page. For a static SPA you pick the Nixpacks build, choose **Static** as the site type and set the output to `dist`. Its recipe for an app that uses Vue Router lists the same steps. Hetzner, a German host, rents the servers.

- **Best for:** developers who are at home on Linux and want many small sites on one machine.
- **Price:** self-hosted Coolify is free, and Coolify Cloud is $5 a month for 2 connected servers. A Hetzner CPX02 in Helsinki is listed at €5.49 a month excl. VAT, or €6.49 in Falkenstein or Nuremberg, but Hetzner showed its cheapest plans as unavailable to order on 10 November 2026.
- **What it lacks:** someone to look after the box. Operating system patches, backups and a dead disk at 3 a.m. are your problem.

## How to choose

- Pick **Eurobase** if you want to push a Vite project and get a working history-mode app without touching server config, and might add an API later.
- Pick **statichost.eu** if the Vue app is purely a front end and you want a small European company running every layer.
- Pick **Clever Cloud** or **Scalingo** if the backend and its Postgres database are the bigger part of the bill and the front end just rides along.
- Pick **Coolify on Hetzner** if you'd rather spend your own time than money.

Coming from another host? See [Migrate from Netlify](/docs/guides/migrate-from-netlify), [Migrate from Vercel](/docs/guides/migrate-from-vercel) or [Migrate from GitHub Pages](/docs/guides/migrate-from-github-pages).

## Frequently asked questions

### Why does my Vue app show 404 when I refresh a page?

Vue Router's history mode changes the URL in the browser without asking the server. When you refresh `/settings`, the server looks for that file, doesn't find it and answers 404. The fix is a fallback that serves `index.html` for unknown paths. Eurobase sets it up for Vite apps, and statichost.eu and Scalingo document the rule you add yourself.

### Can I host a Vue app in Europe for free?

Yes. Eurobase has a Free plan with 2 projects, statichost.eu's Hobby plan covers 1 site, and Clever Cloud gives free credits to start. Self-hosted Coolify is free too, but you still pay for the server it runs on.

### Do I need a Node.js server to run a Vue app?

Not for a single-page app. `npm run build` produces static files, and Vite's own docs say `vite preview` is only for checking the build locally, not for production. You need a Node.js server only for server-side rendering, which most teams do with Nuxt.

### Where should I put my Vue app's API keys?

Not in `VITE_` variables. Vite writes those into the JavaScript that every visitor downloads. Keep secret keys on a server or function that the Vue app calls, and use `VITE_` only for public values such as an API address.

## Sources

- [Vue production deployment](https://vuejs.org/guide/best-practices/production-deployment.html) and [Vue Router history mode](https://router.vuejs.org/guide/essentials/history-mode.html)
- [Vite: deploying a static site](https://vite.dev/guide/static-deploy)
- [statichost.eu](https://www.statichost.eu/), [statichost.eu pricing](https://www.statichost.eu/pricing/), [statichost.eu docs](https://www.statichost.eu/docs/), [statichost.eu routing](https://www.statichost.eu/docs/routing/) and [statichost.eu SSG guides](https://www.statichost.eu/docs/ssg-guides/)
- [Clever Cloud static applications](https://www.clever.cloud/developers/doc/deploy/applications/static/), [Clever Cloud pricing](https://www.clever.cloud/pricing/) and [Clever Cloud infrastructure](https://www.clever.cloud/infrastructure/)
- [Scalingo static files only application](https://doc.scalingo.com/platform/app/static-files-hosting), [Scalingo Angular guide](https://doc.scalingo.com/languages/nodejs/angular) and [Scalingo pricing](https://scalingo.com/pricing)
- [Coolify Vue docs](https://coolify.io/docs/applications/vuejs), [Coolify pricing](https://coolify.io/pricing/) and [Hetzner Cloud](https://www.hetzner.com/cloud/)
- [Eurobase static site guide](/docs/guides/static-site), [Eurobase Workers](/docs/workers), [Eurobase pricing](/pricing), [Eurobase plans](/docs/plans) and [Eurobase subprocessors](/legal/subprocessors)
