Project Corsa: The Untold Story of TypeScript 7 (A Git Forensic Thriller)

Published: (December 27, 2025 at 06:09 AM EST)
3 min read
Source: Dev.to

Source: Dev.to

Cast

  • Jake Bailey (The Anchor) – Lead Infrastructure & “The Fixer”
  • Anders Hejlsberg (The Architect) – Creator & “The Wizard”
  • Gabriela Araujo Britto (The Verifier) – Test Lead & “The QA Spec Ops”
  • Nathan Shively‑Sanders (The Specialist) – Parser Guard & “The Academic”
  • Sheetal Nandi (The Scaler) – Enterprise LSP & “The City Planner”
  • Mateusz Burzyński (The Sync) – Feature Porter & “The Bridge Runner”
  • Ron Buckton (The Transformer) – Emitter & “The Industrialist”
  • Daniel Rosenwasser (The Bridge) – Program Manager & “The Evangelist”

Based on a true story (and git log). The full “Persona Prompts” used to simulate these developers are available in the GitHub repository.

Prologue: The Static Noise

The year is 2024. TypeScript reigns over the web, but its engine—the “Strada” codebase (legacy JS)—is creaking under the weight of its own success. Builds are slow, memory usage is high, and the community is restless. Inside Microsoft, a secret project is green‑lit: Project Corsa.
Mission: Rewrite the entire compiler in Go, make it 10× faster, and break nothing.

Act I: The Drop

Scene 1 – The “God Object”

Date: October 19 2024, 09:21 AM
Location: The Repository

Commit: 6e692937a
Message: Initial port of compiler
Stats: +25,474 insertions

Anders Hejlsberg drops a single, massive commit that brings the core—type checker, binder, parser—into the new Go codebase. The “Genesis” block is mined.

Scene 2 – The “Oops”

Date: October 16 2024
Character: Jake Bailey (The Anchor)

Commit: 06103e3fc
Message: Add forgotten isFile change

While setting up CI, linters, and build scripts, Jake misses a file. A small human error in an otherwise epic rewrite.

Act II: The Panic

Scene 3 – The Bad Merge

Date: November 21 2024, 02:18 PM
Commit: 9a82b808c

Message: Revert "Add basic reference/module resolution to program.go"

A rushed merge of the complex module‑resolution logic fails catastrophically. Jake slams the emergency brake; without proper resolution the compiler collapses to a mere syntax highlighter.

Scene 4 – The Pivot

Date: February 10 2025
Commit: 8c4573af8

Message: Hack in configDir fix for now

The team opts for a pragmatic, temporary fix to stop the bleeding. The “Hack” becomes a bandage that keeps development moving forward.

Act III: The Slog

Montage – “The Wall of Tests”

Date: Early to Mid 2025
Star: Gabriela Araujo Britto (The Verifier)

While the new engine takes shape, Gabriela battles parity testing: 20 000 test cases must behave exactly like the old JS compiler. A stream of test‑porting commits includes:

  • 3fae7ba01 – “Port document symbol tests”
  • e34615c82 – “Port workspace symbols tests”
  • 08bc24d5b – “Port baseline diagnostics tests”

She manually verifies thousands of outputs, ensuring error messages remain identical.

Scene 5 – The Sync Master

Character: Mateusz Burzyński

Commit: d9178cc1f
Message: Port "Fixed crash when adding unreachable code..."

Mateusz bridges the legacy “Strada” repo and the new engine, porting critical safety fixes.

Act IV: The Polishing

Scene 6 – The Specialist

Date: October 31 2024 (Halloween)
Character: Nathan Shively‑Sanders (The Grammar Nazi)

Commit: c028facc6
Message: Add AsteriskAsteriskEqualsToken scanning for **=

Nathan adds support for the rarely‑used **= operator, tightening the grammar.

Scene 7 – The Final Piece

Date: November 2025
Character: Sheetal Nandi (The Scaler)

Commit: 66ab80db1
Message: Multiproject requests like find all refs, rename

Sheetal implements heavy‑duty LSP features, enabling the compiler to handle monorepos with 500+ packages. Project Corsa graduates from a science experiment to an enterprise‑ready tool.

Epilogue: The Reveal

Date: December 2025
Status: Public Alpha (@typescript/native-preview)

The “Hack” from Scene 4 is largely removed. Jake continues fixing module‑emit bugs (8d8850a6a). Gabriela finalizes test baselines. Anders moves on to the next impossible architecture.

You, the developer, run npm install, see the build finish in 200 ms instead of 2 s, and get back to coding—unaware of the saga that made it possible.

Directed by Antigravity

Data provided by git log.

No actual developers were harmed in the making of this narrative (we assume).

Back to Blog

Related posts

Read more »