Software Engineering ยท DevOps
Storing multiple related projects or packages in a single version-controlled repository, with shared tooling and the ability to make cross-project changes atomically.
Example: A frontend app, a shared component library, and a backend service all living in one repo.
In practice: Simplifies cross-project refactors and keeps shared code honest (it has to work for all consumers), but requires tooling (Turborepo, Nx, or Lerna) to manage build caching and dependency boundaries as the repo grows.
Debated: The tooling overhead and CI complexity can be significant โ monorepos work well for tightly coupled projects but can become a burden when teams and codebases have genuinely independent release cycles.