What is Monorepo?
Turkish: Monorepo
A monorepo keeps multiple apps and packages in one Git repository so tooling, dependencies, and changes can be managed together.
What is a Monorepo?
A monorepo stores multiple applications, services, libraries, and tooling packages in one version-control repository. One repository does not mean one application; a web app, mobile package, shared UI library, and API client can all live in the same repo.
How Does It Work?
Projects are separated by package or app folders. Shared linting, testing, formatting, and build rules are managed centrally. If a change affects multiple packages, it can be made in the same commit or merge request. More mature setups use a dependency graph to test and build only the projects affected by a change.
Benefits and Risks
Monorepos make shared code, atomic changes, and standardized tooling easier. As the repository grows, checkout size, CI time, permissions, and ownership boundaries can become difficult. Without clear module boundaries and automation, one repository can become one large maintenance problem.
Git provides the version-control foundation. Teams using microservice architectures may still manage services in separate repositories or inside a single monorepo.
Related Terms
Git is distributed version control that tracks code changes through commits and lets teams work in parallel with branching and merging.
Micro FrontendMicro frontend splits a large user interface into smaller applications that independent teams can build, deploy, and compose.
MicroserviceMicroservice architecture designs a large application as small services that can be developed, deployed, and scaled independently.
NxNx manages projects inside a monorepo with a dependency graph, task targets, and caching to reduce build and test times in large codebases.
TurborepoTurborepo reduces monorepo build time by running tasks from a dependency graph with local or remote caching and parallel execution.