A modern, type-safe, and high-performance SaaS starter template built with a monorepo architecture.
- 📚 Documentation: For comprehensive documentation, visit https://zerostarter.dev/docs.
- 🤖 AI/LLM Users: For optimized documentation, use https://zerostarter.dev/llms.txt.
- 🐦 X: Follow @nrjdalal for updates and don't forget to star the repository!
Important
ZeroStarter is currently in Release Candidate (RC) status. All implemented features are stable and production-ready. We're actively adding new features and integrations day-by-day.
Note
For detailed information about the architecture and tech stack, see the Architecture documentation.
- Runtime & Build System: Bun + Turborepo
- Frontend: Next.js 16
- Backend: Hono
- RPC: Hono Client for end-to-end type safety with frontend client
- Database: PostgreSQL with Drizzle ORM
- Authentication: Better Auth
- Styling: Tailwind CSS
- UI Components: Shadcn UI
- Data Fetching: TanStack Query
- Validation: Zod
- Bundling, Linting & Formatting: tsdown, Oxlint and Prettier
- Documentation: Fumadocs with auto-generated llms.txt
- Automated Releases: Automatically updated Changelog on release
This project is a monorepo organized as follows:
.
├── api/
│ └── hono/ # Backend API server (Hono)
├── web/
│ └── next/ # Frontend application (Next.js)
└── packages/
├── auth/ # Shared authentication logic (Better Auth)
├── db/ # Database schema and Drizzle configuration
├── env/ # Type-safe environment variables
└── tsconfig/ # Shared TypeScript configuration
We're actively working on integrations for AI, analytics, background tasks, email, payments, and more.
Architecture & Best Practices as a Service — ZeroStarter isn't just a starter template, it's a complete blueprint for building production-ready SaaS applications with battle-tested patterns and practices.
- Modular Architecture — Clean, plug-and-play packages that work independently or together. Swap components, extend functionality, or customize without breaking the system
- End-to-End Type Safety — Hono RPC ensures type safety from database to frontend. Catch errors at compile time, ship with confidence
- Clean Code Practices — Well-structured monorepo with separation of concerns, making it easy to understand, maintain, and scale
- Production-Ready Performance — Optimized with Bun runtime and Turborepo for blazing-fast development and builds
- Beautiful UI Out of the Box — Shadcn UI components with Tailwind CSS, ready to customize or use as-is
- Enterprise-Grade Auth — Better Auth integration with GitHub, Google, and more — fully configured and ready to extend
- Comprehensive Documentation — Every pattern, practice, and decision documented with Fumadocs and AI-optimized llms.txt
- Deploy-Ready — Docker and Vercel configurations included, so you can ship to production in minutes, not days
📖 View full why ZeroStarter? →
Note
For comprehensive details and examples, see the Type-Safe API documentation.
This starter utilizes Hono RPC to provide end-to-end type safety between the backend and frontend.
- Backend: Routes defined in
api/hono/src/routersare exported asAppTypeatapi/hono/src/index.ts. - Frontend: The client at
web/next/src/lib/api/client.tsinfersAppTyperequest/response types usinghono/client.
import { apiClient } from "@/lib/api/client"
// Fully typed request and response
const res = await apiClient.health.$get()
const data = await res.json()📖 Type-Safe API documentation→
# Clone the template
bunx gitpick https://github.com/nrjdalal/zerostarter/tree/main
cd zerostarter
# Install dependencies
bun install
# Set up environment variables (see docs)
cp .env.example .env
# Set up database
bun run db:generate
bun run db:migrate
# Start development
bun dev📖 Complete installation guide →
- 📖 Full Documentation — Everything you need to know
- 🏗️ Architecture — Deep dive into the tech stack
- 📂 Project Structure — Monorepo organization
- 🔌 Type-Safe API — Hono RPC client examples
- ⚙️ Scripts — Available commands
- 🚀 Deployment — Deploy to production
- 🤖 AI/LLM Users — Optimized documentation
Contributions are welcome! Please read our contributing guidelines first.
📖 View contributing guidelines →
MIT License — see LICENSE.md for details.
⭐ Star this repo if you find it helpful, and follow @nrjdalal for updates!