Ship in 15 Minutes

Where a PR's 40+ minutes to production actually go, and the plan to get a median PR live in ≤15 minutes without loosening the quality bar. Why PRs are not green or merged by morning is on Always Shipping.

Proposed — measured 2026-09-12/13, POC results pending · sample: 60 of 839 PRs merged in 7 days + 15 deep dives, REST API

The verdict, in plain English

A typical PR takes about 31 minutes from open to merge and another ~9 to go live — but the CI machine itself (4 minutes) is not the bottleneck. The bottleneck is people-and-process time: waiting for the review bot's verdict, and — when a PR gets sent back for changes — fixing it, which averages 27 minutes and only happens on about 1 in 5 PRs.

Fix the review-fix loop first (smaller PRs, faster bot verdicts, quicker fixes), then stop serializing the deploy step (5 of the 9 minutes to live is just PRs queueing for one deploy lock at a time). Moving CI runners to AWS is real money (4-9x cheaper on already-granted credits) but does not touch the 27-minute lever.

What it buys: on paper, cutting the review-fix loop and the deploy queue gets a median PR to ≤15 minutes without touching required checks.

Nothing here changes what ships to a customer — this is entirely about the pipe PRs move through. Standard rollout playbook still applies to anything that touches CI/deploy behavior: dark first, prove at the bench, Fede's go to flip any switch.

Figure 9. Three real CI runs, same lint job — the gap between the top bar and the bottom one is a cache that was never being saved.

Proves: three real CI runs on tonight's lint-fix PR — cold single-threaded, cold multithreaded, and the next PR's warm-cache restore — not estimated.

PropFlow Docs