Nuxt hosting in Europe
Push a Nuxt app and it builds in Paris. Generated, it is a static site on Bunny.net's CDN. With our Nitro preset, the pages you do not prerender render on a server in Paris.
Your pages in, your addresses out.
The Nuxt step of a real build of our Nuxt 4 example on deploybase. Pages with a prerender rule are written as files and served by the CDN. Everything else, server/api included, goes to your Nitro server, and a static file always wins.
app/pages/index.vue/Prerendered, from the CDNapp/pages/about.vue/aboutPrerendered, from the CDNapp/pages/now.vue/nowRendered on each requestapp/pages/swr.vue/swrRendered, then cached 60 sserver/api/echo.ts/api/echoYour server, any methodserver/api/cached.get.ts/api/cachedYour server, cached handler
Nitro preset: deploybase 18 files to the CDN · server 138 files SSR output detected (nitro 2.13.5, catch-all)One line in nuxt.config, and route rules you already know.
The same example's config. The preset is the only line written for us; the route rules decide what is prerendered and what runs per request. Prerender everything that does not change per request.
export default defineNuxtConfig({compatibilityDate: '2026-10-01',nitro: {preset: '@deploybase/nitro-preset',The one line for us. Skip it for a static site.},runtimeConfig: {greeting: 'not set',Set by NUXT_GREETING at runtime.},routeRules: {'/': { prerender: true },Served from the CDN; never starts the server.'/about': { prerender: true },'/swr': { swr: 60 },Cached in the server's memory, per instance.},});
What a request costs.
One request to each kind of address on the example's live site, measured on 31 October 2026. The server scales to zero when it goes quiet, so the first request after a pause waits for it to start; the next one does not.
/Prerendered page, from the CDN0.54 s/nowOn-demand page, server asleep10.19 s/api/echoServer route, server awake0.54 s/_nuxt/missing.jsMissing asset, your 4040.24 s
How long a build takes here.
The median build on deploybase, from build start to live, across every framework and every team. Counted on 25 September 2026.
- Mean, pulled up by a few long builds
- 78 s
- Builds timed
- 1,641
- Builds that succeed
- 81.5 %
- Time limit per build
- 15 min Free, 30 min paid
Failed builds are left out of the times: they measure how long we took to give up. There is no figure for Nuxt alone yet; at our size it could point at one customer. The live numbers are on /open.
What Nuxt does here that we cannot yet.
- Edge caching of server responses Every on-demand response is sent with Cache-Control: private, no-store, whatever your code sets. swr and cache route rules work, but in the server's memory, so each instance keeps its own copy. Prerender what can be cached.
- Storage, tasks and sockets useStorage() lives in memory and is gone when the server scales to zero; point it at a remote unstorage driver for anything that must last. Scheduled tasks do not run, WebSockets are not supported, and the default SQLite database is empty per instance. The build log warns about each.
- A server that stays awake A live site sleeps after 30 minutes without visitors (during the beta that window is shared capacity, and it can drop to about 2 minutes when full), and the first request after that waits several seconds, as the 10.19 s above shows.
- Nitro 3 The preset is for Nitro 2, which Nuxt 4 runs on. Nitro 3 apps, such as TanStack Start, build as static sites only for now.
Questions about Nuxt on deploybase.
Something else? Write to support@deploybase.eu. A person answers.
Does deploybase run Nuxt server-side rendering?
Yes, in beta on paid plans, for Nuxt 4 (Nitro 2). Install @deploybase/nitro-preset and set nitro.preset to it in nuxt.config.ts. Prerendered pages and assets come from the CDN; on-demand pages and server/api routes run on a function in Paris. It works on your deploybase address, branch previews and custom domains.
Nuxt guideDo I need the preset?
Not for a static site. Without it, detection builds with your generate script and publishes .output/public, the way nuxi generate leaves it. Install the preset and detection switches to npm run build and .deploybase/v1/static. If your build script runs nuxt build with no generate script and no preset, detection stops and says which of the two to pick, because a server build has nothing to publish on its own.
I use another Nitro preset today. What changes?
Remove it. Output written for cloudflare-pages, vercel or netlify cannot run here: take it out of nitro.preset, and drop NITRO_PRESET from the build environment if you set it there. Your pages, server routes and route rules stay as they are.
What happens on the Free plan?
The build still succeeds and the prerendered pages go live, but on-demand pages answer 404, and the build log says why. Server rendering runs on HTTP functions, which come with Starter, Pro and Scale. After upgrading, deploy again: the server is set up when a deployment is built.
PricingHow do environment variables reach my server?
Variables with Runtime ticked on the project's Environment page reach the server through process.env, so useRuntimeConfig picks up the NUXT_ ones. Each deployment keeps the values it was built with: production gets the production values, a branch preview the preview values, and a rollback brings back the old ones.
Put your Nuxt app live.
Create a team on the free plan and connect the repository. The settings are already Nuxt's.