The archive
Comic cover for issue 002: The Rewrite That Almost Was
Issue #002
Project Rescue 9 min read· 4 Jul 2026

The Rewrite That Almost Was

The team wanted eighteen months and a clean slate. The runway said nine. Here's the third option nobody had costed.

Share
The strip
Panel 1 · The pitch
We just need to rewrite it. Properly this time.
Panel 2 · The runway
Nine months of cash. Eighteen months of plan.
Panel 3 · The third option
Strangle it. One seam at a time.

There is a moment in every struggling codebase where the team stops proposing fixes and starts proposing a rewrite. It's not laziness — it's exhaustion. The system has stopped rewarding careful work, so a clean slate feels like the only honest path forward.

The problem is arithmetic. A rewrite pauses customer-visible progress for as long as it takes, and it takes longer than anyone estimates. In this case: eighteen months against nine months of runway.

Nobody funds a rewrite. Everybody funds shipping faster. Those are usually the same project described differently.

We mapped the system by revenue instead of by module. Seventy percent of the pain lived in three seams: authentication, the billing sync, and a reporting job that had grown into a second application.

You don't need a clean slate. You need three clean seams.

Over four months we strangled those three seams — new code behind the same interfaces, old code deleted the week it stopped serving traffic. Nothing froze. Nothing paused. Two of the three engineers who had been threatening to quit stayed.

CTO takeaway

The lesson, minus the scar tissue.

  • Map your system by revenue and pain, not by architecture diagram.
  • Strangle-fig migration keeps the business running while the rewrite happens underneath it.
  • If a plan exceeds your runway, it isn't a plan — it's a wish with a Gantt chart.
Comments

War Stories.

Survived something similar? Add it to the record — the best lessons in this archive came from other people's outages.

  • Priya · CTO, logistics startup

    We had the exact same Friday. Except ours was a DNS TTL of 86400 and we spent the weekend explaining caching to the board.

  • Marcus · Founder

    Read this on a Monday morning and immediately cancelled a rewrite. Three seams, not a clean slate. Thank you.

Never miss an issue

Get the next Chronicle in your inbox.

A comic, a story and a takeaway every other week. Written for founders who inherited a codebase they didn't choose.

Free forever. Unsubscribe in one click.

Related Chronicles.