Introduction
Modern, type-safe/RPC starter monorepo with foundations for building scalable SaaS products with clean architecture, automation, and great developer experience.
ZeroStarter is a minimal, strictly-typed SaaS monorepo (Bun, Turborepo, and a single type that runs from Postgres to the DOM) built so a human and an AI agent can both read it end to end.
It ships the load-bearing parts of a SaaS (auth, a typed API, a database with migrations, docs, and deploy) already wired together, so your first day goes to your product instead of plumbing.
Both audiences are first-class. The codebase is small and strict on purpose, and it hands an AI agent the same footing it hands you: executable skills, a typed API that rejects wrong calls, a one-request local sign-in, and generated llms.txt context. Point Claude Code, Cursor, or your own agent at it and it can build a real feature.
What's inside
- Auth & organizations: Better Auth with optional GitHub and Google OAuth (each button appears only when its credentials are set), organizations and teams, and a role ladder that gates the console.
- A typed API: Hono with end-to-end RPC. The frontend infers its types from the backend, so a wrong call fails at compile time, not in production.
- Database & migrations: PostgreSQL and Drizzle on Bun's SQL driver, schema-first, with generated migrations you apply in one command.
- Docs: Fumadocs with search and an auto-generated
llms.txt, the site you're reading now. - Deploy: Docker and Vercel configs that ship the same code you develop against.
All of that is real and working. The dashboard and console are auth-gated shells: a signed-in starting point, not a pre-built app. You build your product on them.
Start here
- Quickstart: two commands to a running, signed-in app.
- Architecture: the stack, and why each piece is here.
- Project Structure: two apps, four packages, one import graph.
- The Type-Safe API: how one type crosses every boundary.
- Working with Agents: the loop an AI agent uses to build here.