Skip to content

CONCEPT Cited by 1 source

Monorepo

Monorepo = a single shared version-control repository holding many services, libraries, tools, and other artefacts that would otherwise live in separate repos. Opposed to polyrepo (many repositories, one per service/library).

Why pick one

  • Atomic cross-service change — one commit can edit a library and every consumer, so invariants stay enforced without version-bump-and-wait dances.
  • Shared tooling + code — one build config, one code-search surface, one dependency tree, one set of lint/format/test configurations.
  • Consolidated ownership signals — easier to see who touches what, reason about blast radius, coordinate migrations, enforce policy (see also patterns/bisect-driven-regression-hunt, patterns/centralized-forward-declarations).

What you pay

Operational discipline

Monorepos are production infrastructure, not passive storage. The 2026-03-25 Dropbox post makes this explicit: "Repositories can feel like passive storage, something that simply grows over time. At scale, they are not passive. They are critical infrastructure that directly affects developer velocity and CI reliability." Concrete operational moves:

  • Track repo size, growth rate, fresh clone time, per-subtree storage distribution continuously on an internal dashboard — patterns/repo-health-monitoring.
  • Treat structural repo rewrites (e.g. server-side repack) like any production-infra change: test on a mirror first (patterns/mirror-first-repack-validation), roll out gradually with a rollback path.
  • Align directory layout with the tooling's internal assumptions — in the Dropbox i18n case, reshape paths so similar-content files share the tail-16-char window the default Git heuristic uses.

Canonical wiki instances

Last updated · 200 distilled / 1,178 read