Skip to main content
PercherPercher

Deploy guide · runtime = "node"

Deploy SvelteKit on Percher

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; the live URL prints on completion.

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?

Free plan, no credit card. Live in under a minute.

Sign up free

← Browse all deploy guides