Best Boilerplate with Monorepo: T3 Turbo vs Supastarter vs Bedrock
Monorepo: Organized Complexity
As SaaS products grow, they accumulate multiple concerns: the web app, the admin panel, the marketing site, shared UI components, email templates, database schemas, and utility libraries. A monorepo keeps all of these in one repository with shared tooling and dependencies.
Three boilerplates use Turborepo monorepos as their foundation: T3 Turbo (free, community-maintained), Supastarter ($299-$349, commercial), and Bedrock ($395-$995, enterprise). Each structures the monorepo differently.
TL;DR
Supastarter has the most well-structured monorepo — isolated packages for auth, billing, email, UI, and i18n that can be independently developed and tested. T3 Turbo provides a free monorepo foundation with shared TypeScript, React Native support, and community patterns. Bedrock targets enterprise with strict package boundaries and CI/CD integration. Choose Supastarter for the best package architecture. Choose T3 Turbo for free, community-backed monorepo. Choose Bedrock for enterprise monorepo patterns.
Key Takeaways
- Monorepos aren't always better. For solo developers building simple SaaS, a single-app boilerplate (ShipFast, T3 Stack) is simpler and faster.
- Supastarter's package isolation is excellent — swap billing providers, auth libraries, or email services by replacing a package.
- T3 Turbo is free and includes React Native — the only boilerplate with web + mobile from a single monorepo.
- Turborepo handles build caching — subsequent builds are dramatically faster because unchanged packages are cached.
- Package boundaries prevent spaghetti code — modules can only import from their declared dependencies.
- Monorepos add tooling complexity — pnpm workspaces, Turborepo pipelines, and package versioning have a learning curve.
Monorepo Structure Comparison
T3 Turbo
packages/
├── api/ # tRPC API routers
├── auth/ # NextAuth.js configuration
├── db/ # Prisma schema and client
├── ui/ # Shared React components
└── validators/ # Zod schemas
apps/
├── nextjs/ # Next.js web application
├── expo/ # React Native mobile app
└── ...
tooling/
├── eslint/ # Shared ESLint config
├── typescript/ # Shared tsconfig
└── tailwind/ # Shared Tailwind config
Supastarter
packages/
├── core/ # Shared types, utilities, constants
├── ui/ # shadcn/ui + custom components
├── auth/ # Authentication (Auth.js / Lucia)
├── billing/ # Payment providers (Stripe, LS, Polar, Creem, Dodo)
│ ├── stripe/
│ └── lemon-squeezy/
├── email/ # Email templates + sending
├── i18n/ # Translations + locale config
├── database/ # Prisma schema + client
└── config/ # Shared configuration
apps/
├── web/ # Main Next.js/Nuxt app
└── admin/ # Admin panel (optional)
Bedrock
packages/
├── core/ # Domain models, business logic
├── ui/ # Component library
├── auth/ # Authentication + authorization
├── billing/ # Stripe integration
├── email/ # Email templates
├── jobs/ # Background job definitions
├── monitoring/ # Logging, metrics, health checks
└── testing/ # Test utilities, factories
apps/
├── web/ # Main Next.js application
├── api/ # API service (optional)
└── worker/ # Background job worker
When to Choose Each
Choose Supastarter If:
- Package isolation matters — swap providers (auth, billing, email) by replacing packages
- Multi-framework potential — Same packages, Next.js or Nuxt app
- Clean architecture — well-defined boundaries between concerns
Choose T3 Turbo If:
- Free and open source — no license cost
- Web + mobile from one repo — Next.js + Expo React Native
- Community patterns — active community with examples and extensions
Choose Bedrock If:
- Enterprise structure — strict boundaries, monitoring, background jobs
- CI/CD integration — build pipelines optimized for monorepo
- Team development — clear ownership boundaries between packages
Choose Single-App (ShipFast, T3 Stack) If:
- Solo developer — monorepo complexity isn't worth it for one person
- Simple SaaS — auth + billing + dashboard doesn't need package isolation
- Ship fast — single app deploys in seconds, monorepo needs pipeline config
Compare monorepo architecture across 50+ boilerplates on StarterPick — find the right structure for your project.
Check out this boilerplate
View Supastarter on StarterPick →