Skip to main content
Percher is still being built, but you can try it out with a free account right now!

Capsule — the zero-glue full-stack lane

Scaffold a db + auth + realtime app with the schema pre-provisioned

A capsule is Percher's opinionated, zero-glue lane for a small full-stack app that needs a database and sign-in. It's a pre-wired template on top of a PocketBase sidecar — typed data client, realtime helper, and email/password sign-in are already wired, and Percher applies the app's schema (pb/schema.json) to PocketBase before the app goes live, so the demo works on first publish instead of 500-ing on the first write.

Scaffold & publish

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

What ships pre-wired

  • src/lib/db.ts — typed PocketBase client pointed at the app's own VITE_POCKETBASE_URL. Write db.collection<Message>("messages").create(...), not raw REST. The Dockerfile declares ARG VITE_POCKETBASE_URL so the value is baked into the bundle at build time.
  • src/lib/realtime.ts subscribe("messages", cb) wraps PocketBase realtime so cross-tab/cross-user sync is one call.
  • src/components/Auth.tsx — email/password sign-up + sign-in against PocketBase's built-in users collection. Works on day one with zero provider config; Google sign-in is a one-command add-on (percher data oauth google).
  • src/lib/ai.ts complete(prompt) for KEYLESS managed inference: no API key, billed to your Percher plan, only for signed-in users (zero-data-retention).
  • pb/schema.json — the declarative schema (collections + access rules) Percher provisions. Additive-only and rollback-safe: new collections/fields apply, an older descriptor is a no-op, and a breaking change (a field type change, a tightened rule) fails the deploy before it ships.

The capsule is one fast lane, not a replacement — Percher still hosts any app in any language. Reach for a capsule when you're building a new small app that needs a database and sign-in.