ZeroStarter

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

  1. Quickstart: two commands to a running, signed-in app.
  2. Architecture: the stack, and why each piece is here.
  3. Project Structure: two apps, four packages, one import graph.
  4. The Type-Safe API: how one type crosses every boundary.
  5. Working with Agents: the loop an AI agent uses to build here.