Skip to main content
Percher is still being built, but you can try it out with a free account right now!
← All deploy guides
Deploy guide · runtime = "node"

Ship SvelteKit in ~2 minutes.

SvelteKit is Svelte's fullstack framework — file-based routing, server endpoints, form actions, and a small runtime. On Percher it runs with `adapter-node`, the Node-targeted production adapter.

Why Percher fits

  • `adapter-node` writes a single Node entrypoint (`build/index.js`) that Percher runs directly — no platform-specific edge adapter to wire up.
  • Auto-forwards `PUBLIC_*` env vars (SvelteKit's client-bundle convention) at build time.

Quick start

bunx percher create my-app --template sveltekit
cd my-app
bunx percher publish

The first command scaffolds a working SvelteKit project plus a percher.toml. Publish builds and deploys it, then prints the live URL.

percher.toml

The canonical config for a SvelteKit app on Percher. bunx percher init generates this automatically when it detects SvelteKit in your project.

[app]
name = "my-app"
runtime = "node"
framework = "sveltekit"

[build]
command = "bun run build"
output = "build"

[web]
port = 3000
health = "/health"

Common gotchas

  • Use `output = "build"` — that's the directory `adapter-node` writes. `.svelte-kit/` is an internal cache directory and is not what the production server runs from.
  • Add a `+server.ts` at `src/routes/health/+server.ts` returning a `Response` with status 200, otherwise the deploy health check fails.
  • Install `@sveltejs/adapter-node` and configure `svelte.config.js` to use it — the default `adapter-auto` won't pick the right target on Percher.

Related docs

Ready to deploy SvelteKit?

Start on the Free plan. No credit card, live in ~2 minutes.

Sign up free →