# I Built a Scalable Monorepo Boilerplate for Multi-Product Apps (Next.js + NestJS + Turbo)
Most monorepo setups fall into one of two traps: ❌ Everything is duplicated per app → impossible to scale ❌ Everything is centralized → turns into a “god app” After hitting both problems, I built a...

Source: DEV Community
Most monorepo setups fall into one of two traps: ❌ Everything is duplicated per app → impossible to scale ❌ Everything is centralized → turns into a “god app” After hitting both problems, I built a boilerplate that actually scales cleanly across multiple products. 🧠 The Idea Instead of thinking: “Each product is its own app” I flipped it to: “Products are modules. Apps are just runtimes.” 🧱 The Architecture apps/ web/ → Next.js runtime api/ → NestJS runtime packages/ core/ → auth, db, logging, http products/ → all business domains shared/ → types, utils, validation ui/ → design system 🔥 Key Concept Each product looks like this: packages/products/product-a/ backend/ frontend/ backend/ → NestJS modules frontend/ → UI + features No duplication. No separate repos. No messy coupling. ⚙️ How It Works Backend (NestJS) Products plug into the API: import { ProductAModule } from "@repo/products/product-a/backend"; @Module({ imports: [ProductAModule] }) export class AppModule {} Frontend (Next