DEV Community

Cover image for Project Corsa: The Untold Story of TypeScript 7 (A Git Forensic Thriller)
Mr. 0x1
Mr. 0x1

Posted on

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

Genre: Tech / Thriller / Heist

Runtime: September 2024 - December 2025

Based on: A True Story (and git log)


🎭 Cast & Crew (Character Profiles)

This article was generated using forensic git analysis and AI roleplaying. You can find the full "Persona Prompts" used to simulate these developers in the GitHub Repository.

Jake Bailey

Anders Hejlsberg

Gabriela Araujo Britto

Nathan Shively-Sanders

Sheetal Nandi

Mateusz Burzyński

Ron Buckton

Daniel Rosenwasser


Prologue: The Static Noise

The year is 2024. TypeScript is the king of 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. The community is restless.

Somewhere inside Microsoft, a decision is made. A secret project is greenlit. Codenamed: "Project Corsa".

The Mission: Rewrite the entire compiler. In Go. Make it 10x faster. Break nothing.


Act I: The Drop

Scene 1: The "God Object"

Date: October 19, 2024, 09:21 AM

Location: The Repository

Commit: 6e692937a

The repo is quiet. A few scaffolding commits from the infrastructure lead, Jake Bailey, have set the stage. The air is tense.

Suddenly, Anders Hejlsberg (The Architect) walks into the room (digitally speaking). He drops a single commit.

Commit Message: "Initial port of compiler"

Stats: +25,474 insertions

The room goes silent. This isn't a "hello world". This is the Core. The Type Checker. The Binder. The Parser. It's all there, effectively arriving from the heavens effectively fully formed. The "Genesis" block has been mined.

Scene 2: The "Oops"

Date: October 16, 2024

Character: Jake Bailey (The Anchor)

Commit: 06103e3fc

While the Architect deals in divine intervention, Jake Bailey deals in reality. And reality is messy.

Jake is setting up the CI, the linters, the build scripts—the plumbing that makes the magic possible. But even heroes stumble.

Commit Message: "Add forgotten isFile change"

It’s a humanizing moment. The Anchor missed a file. He’s one of us.


Act II: The Panic

Scene 3: The Bad Merge

Date: November 21, 2024, 02:18 PM

Commit: 9a82b808c

The team is moving fast. Too fast. They attempt to merge "Basic Reference/Module Resolution"—the complex logic that decides how import "react" actually finds react.

It goes wrong. Horribly wrong.

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

Jake Bailey slams the emergency brake. This is the Dark Night of the Soul for Project Corsa. If they can't get module resolution right, there is no compiler. There is only a syntax highlighter.

Scene 4: The Pivot

Date: February 10, 2025

Commit: 8c4573af8

The team regroups. They need a win. They need to get things working, even if it’s ugly.

Commit Message: "Hack in configDir fix for now"

They choose pragmatism over perfection. The "Hack" enters the codebase. It’s a temporary bandage, but it stops the bleeding.


Act III: The Slog

Montage Sequence: "The Wall of Tests"

Date: Early to Mid 2025

Starring: Gabriela Araujo Britto (The Verifier)

Music: Running Up That Hill (instrumental)

While nature heals, Gabriela enters the frame. Her job is the most grueling of all: Parity.

Anders' code looks right. But does it behave exactly like the old JS compiler? There are 20,000 test cases that say "maybe not."

What follows is an endless stream of commits:

  • 3fae7ba01: "Port document symbol tests"
  • e34615c82: "Port workspace symbols tests"
  • 08bc24d5b: "Port baseline diagnostics tests"

She is manually verifying thousands of text files, ensuring that Error: 'foo' is undefined doesn't become Error: undefined symbol 'foo'. She is the line of defense against chaos.

Scene 5: The Sync Master

Character: Mateusz Burzyński

Meanwhile, the old "Strada" repo isn't dead yet. People are still fixing bugs in TypeScript 6.0. Mateusz is the runner carrying messages between the two worlds.

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

He ensures the new engine has the same safety features as the old one.


Act IV: The Polishing

Scene 6: The Specialist

Date: October 31, 2024 (Halloween)

Character: Nathan Shively-Sanders (The Grammar Nazi)

While others build walls, Nathan paints the trim. He finds the edge cases nobody else thought of.

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

Who uses **=? Nobody. Does the compiler need to parse it? Absolutely. Nathan ensures the grammar is bulletproof.

Scene 7: The Final Piece

Date: November 2025

Character: Sheetal Nandi (The Scaler)

The compiler works. But can it handle a monorepo with 500 packages?

Sheetal steps up.

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

She implements the heavy-duty LSP features. This is the moment Project Corsa graduates from a "science experiment" to an "Enterprise Tool".


Epilogue: The Reveal

Date: December 2025

Status: Public Alpha

The code is live (@typescript/native-preview). The blog post is up. The "Hack" from Scene 4 is (mostly) gone.

Jake Bailey is still fixing module emit bugs (8d8850a6a).
Gabriela is still confirming test baselines.
Anders has moved on to re-architecting the next impossible thing.

And You, the developer, just ran npm install. You noticed your build finished in 200ms instead of 2 seconds. You shrugged and went back to coding.

You have no idea what they went through.

FIN.


Directed by Antigravity

Data provided by git log

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

Top comments (0)