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

Ship Elysia (Bun) in ~2 minutes.

Elysia is a Bun-first API framework with end-to-end TypeScript inference. Routes, middlewares, and validators all share types automatically. On Percher it ships on the Bun runtime — same image used to build everything else.

Why Percher fits

  • Bun runtime is the supported path for Elysia; no Node compatibility layer to maintain.
  • Elysia's startup is fast enough that the Free-tier cold-start-from-sleep is essentially imperceptible.

Quick start

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

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

percher.toml

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

[app]
name = "my-api"
runtime = "bun"
framework = "elysia"

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

Common gotchas

  • `new Elysia().listen(process.env.PORT)` — Percher injects the port; hardcoding it works locally but not in production.
  • Plugin order matters in Elysia; make sure `cors`, `auth`, and similar plugins are mounted before route handlers that depend on them.

Related docs

Ready to deploy Elysia (Bun)?

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

Sign up free →