Saltar al contenido principal
All notes
2026 · 03 · 6 min

Turborepo at 100+ packages: what breaks

Turborepo scales remarkably well until ~100 packages. After that, you start hitting cache invalidation pain, dependency graph confusion, and CI orchestration limits.

Turborepo is genuinely great at small and medium monorepos. The pain emerges at ~100+ packages, where a few specific things start hurting that didn't before.

Cache invalidation is the first one. With deeply-nested package graphs, a tiny change in a leaf package invalidates everything downstream — that's correct, but the practical effect is multi-minute warm-cache builds that should be seconds. The mitigation is finer-grained inputs and explicit `dependsOn` declarations, but the default config doesn't get you there.

The second is CI orchestration. Once you have ~100 packages, splitting Turborepo runs across multiple GitHub Actions workers becomes essential and surprisingly tricky. The remote cache helps but isn't free. Worth budgeting for if you're seriously scaling.

WRITTEN BY
Ibrahim Aly
SENIOR FS ENGINEER · BERLIN ↔ CAIRO