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 — "zero-glue" meaning nothing to wire together by hand — 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 ownVITE_POCKETBASE_URL. Writedb.collection<Message>("messages").create(...), not raw REST. The Dockerfile declaresARG VITE_POCKETBASE_URLso 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-inuserscollection. 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— keyless normal and streamed completions when the instance reports managed inference operational. Percher injects only its public endpoint URL; the browser authenticates with the signed-in user's PocketBase JWT and never receives a provider credential. CheckGET /capabilitiesbefore building on it. When disabled or misconfigured the URL is absent and calls fail closed. See Managed AI inference.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.