Deploy guide · runtime = "node"
Deploy Remix on Percher
Remix is a fullstack React framework with nested routes, server loaders, and form actions. Newer projects use Vite; either way, on Percher it runs on the Node runtime through the Node adapter.
Why Percher fits
- Long-running Node container fits Remix's `loader`/`action` model — no platform-specific shims for streaming responses or `defer()`.
- Auto-forwards `VITE_*` env vars for Vite-based Remix projects, so client-side env wiring matches how Remix docs describe it.
Quick start
bunx percher create my-app --template remix
cd my-app
bunx percher publishThe first command scaffolds a working Remix project plus a `percher.toml`. Publish builds and deploys it; the live URL prints on completion.
percher.toml
The canonical config for a Remix app on Percher. `bunx percher init` generates this automatically when it detects Remix in your project.
[app]
name = "my-app"
runtime = "node"
framework = "remix"
[build]
command = "bun run build"
output = "build"
[web]
port = 3000
health = "/health"
Common gotchas
- Install `@remix-run/node` (or `@remix-run/serve` for the bundled server) — the platform-specific build target matters.
- Add a `app/routes/health.tsx` with a `loader` returning `Response.json({ status: "ok" })`; without it the health check fails.
- React Router 7 fullstack mode (Remix's continuation) uses the same shape — `framework = "remix"` still applies.
Related docs
Ready to deploy Remix?
Free plan, no credit card. Live in under a minute.
Sign up free