Skip to main content
PercherPercher

For vibe coders

Hosting for the way you actually code now.

You don't write Kubernetes manifests. You don't schedule deploy windows. You describe what you want, your AI assistant writes the code, and you watch it work. Percher is the host that fits inside that loop — one MCP tool call away from your editor, with everything an app actually needs already wired up.

The deploy step shouldn't break flow

Most hosting platforms were built for a workflow that no longer matches how vibe coders actually ship. They expect a separate dashboard for the deploy. They expect you to handwrite YAML or wire up GitHub Actions. They want a region, a build command, a buildpack, a Procfile. None of that is the work — the work is describing what you want and letting your assistant build it. Percher is hosting that fits inside that loop.

The first time you use it, that gap is what stands out. You finish a feature inside Claude Code, say "ship it", and a few seconds later the live URL is in the chat. No tab switch. No second login. No yaml. The assistant calls percher_publish as a tool, the build streams in the same conversation, and if anything goes wrong it calls percher_doctor and reads back the fix.

What you get without configuring anything

  • Auto-detect. bunx percher init inspects your project and writes a working percher.toml. Next.js, SvelteKit, Astro, Vite, FastAPI, Django, Express, Bun — 29 frameworks detected out of the box. You don't pick a buildpack.
  • PocketBase batteries. Every app can opt into a managed PocketBase instance — SQLite, authentication, and S3-compatible file storage in a single container, reachable via POCKETBASE_URL. No separate database to provision; no auth provider to wire up.
  • Outbound HTTPS proxy. Your app reaches any external API (OpenAI, Stripe, Resend, Supabase, Polar, the Web Push services) by setting HTTPS_PROXY — which Bun and modern Node honor automatically. No host allowlist, no certificate dance.
  • Predictable cost. €0, €3, €12, or €29 per month — flat. No per-GB bandwidth invoice on the weekend your post hit Hacker News. No surprise.
  • Rollback by tool call. "Roll back the last deploy" is percher_rollback with the previous deploy id — instant, no manual steps.

A typical session

What it actually looks like from inside the assistant:

you   : build a tiny URL shortener with PocketBase
claude: (writes server.ts, package.json, schema)
you   : ship it to percher as "snip"
claude: (calls percher_publish)
        → Building image (12s)
        → Health check ok
        → Live at https://snip.percher.run
you   : add a click count on each URL
claude: (edits server.ts, calls percher_publish again)
        → Build cache: layer hit (8s)
        → Live
you   : the count isn't incrementing
claude: (calls percher_logs --tail 50, reads error)
        → Missing migration. Apply it?
you   : yes
claude: (fixes migration, calls percher_publish)
        → Live. Try it now.

The point isn't the speed; it's that nothing in this loop required leaving the chat. The build log, the failure, the fix, the redeploy — all in the same context the code lives in.

Where Percher fits — and where it doesn't

Percher is built for solo builders and personal apps. One region, in Germany. Flat per-account pricing. An opt-in managed PocketBase sidecar (set [data] mode = "pocketbase" in your toml and it comes up alongside the app). That makes it a great fit for apps you build for yourself or your close circle — internal tools, side projects, weekend hacks, single-purpose utilities, the kind of small thing that a vibe coder thinks of in the shower and ships by the afternoon.

It's not the right fit for a monetised SaaS or an app for paying customers. Percher today has no uptime SLA, no formal compliance certification (SOC 2, HIPAA), and one region — that's a deliberate scope decision for the audience above. If you're shipping a multi-region SaaS, an app under a customer contract, or anything where downtime has financial consequences, a higher-tier provider is the safer call. The decision guides are explicit about where each competitor wins.

FAQ

I haven't set up MCP yet. Do I need it?

No — `bunx percher publish` works straight from your terminal, no MCP setup required. The MCP path is the polish: when your AI assistant can call publish, logs, and rollback as tool calls, you stop context-switching. But the CLI is the foundation and works without any MCP integration at all.

Does this work with Cursor and Windsurf, or only Claude Code?

Any MCP-compatible assistant. Percher ships an MCP server with ~37 tool calls (publish, logs, env, rollback, doctor, …) that registers identically with Claude Code, Cursor, Windsurf, Continue.dev, or any other client implementing the MCP spec. Run `bunx percher mcp` to print the config for your assistant.

What if my AI ships broken code and the app crashes?

`percher_doctor` is the recovery hub. It reads the deploy logs, classifies the failure (build error / health check timeout / missing env var / OOM / crash loop), and returns a structured `recovery.nextAction` your AI can follow — set the missing env var, fix the source line, retry, or roll back. The point is that crash → fix loop happens inside the assistant, not in a separate dashboard tab.

What about Vercel-specific tricks like edge functions and image optimization?

Edge functions need to be converted back to Node (Percher's compute is regional containers, not edge — that's a deliberate single-region trade-off). Image optimization works for Next.js apps unchanged. Vercel KV, Postgres, and Blob have no direct equivalent; opt into the managed PocketBase sidecar with `[data] mode = "pocketbase"` for the SQLite + auth + file-storage shape, or point `DATABASE_URL` at any external Postgres.

Ship from the prompt

Free plan, no credit card. Then run bunx percher mcp to wire up your assistant.

Sign up free