
Syntax - Tasty Web Development Treats 969: This guy is nuts (TypeScript Doom)
22 snips
Jan 12, 2026 Dimitri Metropolis, a creative TypeScript developer, dives into the wild world of programming by discussing his groundbreaking project that runs Doom entirely within the TypeScript type system. He explores Turing completeness in TypeScript, revealing the practical challenges he's faced along the way. Dimitri also introduces TypeSlayer, a tool to diagnose TypeScript performance issues, and discusses how it visualizes complex types. The conversation touches on the future of programming languages and the impact of AI on developers, all within the vibrant community of Michigan TypeScript.
AI Snips
Chapters
Books
Transcript
Episode notes
Building Doom Inside TypeScript Types
- Dimitri attempted Doom purely in TypeScript types to test whether the type system could actually run a full program rather than just being 'Turing complete' mathematically.
- He expected it to fail quickly but the project grew into a year-plus effort culminating in a successful boot demonstrating extensive type-level encoding.
Turing Completeness Isn't Practical Proof
- TypeScript's mathematical Turing completeness does not imply practical usability for complex programs due to extreme performance costs in the type system.
- Dimitri argues that proving impossibility requires practical limits, not just theoretical completeness.
Rendering Pixels As ASCII Art With Types
- Dimitri rendered Doom output as ASCII/UTF pixel art by mapping character pairs to grayscale shades and creating a gradient of characters to approximate pixels.
- He first validated control by drawing a small heart purely with types before scaling up to the full frame rendering.




