Monorepo is a single repository that contains multiple projects, packages, and lib. It is a centralized place that is for sharing, collaborating, and maintenance.
These days, many organizations choose mono repo to manage their source code, since it is too advantageous.
There are many advantages for developers when using monorepo:
However, it also has some disadvantages
There are many monorepo tools by Bazel (by Google), Gradle Build Tool (by Gradle, Inc), Lage (by Microsoft), Lerna, Nx (by Nrwl), Pants (by the Pants Build community), Rush (by Microsoft), and Turborepo (by Vercel).
As a workspace growth, the mono repo tool should provide:
Fast local computation caching
Fast local task orchestration
Fast-distributed computation caching
Fast-distributed task execution
Fast transparent remote execution
Fast-detecting affected projects/packages
Understandable workspace analysis
Understandable dependency graph visualization
References: