“Just put it in the monorepo” is not a strategy.
Monorepos help when teams share libraries and can enforce tooling. Multi-repos help when blast radius and access control matter more than atomic cross-package PRs. The wrong choice is the one that mismatches who deploys what.

Containment or coupling — choose on purpose.
Choose monorepo when
- Shared design system with frequent coordinated changes
- One platform team owns CI standards
- Atomic refactors across packages are common
- You can invest in remote caching and ownership CODEOWNERS
Choose multi-repo when
- Different security boundaries or vendors
- Release cadences wildly differ (brochure daily, app weekly)
- Access must stay least-privilege per surface
- Separate agencies or teams should not see each other’s code
Hybrid that often works
Publish the design system as a versioned package. Apps consume versions. That requires versioning discipline — which is healthier than invisible breakage inside one giant main.
Failure modes
- Monorepo where any PR can break production homepage without review
- Multi-repo with five copies of the button and no release train for the system
- “We’ll extract later” without a boundary
Closing
Draw team boundaries first. Repo topology should follow. Fashionable tooling on the wrong topology still hurts.
Need a repo topology decision for web surfaces? Start a project inquiry.
CI cost
Monorepos need path filters so a docs typo does not rebuild all apps. Without that, developers bypass CI.
Ownership files
CODEOWNERS (or equivalent) for packages that can break production. Homepage package should not be mergeable by every contractor.
Package publishing
If hybrid: changelog discipline, canary versions, and a consumer upgrade schedule. Abandoned major versions of the design system recreate multi-repo sprawl inside the monorepo.
Decision worksheet
Score 1–5:
- Shared UI change frequency
- Need for separate access control
- Difference in release cadence
- CI expertise available
- Blast radius sensitivity of homepage
High shared UI + high CI skill → monorepo lean. High blast radius + multi-vendor → multi-repo lean.
Case sketches
Studio with one web team and a design system: monorepo often wins. Shared lint, shared tokens, atomic updates.
Enterprise with agency on marketing and internal team on app: multi-repo or hybrid. Agencies should not need production app secrets to change a homepage hero.
Multiple brands with shared platform: monorepo packages per brand surface, or multi-repo with a platform package registry — decide based on release independence.
Migration costs
Moving to a monorepo is not free: CI rewrite, permission model, developer education. Do not migrate for aesthetics. Migrate when coordination pain exceeds migration pain.