Advantages
- Changes to shared code are immediately visible in all projects — no "which library version" problem
- Atomic commits: an API change and the corresponding refactor of all consumers — in one PR
- Unified CI/CD, linting, tests — less configuration duplication
Disadvantages
- Slower CI without caching tools (need to run only changed parts)
- More complex access control across different projects
Tools
Nx (JavaScript/TypeScript), Turborepo (JS), Bazel (Google, multi-language). Large monorepos: Google, Meta, Microsoft keep all their code in a single repository.