Software EngineeringDevelopment Practices

Monorepo

Overview

Direct Answer

A monorepo is a single version control repository containing multiple distinct projects, packages, or services, often managed as interdependent units. This contrasts with polyrepo architectures where each project maintains its own separate repository.

How It Works

A monorepo organises code using directory structures, workspace configurations, or build system declarations that define logical boundaries between projects while sharing a unified commit history and CI/CD pipeline. Dependencies between internal packages are resolved locally, and changes affecting multiple projects trigger coordinated testing and deployment workflows. Build tools and package managers track these relationships to optimise compilation and reduce redundant processing.

Why It Matters

Monorepos simplify dependency management, reduce integration friction, and enable atomic commits across related codebases—critical for organisations maintaining interconnected services. They accelerate refactoring and code sharing, improve visibility into project relationships, and streamline onboarding for developers working across multiple teams.

Common Applications

Large technology organisations use monorepos to manage platform components, SDKs, and microservice ecosystems. Frontend frameworks frequently employ this structure to coordinate core libraries, tooling, and documentation. Financial services and infrastructure-heavy organisations leverage monorepos to maintain consistency across trading systems, deployment pipelines, and internal tooling.

Key Considerations

Monorepos introduce operational complexity—repository size growth, longer clone times, and potential performance bottlenecks in version control systems. Teams must implement robust access controls and establish clear ownership policies to prevent unintended cross-project dependencies and maintain build isolation.

Cross-References(2)

Software Engineering
Business & Strategy

More in Software Engineering

See Also