The startup stack for the AI era.
startupkit.com | GitHub | Documentation
StartupKit is a meta-framework for building SaaS applications. Built for founders who move fast, loved by the AI tools that help them. Pre-configured auth, analytics, database, and UI components with clear patterns your copilot can follow.
One command to start:
npx startupkit initWithout structure, every project becomes a different architecture. That's AI slop.
| Without StartupKit | With StartupKit |
|---|---|
| Where should auth logic live? | @repo/auth → Better Auth, ready |
| Prisma or Drizzle? Which pattern? | @repo/db → Drizzle + Postgres, configured |
| App router or pages? RSC or client? | Next.js 16 App Router, RSC by default |
| How do I structure shared code? | Monorepo → share everything |
| Which analytics provider? | @repo/analytics → Provider-agnostic hooks |
Start at 70%. AI handles the details, not the foundation.
StartupKit is designed to work seamlessly with AI development tools:
- ✅ Devin ready
- ✅ Claude ready
- ✅ Amp ready
- ✅ OpenCode ready
Every project includes AGENTS.md with clear conventions, file placement guidelines, and architecture patterns that AI tools understand.
npx startupkit init
cd my-project
cp .env.example .env.local
pnpm devVisit http://localhost:3000
@repo/auth- Authentication with Better Auth (Google OAuth, Email OTP)@repo/analytics- Provider-agnostic analytics hooks and context@repo/db- Database with Drizzle ORM + PostgreSQL@repo/ui- 60+ Shadcn components, pre-configured@repo/emails- Email templates with React Email@repo/utils- Common utilities for SaaS applications
- pnpm workspaces - Efficient dependency management
- Turbo - Fast task orchestration (build, dev, lint)
- TypeScript - Strict type checking across all packages
- Biome - Fast linting and formatting
- Shadcn UI - Beautiful, accessible components
- Tailwind CSS - Utility-first styling
- Lucide Icons - Clean, consistent icons
- Drizzle ORM - Type-safe database access
- PostgreSQL - Production-ready database setup
- Migrations - Version-controlled schema changes
my-project/
├── apps/
│ └── web/ # Main Next.js application
├── packages/
│ ├── analytics/ # Analytics implementation
│ ├── auth/ # Authentication setup
│ ├── db/ # Database schema & migrations
│ ├── emails/ # Email templates
│ ├── ui/ # Shared UI components
│ └── utils/ # Utility functions
├── config/
│ ├── biome/ # Linter configuration
│ └── typescript/ # TypeScript configs
├── AGENTS.md # AI development guidelines
└── pnpm-workspace.yaml # Workspace definition
pnpm dev # Start all apps
pnpm --filter web dev # Start specific app
pnpm build # Build all packagespnpm db:generate # Generate migration files
pnpm db:migrate # Apply migrations
pnpm db:studio # Open database GUIpnpm shadcn add button
pnpm shadcn add dialogpnpm lint # Check all files
pnpm lint:fix # Fix issues
pnpm typecheck # Type check all packagesExpand your monorepo with new apps instantly:
- Next.js - Full-stack React framework ✅
- Vite - Lightning fast frontend tooling ✅
- Expo - React Native for mobile (coming soon)
Configure your environment variables in .env.local:
# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
# Authentication
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Analytics (optional)
NEXT_PUBLIC_POSTHOG_KEY=phc_...
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com- Framework: Next.js 16 (App Router)
- UI: React 19 + Shadcn UI + Tailwind CSS
- Language: TypeScript (strict mode)
- Database: PostgreSQL + Drizzle ORM
- Auth: Better Auth
- Email: React Email + Resend
- Monorepo: pnpm + Turbo
- Linting: Biome
- Website: startupkit.com
- GitHub: github.com/ian/startupkit
- Issues: github.com/ian/startupkit/issues
ISC © 2025 01 Studio
Stop burning tokens. Start shipping faster. 🚀