Zhivko Todorov
ALL CASE STUDIES

CASE 175 · XYSTUS · 2025

MONOREPOTURBOREPOBUILD CACHES3

Monorepo builds that finish in seconds, not minutes.

A developer tools company had a 40-package TypeScript monorepo with full-rebuild times of 14 minutes on CI and roughly 6 minutes locally. Most package changes touched two or three packages, not 40. We adopted TurboRepo with a remote cache on S3 and got incremental builds to the seconds they should be.

INDUSTRY

Developer tools

DOMAIN

PLATFORM

DELIVERED

2025

STACK

TURBOREPO·S3 (REMOTE CACHE)·CLOUDFRONT (CACHE DELIVERY)·GITHUB ACTIONS·PNPM

RESULTS

What changed, by the numbers.

INCREMENTAL BUILD TIME

< 8s

PER PACKAGE CHANGE

CACHE HIT RATE (CI)

92%

AT STEADY STATE

CACHE HIT RATE (LOCAL)

78%

CROSS-DEVELOPER

CI BILL

−54%

FEWER MINUTES BURNED

HOW IT WENT

Every push triggered a full rebuild of the entire monorepo. Most of the rebuild was redundant — the same packages, with the same input hashes, building identical outputs. The team had been considering splitting the monorepo into separate repos to escape the rebuild cost.

TurboRepo’s task graph plus remote caching on S3 changed the math. Each package build was content-hashed by its input files; cached outputs were reused across runs. CI runs read from and wrote to the shared cache; local builds read from it (via developer machines fetching cached outputs).

Incremental build time per changed package dropped to under 8 seconds. Cache hit rate hit 92% on CI and 78% locally. CI compute bill dropped 54% as the cached builds returned in seconds instead of running fresh. The monorepo-vs-polyrepo conversation closed in favour of the monorepo.

READY WHEN YOU ARE

Let's get your AWS bill (and architecture) in order.

The discovery call is free. You walk away with at least one concrete idea — even if we never work together.

Or email directly →