Solo Kit is a production-ready monorepo SaaS starter kit for building fast, scalable applications with Next.js for web and Expo for mobile, featuring shared code packages and a PostgreSQL-first architecture with smart feature flags.
Tech Stack
Core Architecture
- Monorepo: Turborepo with pnpm workspaces
- Web App: Next.js 15 with App Router
- Mobile App: Expo with React Native
- Database: PostgreSQL with Drizzle ORM
- Authentication: BetterAuth with session-based auth + cookie caching
- Styling: Tailwind CSS with shadcn/ui components
- Type Safety: Full TypeScript throughout
Package Structure
- @packages/ui: Shared React components (shadcn/ui based)
- @packages/utils: Platform-agnostic utility functions
- @packages/database: Drizzle ORM database layer
- @packages/eslint-config: Shared ESLint configuration
Core Features
Feature Flag System
- Build-time Configuration: Zero runtime overhead
- Smart Defaults: Works instantly without external services
- Progressive Enhancement: Database → Auth → Email → Payments
- Environment-based: Clean separation of development and production
PostgreSQL-First Architecture
- Single Database Technology: PostgreSQL for all environments
- Type-safe Operations: Full type safety with Drizzle ORM
- Free Tier Friendly: Works with Neon, Supabase, Railway
- Production Ready: Same setup from development to production
Authentication System
- Session-based: Database sessions with 5-minute cookie cache
- OAuth Support: GitHub and Google authentication
- Email/Password: Traditional authentication option
- Admin System: Built-in admin role management
Developer Experience
- Instant Start: Working defaults without configuration
- Hot Reloading: Fast development across web and mobile
- Debug Panel:
/debug
route for feature flag status
- Drizzle Studio: Visual database management tool
Implementation Details
Build System
- Turborepo: Optimized builds with caching
- Build Commands: Separate commands for web, mobile, and packages
- CI Pipeline: Full testing, linting, and type checking
- Build Timeout: Protection against hanging builds
Code Quality
- TypeScript: Strict type checking throughout
- ESLint: Shared configuration across packages
- Prettier: Consistent code formatting
- Vitest: Unit testing framework
- Stylelint: CSS/SCSS validation
Deployment
- Web: Optimized for Vercel deployment
- Mobile: iOS and Android build support
- Environment Variables: Three-file strategy (.env, .env.local, .env.example)
- Production Features: Rate limiting, error tracking, analytics ready
Use Cases
- SaaS Applications: Full-stack production-ready foundation
- Team Projects: Consistent development environment for all developers
- Rapid Prototyping: Quick setup with working defaults
- Cross-platform Apps: Shared code between web and mobile
- Enterprise Applications: Scalable architecture with proper separation
Current Status
The starter kit is actively maintained with regular updates for dependencies and new features. It provides a solid foundation for building modern SaaS applications with best practices built-in from the start.