SvelteKit hosting in Europe

Push a SvelteKit app with adapter-static and it builds in Paris and goes live on Bunny.net's CDN, as a prerendered site or as a single-page app.

Two shapes, one adapter.

adapter-static builds SvelteKit either way. The difference is what sits behind a path that has no file of its own, and both work on every address we serve, previews and custom domains included.

Prerendered site

Adapter fallback
undefined
Root +layout.js
prerender = true
/about answers with
about.html · 200
A missing path
404 · your 404.html if any

Marketing sites, docs, blogs. Every URL is real HTML for search engines and link previews.

Single-page app

Adapter fallback
'200.html'
Root +layout.js
ssr = false
/about answers with
200.html · 200
A missing path
200.html · 200

Apps behind a login, where routes depend on data that only exists in the browser.

What goes in svelte.config.js.

An example config. Swap adapter-auto for adapter-static, keep the output in build, and add the fallback line only if you are building a single-page app.

svelte.config.js
  1. import adapter from '@sveltejs/adapter-static';
  2. /** @type {import('@sveltejs/kit').Config} */
  3. const config = {
  4. kit: {
  5. adapter: adapter({ adapter-static, not adapter-auto.
  6. pages: 'build', The folder we upload.
  7. assets: 'build',
  8. fallback: '200.html', Only for a single-page app.
  9. }),
  10. },
  11. };
  12. export default config;

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 SvelteKit alone yet; at our size it could point at one customer. The live numbers are on /open.

What SvelteKit does here that we cannot yet.

  • Server rendering Server load functions, form actions and +server.js endpoints need a server. We serve files. Server code beside the site can be a function (beta), but SvelteKit does not deploy to it by itself.
  • Your Node version Builds run Node 24. We do not read .nvmrc or the engines field yet.
  • A build cache Nothing carries over between builds, so dependencies install from scratch each time.

Questions about SvelteKit on deploybase.

Something else? Write to support@deploybase.eu. A person answers.

Does deploybase run SvelteKit server-side rendering?

No. We serve the files adapter-static writes, with no Node process behind them. Server load functions, form actions and +server.js endpoints that run on each request have nothing to run them. If you need server code beside the site, put it in functions/, which is in beta on paid plans.

Functions
My project uses adapter-auto. Will it build?

It builds, but adapter-auto does not recognise deploybase, so it writes no site to build/ and the deploy fails on an empty folder. Install @sveltejs/adapter-static and use it in svelte.config.js instead.

How does a single-page app get its deep links?

Set fallback: '200.html' in the adapter options. We find 200.html in each deployment and serve it for any path that has no file of its own, so a hard reload on /settings/billing lands in your app. It works on production, preview and custom-domain addresses alike, with nothing to switch on.

Which package manager does the build use?

The one your lockfile names: pnpm, Yarn or npm, or the packageManager field in package.json if it is set. With a lockfile, dependencies install with install scripts switched off.

How is a SvelteKit site cached?

Files under /_app/immutable/ carry a hash in their name, so they are cached for a year. HTML is cached at the CDN and checked by the browser on every visit, and a new deploy clears it.

What does a build cost?

Build minutes. Free includes 200 a month, Starter 1,000, Pro 3,000 and Scale 10,000, and a failure on our side or a build you cancel never counts. The median build on deploybase takes 40 seconds.

Pricing

Put your SvelteKit app live.

Create a team on the free plan and connect the repository. The settings are already SvelteKit's.