What is Monorepo
Single repository for all projects
Monorepo is a code management strategy where multiple projects are stored in a single repository.
Benefits
- Unified codebase
- Atomic changes across projects
- Code reuse
- Simplified dependency management
- Unified standards and linters
Tools
- Nx — for Angular, React, Node.js
- Turborepo — by Vercel
- Lerna — for npm packages
- Bazel — by Google
- Rush — by Microsoft
Example Companies
- Google (all code in one repo)
- Meta (Facebook, Instagram)
- Microsoft (Windows)
- Uber
When to Use
- Microservices by one team
- Frontend + backend + shared libraries
- Multiple related products