Real Monorepo Case Studies:
Google, Meta, Twitter, Cash App, Proton (2026)

Real-world data from named companies, cited to primary sources. Scale figures and migration stories scattered across blog posts and papers, consolidated here. No estimates; only cited numbers.

Google

Monorepo

~2 billion lines of code, ~86 TB, 40k commits/day, 25k+ engineers

Piper (internal VCS) + Bazel

Google stores almost all of its code in a single repository, called Piper, which runs on their internal distributed file system (Colossus). As of the 2016 paper, the repo had approximately 1 billion files, 86 TB of data, and 25,000+ engineers committing to it daily. The build system, Bazel (released externally in 2015), was developed specifically to handle this scale. Google also built CitC (Clients in the Cloud) for workspace management and Critique for code review. The tooling investment is massive and not transferable to most organisations.

What this teaches

Google's monorepo works because Google built billion-dollar infrastructure to support it. The lesson is not 'use a monorepo'; it is 'monorepos are viable at any scale with sufficient tooling investment'.

Potvin & Levenberg, CACM 2016 (paywalled; abstract free)2026: Still Piper + Bazel. No public changes to this model.

Meta (Facebook)

Monorepo

Unified codebase across Android, iOS, web, server

Sapling (Mercurial fork) + custom VFS (EdenFS)

Meta runs a large unified monorepo on a Mercurial-based VCS they forked and renamed Sapling (open-sourced in 2022). The key technical challenge at Meta's scale is that no developer machine can hold the full repo. Meta built EdenFS (Eden Filesystem) to provide virtual file system access: you see all files, only the touched files are materialised locally. Sapling was open-sourced to allow adoption outside Meta.

What this teaches

Meta's approach required a custom filesystem. If your team is materialising all files on checkout and performance is poor, EdenFS-style VFS is the solution path, not switching to polyrepo.

Meta Engineering Blog, November 20222026: Sapling is open source (sapling-scm.com). EdenFS is available but requires Linux.

Twitter (pre-X)

Monorepo

Backend services consolidated

Pants (Twitter invented it in 2011, open-sourced 2012)

Twitter's engineering team invented the Pants build system in 2011 to handle their polyglot monorepo (Python, Scala, Java). They open-sourced it in 2012 as the first publicly available hermetic build system for Python. Pants became the tool of choice for Python-heavy polyglot shops. Twitter's use of Pants predates Bazel's external release by 3 years.

What this teaches

Twitter shows that the monorepo tooling problem is not new, and that Python-heavy teams have a mature option in Pants that predates Bazel.

Pants build system history2026: Pants 2.x is a complete rewrite. The original Twitter Pants (v1) is deprecated. Toolchain maintains v2.

Microsoft

Hybrid

Multiple large product-level monorepos

Rush Stack (JS/TS), Azure DevOps internal tools

Microsoft uses a hybrid approach: monorepo per product line, separate repos across product domains. VS Code, TypeScript, Office Web, and other JS/TS products each run their own monorepo. Microsoft developed Rush Stack specifically for their JS/TS monorepo needs and open-sourced it. Not all of Microsoft is in one repo: it is a collection of large product-level monorepos.

What this teaches

The Microsoft model is a realistic target for large enterprises: monorepo per product team, separate repos across business units. Rush is their open-sourced contribution.

Rush Stack documentation2026: Rush Stack actively maintained at rushstack.io.

Uber

Monorepo (Go backend)

Go backend services in a monorepo

Custom Go tools + Bazel for some services

Uber runs their Go backend services in a monorepo, while other parts of their stack (iOS, Android, web) have separate setups. The Go monorepo approach works well for them because Go's module system and fast compilation times make shared code practical. Uber has published engineering blog posts on their Go build tooling and module management approaches.

What this teaches

Language-scoped monorepos (Go backend monorepo, separate iOS/Android repos) are a valid hybrid that many companies use without naming it explicitly.

Uber Engineering Blog2026: No recent public changes to this model.

Airbnb

Migrated to monorepo

JS codebase consolidation (mid-2010s)

Internal tooling, Lerna-era approach

Airbnb migrated their JavaScript codebase to a monorepo in the mid-2010s during the early Lerna era. They published engineering blog posts on the migration and the productivity wins they saw. This was an early example of a company at meaningful scale (hundreds of engineers) choosing monorepo for their JS frontend/full-stack code.

What this teaches

Airbnb's migration was possible because it was JS-only. The scope limitation (one language, frontend focus) is what made it tractable at their scale.

Airbnb Engineering Blog2026: Airbnb has not published updates to their monorepo strategy recently.

Cash App / Block

Monorepo

~450 JVM services consolidated

Bazel

Block (formerly Square) consolidated approximately 450 JVM services (Java and Kotlin) from polyrepo into a Bazel-based monorepo. The migration was multi-quarter. The full productivity win took approximately 2 years to realise. This is the most frequently cited real-world data point for large-scale JVM monorepo migration because Block published an honest post-mortem rather than just a success story.

What this teaches

~450 JVM services with multi-quarter migration and 2 years to full win is the honest baseline for polyglot enterprise monorepo consolidation. If your scope is similar, plan accordingly.

Block Engineering Blog2026: Still Bazel-based per public information.

Proton

Migrated to monorepo

Web engineering stack

Nx (reported)

Proton's web engineering team moved from a polyrepo to a monorepo in a single weekend cutover. The scope was bounded (web stack, TypeScript), which made the Saturday cutover pattern viable. Proton published a blog post documenting the decision process, migration approach, and results. This is the most accessible case study for mid-size JS/TS teams considering consolidation.

What this teaches

Bounded scope + single language + preparation = weekend cutover. Do not extrapolate Proton's timeline to a polyglot or large-service migration.

Proton Engineering Blog2026: Proton continues to use monorepo per their blog.

What the case studies teach your team

Every company above built or adopted tooling specific to their scale. Google built Bazel and Piper. Meta built Sapling and EdenFS. Twitter invented Pants. None of them are using "default" tooling. The lesson is not to copy their structure, but to match your tooling investment to your actual scale.

A 30-person JS/TS team adding Turborepo is proportional. A 30-person team adding Bazel is not.

Should you migrate? →Pick a tool →By team size →