Skip to main content
PercherPercher

Deploy guide · runtime = "static"

Deploy Static site on Percher

Plain HTML, CSS, and JavaScript with no build step. Percher serves the project directory through a minimal Caddy container behind automatic SSL. Right for landing pages, documentation sites, and single-page handouts that don't need a bundler.

Why Percher fits

  • Static apps run on Percher's slim Caddy image — a few MB, instant cold start, no Node process to wake up.
  • Auto SSL via Let's Encrypt, gzip + zstd compression, and HTTP/3 (h3) come for free with every deploy.

Quick start

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

The first command scaffolds a working Static site project plus a `percher.toml`. Publish builds and deploys it; the live URL prints on completion.

percher.toml

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

[app]
name = "my-site"
runtime = "static"

Common gotchas

  • The static runtime serves pre-built files only — it rejects a `[build].command`. If you need a build step (Vite, Astro, Eleventy), use `runtime = "docker"` with a multi-stage Dockerfile instead.
  • Files are served from the project root by default; set `[build].output = "dist"` (or similar) only if the assets live in a subdirectory.

Related docs

Ready to deploy Static site?

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

Sign up free

← Browse all deploy guides