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 = "static"

Ship Static site in ~2 minutes.

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, then prints the live URL.

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?

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

Sign up free →