A 5-minute tour of the UseDeploy boilerplate
From `bun install` to a logged-in dashboard with a paid subscription, in five minutes flat.
MC
Martin Coll
Most boilerplates either give you a create-next-app skeleton with three folders, or a 200-package monolith you cannot navigate. UseDeploy sits in the middle: enough scaffolding to feel real, little enough to keep in your head.
The shape
Two apps, three packages:
apps/server— Express + Prisma + BetterAuth, organized by bounded context (iam,billing,storage,jobs,notifications).apps/client— Next.js 16 App Router + Tailwind v4 + shadcn primitives + Fumadocs.packages/contracts— Zod schemas + inferred types shared between both apps.packages/shared— domain primitives (Result, branded IDs, error types).packages/eslint-config— flat config that enforces DDD layering.
The path
bun installfrom the repo root.docker compose up -dfor Postgres + Redis.bun --filter @app/server prisma:migrateto apply migrations.bun dev— server on :3000, client on :3004, docs on /docs.- Sign up. Hit the dashboard. Subscribe with the Stripe test card. You're done.
What you skip
You skip rolling your own auth, building a Stripe webhook handler that does not double-process events, gluing OpenAPI to your Zod schemas, wiring rate limiting tiers, and writing the same User aggregate for the seventh time.
You start where you actually wanted to start: writing your domain.