Syntax - Tasty Web Development Treats · Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

969: This guy is nuts (TypeScript Doom)

January 12, 2026·55 min·5 clips
Dimitri explains how he ran the classic game Doom using only TypeScript types—with zero JavaScript.
Dimitri Metropolis is a TypeScript developer and self-described multidisciplinarian from Michigan with four degrees in fields unrelated to computer science, best known for creating TypeScript Doom — a complete port of the original Doom game running entirely within the TypeScript type system with no JavaScript at all. The Syntax hosts frame the achievement as "absolutely nuts" before Metropolis explains the premise: TypeScript's type system is a separate Turing-complete language layered on top of JavaScript, and he wanted to prove that it could not actually run Doom, which he viewed as a meaningful practical test beyond theoretical Turing-completeness. The discussion explains how pixels can be represented using monospace ASCII characters — two characters side by side approximate a square pixel, and gradients of characters simulate grayscale — giving the type system a way to display visual output via TypeScript's hover tooltips and error output. Metropolis describes the approximately year-and-a-half journey in which he ran repeated compilation attempts that lasted days before finally getting a successful run on Halloween night, which completed in 11.5 days of continuous TypeScript compiler execution on a dedicated basement computer. He addresses the common question of why he didn't include actual gameplay: his goal was to boot the game — proving the type system could evaluate a complex state machine with physics, texture mapping, sprite systems, and character rendering — not to make it playable. The interview also covers his involvement in the local dev community, TypeScript Slayer, and the upcoming transition of the TypeScript compiler to Go, which he notes would dramatically speed up compilation but which he has promised himself he will not use to re-open the Doom project. The conversation captures the specific kind of programmer curiosity that chooses a nearly impossible problem not for utility but for the intellectual satisfaction of learning what is possible. The episode appeals to TypeScript developers, software engineers broadly, and anyone interested in creative constraint and programming as exploration.

As heard by us

A practical look at TypeScript tooling, cross-platform packaging, and the people behind it.

Syntax talks with Dimitri Metropolis about TypeScript tooling, cross-platform binaries, optional dependencies, and the practical work behind shipping packages without making everyone download everything.

Read the full review in PlayNext →

Why you'd press play

If TypeScript packaging keeps biting you, this one gets into the messy parts.

Read the full recommendation in PlayNext →
Listen to the show on