Appearance
Documentation
Full documentation for this Next.js SaaS starter template. Start with Getting Started if you're setting the project up locally for the first time.
| Page | What's in it |
|---|---|
| Getting Started | Local setup: clone, install, environment variables, Docker services, database migration, first run. |
| Quick Reference | At-a-glance lookup table of the utilities, hooks, and helpers already in the codebase - check here before writing a new one. |
| Environment Variables | Canonical reference for every env var - what it does, whether it's required, and where it's read. |
| Architecture | Tech stack, request flow, full project structure, key files, tRPC procedure types. |
| Features | The feature-module pattern, a tour of every existing demo feature, and how to add a new one. |
| Data Fetching | Step-by-step: client-side useQuery/useMutation, server-side prefetch() + hydration, and the direct caller. |
| Database | Prisma schema, models, and the migration workflow. |
| Auth & Billing | Better Auth configuration, OAuth setup, Polar billing, premium feature gating. |
| Background Jobs | Inngest concepts, existing jobs, adding new jobs, Realtime subscriptions. |
| Integrations | AI (OpenRouter), Redis, and Plausible analytics usage. |
| Frontend | UI components, the design system, required UI states, confirm dialogs, state management, i18n. |
| Deployment | Docker production setup, making Inngest durable, reverse proxy, pre-deploy checklist. |
Demos
Each demo under /demo/* exists to show off one specific technique - not just "an example CRUD app." Full walkthrough per demo:
| Page | What it shows off |
|---|---|
| AI Chat | Resumable streaming - a refresh mid-response doesn't lose the reply. |
| Booking Wizard | Multi-step client state (Zustand + sessionStorage) decoupled from the server, plus real error/retry handling. |
| Customers Table | Fully server-driven pagination/filter/sort, with table state synced to the URL via nuqs. |
| Background Jobs | Durable multi-step jobs with live status via Inngest Realtime - no polling. |
| Posts CRUD | The canonical reference implementation to copy for a real feature, plus premium-gated procedures. |
Make It Yours
Once the demos above have shown you what's here, Make It Yours is the separate, one-time checklist for turning the starter into your own product - rebranding, removing demo features, and configuring or removing every optional integration - before you move on to Deployment.
For AI coding agent instructions (not user-facing docs, and not part of this site), see CLAUDE.md, AGENTS.md, and the design token spec in DESIGN.md at the repo root.