# ZeroStarter

> Modern, type-safe/RPC starter monorepo with foundations for building scalable SaaS products with clean architecture, automation, and great developer experience.

## Documentation

> Complete documentation for ZeroStarter

- [Introduction](https://zerostarter.dev/docs.md): Modern, type-safe/RPC starter monorepo with foundations for building scalable SaaS products with clean architecture, automation, and great developer experience.
- [Quickstart](https://zerostarter.dev/docs/getting-started/setup.md): Go from one command to a running, signed-in app, and where to go next.
- [Architecture](https://zerostarter.dev/docs/getting-started/architecture.md): The stack, and why each piece is here: one typed monorepo from Postgres to the DOM.
- [Project Structure](https://zerostarter.dev/docs/getting-started/project-structure.md): How the monorepo fits together: two apps, their packages, one import graph.
- [CLI](https://zerostarter.dev/docs/getting-started/cli.md): Scaffold, re-scaffold, and re-baseline a fork: the init, reinit, and sync commands.
- [The Type-Safe API](https://zerostarter.dev/docs/getting-started/type-safe-api.md): How one AppType flows from Hono routes to a fully-typed client, with no codegen.
- [Realtime](https://zerostarter.dev/docs/getting-started/realtime.md): WebSockets on Hono: one typed client, a Bun and Node adapter split for Vercel, and a REST-baseline fallback.
- [API Conventions](https://zerostarter.dev/docs/manage/api-conventions.md): The { data } / { error } envelope, error codes, and middleware every route shares.
- [Rate Limiting](https://zerostarter.dev/docs/manage/rate-limiting.md): Layered rate limits keyed by user, API key, or IP, with a higher tier for authenticated requests.
- [Database](https://zerostarter.dev/docs/manage/database.md): PostgreSQL with Drizzle: the schema, and the generate-then-migrate loop.
- [Auth & Organizations](https://zerostarter.dev/docs/manage/authentication.md): Better Auth with OAuth, organizations, teams, and the role gate behind /console.
- [Allowlist](https://zerostarter.dev/docs/manage/allowlist.md): Grant console access by domain or address, without promoting people one at a time.
- [Activity](https://zerostarter.dev/docs/manage/activity.md): A readable trail of every console write: who changed a role, banned an account, edited the allowlist, or removed a signup.
- [Organizations & Teams](https://zerostarter.dev/docs/manage/organizations.md): Multi-tenant from Better Auth: the org and team data model, roles, invitations, and active-org switching.
- [Environment Variables](https://zerostarter.dev/docs/manage/environment.md): One validated .env, read per-consumer so client code can never touch server secrets.
- [Working with Agents](https://zerostarter.dev/docs/getting-started/working-with-agents.md): The loop an AI agent uses here: skills, a local login, agent-browser, and llms.txt.
- [AI Skills](https://zerostarter.dev/docs/resources/ai-skills.md): The bundled SKILL.md recipes that teach an agent this repo's conventions and traps.
- [llms.txt](https://zerostarter.dev/docs/manage/llms-txt.md): Auto-generated, whole-codebase context for LLMs at /llms.txt and /llms-full.txt.
- [Dashboard](https://zerostarter.dev/docs/manage/dashboard.md): The protected app shell: sidebar, org switcher, and the layout wrappers to build on.
- [Data Tables](https://zerostarter.dev/docs/manage/data-tables.md): One data-table module: TanStack Table composed the shadcn way, URL-synced state, and virtualized infinite scroll fed by useInfiniteQuery.
- [Theming](https://zerostarter.dev/docs/manage/theming.md): Dark mode, OKLCH design tokens, and Tailwind v4: restyle without fighting the system.
- [Content](https://zerostarter.dev/docs/manage/content.md): Author docs and blog posts in MDX, with full-text search and draft/publish built in.
- [Waitlist](https://zerostarter.dev/docs/manage/waitlist.md): Collect addresses before launch on a public page, and read them back at Console > Waitlist > Signups.
- [Features](https://zerostarter.dev/docs/manage/features.md): Toggle optional surfaces (allowlist, API reference, blog, docs, internal docs, waitlist) from one config, chosen at init and flippable anytime.
- [SEO & Metadata](https://zerostarter.dev/docs/manage/seo.md): Dynamic OG images, sitemap, and robots: indexable and shareable by default.
- [Analytics & Feedback](https://zerostarter.dev/docs/manage/analytics.md): Optional PostHog analytics and a feedback link, plus Speed Insights on every Vercel deploy.
- [Deploy to Vercel](https://zerostarter.dev/docs/deployment/vercel.md): Ship web and api as two Vercel projects on one database; migrations run on deploy.
- [Deploy with Docker](https://zerostarter.dev/docs/deployment/docker.md): Run the whole stack anywhere with the multi-stage Dockerfiles and Compose.
- [Code Quality](https://zerostarter.dev/docs/manage/code-quality.md): Oxlint, Oxfmt, and the git hooks that keep every commit formatted, linted, and building.
- [Releases](https://zerostarter.dev/docs/manage/release.md): The automated canary-to-main flow that versions the repo and drafts the changelog.
- [Scripts](https://zerostarter.dev/docs/getting-started/scripts.md): Every bun script, grouped by when you'd reach for it.
- [Roadmap](https://zerostarter.dev/docs/getting-started/roadmap.md): What ZeroStarter ships today, and where it's headed.
- [IDE Setup](https://zerostarter.dev/docs/resources/ide-setup.md): VS Code and Cursor settings for the Oxc toolchain.
- [Infisical](https://zerostarter.dev/docs/resources/infisical.md): Optional secrets management: pull your .env from a shared vault.
- [Contributing](https://zerostarter.dev/docs/contributing.md): How to propose a change to ZeroStarter: branch off canary, keep docs in sync, open a PR.

## Optional

- [Blog](https://zerostarter.dev/blog.md): Latest articles and updates about ZeroStarter
