Monorepo
A version control strategy where multiple related projects or packages are stored in a single repository.
Definition
A monorepo is a software development approach where multiple projects, applications, or packages that are logically independent but related share a single version-controlled repository. Unlike separate repositories for each project, a monorepo keeps all code together, enabling shared tooling, atomic commits across projects, and unified dependency management.
Major technology companies like Google, Meta, and Microsoft use monorepos to manage vast codebases. Tools like Turborepo, Nx, and Lerna help manage the complexity of building, testing, and deploying specific portions of a monorepo without processing the entire codebase.
Why It Matters
For organizations with multiple interconnected applications, monorepos eliminate the coordination overhead of updating shared code across separate repositories. A change to a shared component is immediately available to all consuming applications, and cross-project refactoring can happen in a single commit.
This is particularly valuable for agencies and teams managing multiple related web properties, shared design systems, or microservice architectures where services need to stay in sync.
Examples in Practice
A digital agency keeps their client's marketing website, admin dashboard, and API server in a single monorepo. When the design team updates the shared component library, both the public site and admin panel receive the changes simultaneously.
An e-commerce company stores their storefront, checkout flow, inventory service, and shared utilities in one monorepo, using Turborepo to build only the packages affected by each code change.