Production patterns with next-forge
You've built GeniusGarage from scratch - created shared packages, configured pipelines, added testing, set up CI/CD, and implemented enterprise patterns. But how do these patterns scale to a full production application with authentication, databases, monitoring, and edge functions?
next-forge is Vercel's production-ready Turborepo starter that demonstrates all the patterns you've learned, plus advanced features needed for real applications. It's maintained by the team at Vercel and serves as both a learning resource and a foundation for serious projects.
Outcome
Understand how next-forge applies monorepo patterns at production scale and explore it as a reference for your own projects.
What is next-forge?
next-forge is a comprehensive Turborepo starter that showcases advanced monorepo patterns and modern development practices. It's not just a template - it's a showcase of best practices learned from building and scaling monorepos at Vercel.
next-forge provides:
- Production-ready architecture with TypeScript, Next.js, and Turborepo
- Enterprise-grade tooling including authentication, database, and monitoring
- Best practices for monorepo development and deployment
- Real-world patterns used by companies scaling with Turborepo
Key features
Modern tech stack
next-forge uses cutting-edge technologies:
- Framework: Turborepo with multiple Next.js apps and Storybook
- Language: TypeScript with strict configuration
- Styling: Tailwind CSS with shadcn/ui design system
- Database: Neon (PostgreSQL) with Drizzle ORM
- Authentication: Clerk components and middleware
- Linting: Biome for fast linting and formatting
- Deployment: Vercel with edge functions
Monorepo architecture
next-forge has a handful of apps and many packages, each with clear responsibilities:
next-forge/
├── apps/ # Multiple Next.js applications
│ ├── web/ # Main web app
│ ├── app/ # Core application
│ └── docs/ # Documentation site
├── packages/ # Shared packages
│ ├── ui/ # Design system components
│ ├── auth/ # Authentication utilities
│ ├── database/ # Database schema and queries
│ ├── email/ # Email templates and sending
│ └── ... # Many more specialized packages
├── biome.json # Biome configuration
├── package.json # Root package configuration, including workspaces
├── tsconfig.json # Root TypeScript config
└── turbo.json # Turborepo pipeline configuration
What makes next-forge special?
Unlike basic templates, next-forge includes patterns you've learned in this course, taken further:
1. Advanced package organization
Where GeniusGarage has ui, config, and utils, next-forge breaks packages down by responsibility:
@repo/design-system- Complete design system with tokens@repo/database- Database schema, migrations, and client@repo/auth- Authentication logic and utilities@repo/email- Transactional email templates@repo/monitoring- Logging and analytics
Why it matters: Clear package boundaries prevent coupling and enable teams to own specific domains.
2. Production-grade tooling
next-forge uses Biome instead of ESLint + Prettier for:
- 10x faster linting and formatting (Rust vs Node.js)
- Unified configuration - one tool for all code quality
- Import sorting built-in
3. Advanced Turborepo configuration
{
"tasks": {
"build": {
"dependsOn": ["^build"],
"outputs": [".next/**", "dist/**"]
},
"dev": {
"cache": false,
"persistent": true
},
"test": {
"dependsOn": ["^build"],
"outputs": ["coverage/**"]
}
}
}Notice the patterns you learned:
^builddependency notation (build dependencies first)- Cache disabling for dev servers
- Output definitions for precise caching
- Persistent tasks for watch modes
4. Security and performance
next-forge includes:
- Content Security Policy headers
- Rate limiting for API routes
- Edge middleware for auth
- Image optimization pipeline
- Bundle analysis in CI
Comparing GeniusGarage to next-forge
What you built (GeniusGarage):
- 3 apps (web, snippet-manager, docs)
- 3 packages (ui, config, utils)
- Basic CI/CD with caching
- Fundamental patterns
What next-forge adds:
- Multiple apps with different deployment targets
- 15+ specialized packages
- Advanced authentication and database patterns
- Monitoring, analytics, and observability
- Edge computing patterns
- Advanced TypeScript patterns
The progression: GeniusGarage teaches fundamentals. next-forge shows how to scale them.
Use cases for next-forge
next-forge is ideal for:
- Startups building scalable products from day one
- Enterprises needing robust monorepo patterns
- Teams wanting to learn production best practices
- Developers building serious side projects
- Agencies creating client applications
However, it's probably not the best fit for:
- Simple landing pages (too much infrastructure)
- Learning basic React (assumes advanced knowledge)
- Rapid prototypes (setup overhead)
- Non-TypeScript projects
Exploring next-forge
Visit next-forge.com to:
- Browse the live demo - See the template in action
- Read the documentation - Learn about specific patterns
- Clone the repository - Explore the code locally
- Use as a starter - Build your next project on it
# Create a next-forge project (choose pnpm when it asks)
pnpm dlx next-forge@latest init
cd my-appThe init command clones the template, installs dependencies, and copies the .env files for you. next-forge defaults to Bun, so pick pnpm at the prompt if you want the commands below to match.
It won't boot yet. The app reads a database at startup, so add a DATABASE_URL (next-forge defaults to Neon) to the env files it copied, then scaffold the schema and start it:
pnpm run migrate
pnpm devThe installation guide covers the rest, including the CMS token and the Stripe and Mintlify CLIs it asks for. Environment variables lists where each key goes.
Patterns to study
When exploring next-forge, pay attention to:
- Package boundaries - How packages are split by domain
- Turborepo configuration - Advanced pipeline patterns
- Shared configurations - TypeScript, Biome, Tailwind
- Build optimization - Caching strategies and outputs
- Testing strategy - Unit, integration, and E2E tests
- CI/CD pipelines - GitHub Actions with remote caching
- Deployment patterns - Multiple apps to Vercel
- Type safety - Strict TypeScript across packages
Key takeaways
- next-forge demonstrates production patterns you've learned, scaled to enterprise needs
- All your GeniusGarage patterns apply - shared packages, configs, caching, CI/CD
- Additional patterns emerge at scale - package boundaries, security, monitoring
- It's a learning resource - study it to see how patterns combine
- It's a starter template - use it for your next serious project
Summary
You've completed the Production Monorepos course by building GeniusGarage from scratch. You now understand:
- ✅ Monorepo fundamentals and when to use them
- ✅ Creating and managing shared packages
- ✅ Turborepo caching and task orchestration
- ✅ Testing strategies with cache optimization
- ✅ Environment variable management
- ✅ CI/CD with GitHub Actions and remote caching
- ✅ Scaling to multiple apps
- ✅ Enterprise patterns (generators, changesets, governance)
next-forge shows how these patterns combine in a production application. Use it as:
- A reference when implementing similar features
- A starter for your next project
- A learning tool to see advanced patterns
- Inspiration for organizing your own monorepo
What's Next
Continue your monorepo journey by:
- Finishing GeniusGarage - Deploy your apps and share with others
- Exploring next-forge - Study how patterns scale
- Building your own - Apply patterns to real projects
- Contributing - Improve next-forge or create your own patterns
- Sharing knowledge - Teach others what you've learned
You're now equipped to build, scale, and maintain production monorepos. Ship it! 🚀
Was this helpful?