Consumer apps
Kestrel Mobile halved their macOS bill
An iOS team paying for macOS minutes to run JavaScript tests, and what moving them to Linux did.
−54%
macOS spend
18m → 5m
Xcode build
47m → 19m
Release pipeline
“Roughly a third of our Mac minutes were running ESLint. Nobody had ever questioned it.”
Kestrel's repository held the iOS app and its React Native JavaScript layer. Everything ran on macOS because the iOS build needed to.
What changed
- Lint, unit tests and JS bundling moved to Linux runners
- DerivedData persisted between runs, which cut incremental Xcode builds by two thirds
- Simulator runtimes pinned to preinstalled versions, removing a 4-minute download
- Notarisation split into its own job so it stopped blocking test feedback
Your next build could be twice as fast, at half the price
Start free. Migrating away is the same one line, and we publish that diff too.
Related
Northwind LabsA Rust monorepo with a 40-minute cold build, brought under control with sccache and native arm64 runners.HarboursideA regulated fintech that needed builds, cache and logs inside the EU, without operating a runner fleet.Orbital Freight120 packages, every one rebuilding on every push, until affected-target detection was configured correctly.