
TypeScript.fm - The Friendly Show for TypeScript Developers
The two TypeScript Fools, Kamran Ayub and Erik Onarheim, get together weekly to bring you news, community highlights, and deep dives into the TypeScript ecosystem. Stay up-to-date on what's happening and learn new things to make you a better TypeScript developer along the way!
Latest episodes

May 6, 2025 • 33min
Deno 2.3 Ships Tons of QOL Improvements | News | Ep 16
News for the week of April 28, 2025: Deno 2.3 brings some nice quality-of-life improvements, plus void(0) has released a new all-in-one bundler for your TypeScript libraries.Chapters(00:00) - Introduction
(04:51) - News: This Week in TypeScript Go
(05:47) - News: Deno 2.3 Released
(08:36) - News: tsdown is a TypeScript Bundler for Library Authors
(11:29) - News: Astro 5.7 Release
(13:04) - Community Highlights: "Macros" in TypeScript by cinny.bun.how
(15:40) - Community Highlights: Dan Abramov's AMA on BlueSky
(16:02) - Community Highlights: Josh Goldberg's Series on "If I Wrote a Linter..."
(18:03) - Community Highlights: Plaid Migrated 100 Services to Deno Deploy
(19:52) - Community Highlight: Pinterest Migrated 3.7MM Lines of Flow Code to TypeScript
(21:59) - Dr. Axel's Corner: Converting Values to Strings
(23:14) - Community Highlights: Build Your Own Build Tools with Immaculata
(24:52) - Community Highlights: Type-safe Route Management in Vue
(25:56) - Cool Stuff: Hate git? Try Sapling Instead
(27:45) - Cool Stuff: Nerd Out with HVAC Ceiling Cassettes
(30:00) - Cool Stuff: Build Custom Fonts with FontForge
(30:28) - Cool Stuff: Quantum Computing Explainer by 3Blue1Brown
(31:05) - Cool Stuff: "Ed", an Early Text Editor
(31:25) - Cool Stuff: 4000+ Icons for Your Game at Game-Icons.net
LinksWebsite: Minnestar eventsWebsite: IGDATCTool: Deno 2.3Tool: tsdownTool: Astro 5.7Bsky thread: Macros in TypeScript (@cinny.bun.how)Bsky thread: Dan Abramov AMAArticle: If I wrote a linter, part 1 (Joshua Goldberg)Article: Plaid migration to Deno DeployArticle: Pinterest Flow to TS migrationArticle: Converting values to strings (2ality)Library: ImmaculataLibrary: vue-route-queryTool: Sapling SCMArticle: Ductless Ceiling CassettesVideo: Quantum computing explainer (3blue1brown)Video: ed text editor (Kay Lack)Website: Game IconsSponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host

4 snips
May 1, 2025 • 53min
Building Games in TypeScript | Erik Onarheim | Ep 15B
Dive into the world of game development with TypeScript and the Excalibur.js engine! Discover the essentials of building web games, from understanding actors and scenes to mastering physics and input handling. Learn about asset management and audio integration, plus the importance of tools like Tiled for level design. Explore the vibrant game dev community and gain insights on monetization strategies. Whether you're a newbie or a pro, there are tips and tricks for everyone to enhance their game-making journey!

Apr 29, 2025 • 28min
TSGo Gets Autocomplete and JSX Support | News | Ep 15
News for the week of April 21, 2025: TSGo gets autocomplete and JSX support, pnpm adds JSR support, and remember to migrate off Node 18! (00:00) - Introduction and Personal Updates
(04:55) - News for the Week of April 21, 2025
(06:26) - News: TSGo Gets JSX and Autocomplete Support
(08:36) - News: pnpm Gets JSR Package Support
(10:00) - News: Juno Adds Serverless TypeScript Functions
(11:23) - News: Storybook 9 Beta is Released
(13:23) - News: Node 18 EOL on April 30, 2025
(14:11) - Community Highlight: Joist ORM by Stephen Haberman
(15:51) - Community Highlight: TypeScript Interview Questions by L Javier Tovar
(18:08) - Community Highlight: Quad Trees with TypeScript by Hypersphere
(20:11) - Cool Stuff: GitHub's Project Padawan
(22:56) - Cool Stuff: Dan Abramov on React Server Components
(24:16) - Cool Stuff: Track WebGL Memory Usage
(25:25) - Cool Stuff: GameStats by Trezzy
Sponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host

Apr 24, 2025 • 59min
Are We Sick of TypeScript.fm Yet? | Retrospective | Ep 14B
In this episode, Erik and Kamran have a candid discussion about how the podcast started, how it went, and what the plans are for the future.Chapters(00:00) Introduction(01:18) Is TypeScript.fm Done?(01:59) Erik's Reflection(03:05) Kamran's Reflection(03:48) What's the Goal of the Podcast?(06:46) What Do We Want to Focus On?(12:10) Should We Build a Dedicated Community Around the Podcast?(13:58) How Do We Feel About the Time Spent Right Now?(18:05) Should We Split Episodes Apart?(21:59) What Should Change With the Record and Edit Workflow?(23:38) Should We Start Doing Video?(26:08) What Should the News Cover?(27:23) Should We Send a Newsletter?(29:28) How Are the Numbers Doing So Far?(36:26) How Do We Encourage Feedback or Engagement?(37:34) What Should We Stop Doing?(38:49) How Do We Want to Handle Guests?(40:28) How Do We Make It Easier to Aggregate News?(43:23) Should We Change Up the Format?(49:47) How Do We Want to Handle Mid-rolls?(51:03) How Do We Improve Our Show Notes and Accessibility?(52:34) Should We Update the Logo and Cover Art?(53:22) What Has the Community Reception Been?(56:55) Tell Us What You Think!Sponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host

Apr 23, 2025 • 12min
TC39 Enums in JS Proposal Moves to Stage-1 | News | Ep 14
News for the week of April 14, 2025: TC39 Enums in JS Proposal moves to Stage 1, plus Next.js gets some TS LSP plugin perf/stability improvements.Chapters(00:00) - Introduction
(02:07) - News for Week of April 14
(03:20) - News: SquiggleConf 2025
(03:40) - News: TC39 Enums in JS Proposal Moves to Stage 1
(04:20) - News: Deno 2.2.10
(04:48) - News: Bun 1.2.10
(05:08) - News: Next.js 15.3
(07:31) - Community Highlight: Reddit Discussion on the Enums in JS Proposal
(10:25) - An Abrupt Goodbye!
LinksSquiggleConfTC39 Enums in JS ProposalDeno 2.2.10Bun 1.2.10Next.js 15.3Reddit Discussion on the Enums in JS ProposalSponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host

Apr 16, 2025 • 1h 25min
DOOM.ts | Dimitri Mitropoulos | Ep 13
This week on the pod, we talk to Dimitri Mitropoulos about building DOOM in the TypeScript type system. We walk through all the nitty gritty and explore this truly amazing engineering feat! We touch on things that Dimitri learned and discovered along the way, and how you might be surprised what you can accomplish by trying! In the news, Zod 4 Beta drops with awesome new features. Chapters(00:00) - Intro
(00:37) - SquiggleConf 2025
(01:00) - Personal News
(04:28) - Dimitri's Background and Michigan TypeScript
(08:35) - JSON Parser in TypeScript Types
(09:08) - Where do you start with DOOM in Types?
(10:01) - "DOOM" Complete
(13:57) - How do you run DOOM in TS?
(17:36) - Debugging an Emulator in TS Types
(19:22) - How does DOOM work?
(20:45) - Using Web Assembly
(22:49) - Understanding WebAssembly and TypeScript Integration
(24:59) - The Concept of Abstraction in Programming
(27:02) - Challenges in Implementing WebAssembly from the Spec
(28:59) - Ambiguities in Specifications and Their Impact
(30:40) - Debugging Techniques and Error Handling
(32:24) - Innovative Use of Overflow in Game Development
(35:40) - Insights Gained from TypeScript During the Project
(38:24) - The Complexity of TypeScript Types
(43:08) - Time Travel Debugging and Memory Management
(45:00) - The Most Challenging Aspects of the Project
(48:32) - Reactions to DOOM
(53:10) - The Dawn of TypeScript Go
(01:02:14) - Lessons Learned and Future Directions
(01:08:37) - Dimitri Says Goodbye!
(01:09:50) - News for the Week of April 7th
(01:14:42) - Community Posts
(01:17:39) - Secret of the Handbook
(01:19:07) - Cool Stuff from Erik
(01:19:51) - Debugging and Performance Optimization Techniques
Dimitri's LinksSquiggleConf 2025Michigan TypeScriptTypeScript Types Can Run DoomAnders TS GO Interview Final Boss Challenge TypeScript Types WASM RuntimeNews LinksZod 4 BetaMatt Pocock's VideoDan Abramov - RSCs or Maybe Nothttps://overreacted.io/react-for-two-computers/ https://youtu.be/ozI4V_29fj4 Axel’s CornerTesting Types https://2ality.com/2025/04/testing-types-typescript.html https://bsky.app/profile/dr-axel.de/post/3lmmwp4ovek2q Deploying TypeScript (timely!)https://2ality.com/2025/04/deploying-typescript-present-future.htmlhttps://www.pipe0.com/blog/never-in-typescript https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types Kamranhttps://bun.sh/blog/debugging-memory-leaksAnimate UI: copy paste or installable components built with TS, React, and Tailwind using Motion.ErikVGM ConShader Programming TalkSebastian Lague - Simulated CPUhttps://youtu.be/HGkuRp5HfH8?si=9iNm0Ad1z4T4AePj Sebastian Lague - Rendering Texthttps://youtu.be/SO83KQuuZvg?si=uzPojhUqBvV35q7F Excalibur GamesSum Monsters Sweep Stacks Tiny Tactics Jelly JumperSponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host
Dimitri Mitropoulos - Guest

Apr 8, 2025 • 31min
Enums in JS, Deno v Oracle Cage Match, and Parcel Gets React Server Components | Grab Bag | Ep 12
This week on the pod, we were very busy with travel, cons, and sickness! We have a news grab bag episode talking about the JS enums proposal, Deno v. Oracle, Parcel+RSCs, Firefox vulnerabilities and more!Also Please email us your feedback for your retro episode (feedback@typescript.fm)00:00 Intro00:50 VGM Con02:07 IGDATC Talk Wednesday April 9th02:41 Toddler Zone03:28 Exciting Arizona Travels05:53 (Almost) Missing Flights07:33 Sponsored by Excalibur.js08:44 JavaScript Enums Proposal10:06 Deno v. OracleDeno Blog PostJavaScript.tm Petition12:55 Parcel 2.14 and React Server Components14:01 Build Browser Extensions with Parcel14:18 NPM Ecosystem UpdatesJake Bailey's PostKat Marchán's Fix15:23 Mozilla JavaScript Sandbox VulnerabilityBleeping ComputerCVE Details from Mozilla16:51 Community: ArkType Deep Dive17:31 Community: JavaScript & TypeScript in my DatabaseTyped Rocks VideoPLV8 Extension20:00 Kamran's Cool Stuff: Data Visualization with TypeScript20:40 Erik's Cool StuffGame: Dark Diety 221:27 Sprite Sheet Packing with Potpack23:53 De-Google Your Life25:46 HyperLight: A Lightweight VM for WASMMS HyperLight Announcement PostHyperLight Main RepoHyperLight WASM Repo30:26 Post-roll

Mar 31, 2025 • 1h 1min
Baby Got Bun | Ep 11
This week on the pod, we talk all about the Bun runtime funtimes! This is a powerful new player in the JavaScript and TypeScript runtime space focusing on DX, speed, and pushing the state of the art! We dive into the details and offer some of our thoughts around when to use it at the moment. In other news we avoid phone scams and talk fun new TypeScript libraries. Also Please email us your feedback for your retro episode (feedback at typescript.fm)Personal News00:36 Welcome01:33 Kamran & Erik IRLMinnebarVGM Con02:39 Erik @ C Fundamentals by Frontend MastersFFM02:55 Vibe Coding03:43 LLMs "what are they good for?!"04:31 Kamran's New Course06:16 Kamran Review book on Time Freedom07:31 Scams and Phone CallsFTC Warning about fake Jury Duty(09:26) News for the Week of March 17, 202509:34 Next.js 9.1 CVEPR with fixEd's Video on this @ Low Level Learning10:43 Deno 2.2.511:13 Deno Patch Functionality11:59 Deno FFI Docs Update13:04 PandaCI: A New CI/CD Tool16:17 HKT Core(17:33) Community Highlights17:33 TS Go GitHub Discussion on Compiler API18:24 Deno Compile Vite20:07 Blog Post by Andy Jiang about Deno+OTel22:35 Cory House on Implementing Immutability in TypeScript23:16 RGSTRY for managing decorator metadata24:19 Corepack removal from Node, Sarah has a good overviewBun Deep Dive27:22 Introduction to Bun RuntimeBaby Got Back by Jonathan Coulton 28:01 What is Bun28:23 Bun vs Node.js and Dino29:25 Features and Capabilities of Bun30:40 Bun Performance31:23 C Tangent32:12 Bun DX35:20 Standalone Executable35:53 Use Cases for Bun38:00 Cautions and Considerations41:38 Good Use Cases46:24 Bun CommunityThis OP asked about Bun and ended up moving to Deno actuallyMemory Leaks Reddit threads48:09 ConclusionsOutro52:00 Cool Stuff This Week58:11 Give Us Feedback (feedback at typescript.fm)Other LinksProfiling TypeScript in VSCodeCobol Based UIhttps://github.com/oven-sh/awesome-bun Chess in TypeScript types Developer SpeakSponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScript skills to make games! Excalibur comes out-of-the-box with everything you need to make web games, like physics, sprites, animations, sound effects, input, and particles. Design your assets with tools like Aseprite and Tiled, then load them natively using first-party plugins.MusicSeahorse Dreams by Kubbi (Spotify)Creators & Guests
Erik Onarheim - Host
Kamran Ayub - Host

7 snips
Mar 24, 2025 • 57min
The Vanilla TS Experience | Josh Goldberg | Ep 10
Josh Goldberg, an independent open-source developer and Microsoft MVP, shares his wealth of knowledge about TypeScript. He offers a welcoming guide to beginners, emphasizing resources like the free TypeScript Handbook and the playful TypeScript Playground. The conversation highlights pain points for newcomers and the significant advantages TypeScript provides to seasoned developers. Listeners hear about essential learning strategies and the benefits of tools like Create TypeScript App. Goldberg also discusses discriminated unions, a feature he particularly enjoys.

Mar 17, 2025 • 53min
TS-a-Go-Go | Ep 9
TypeScript gets a major upgrade, now ten times faster! Meanwhile, the buzz around Lynx, a potential React Native rival, heats up. Angular 19.2 drops new features, while community contributions shine with libraries like traits-ts that add multi-inheritance. The podcast explores the exciting transition of TypeScript's compiler to Go and why that's a game-changer. There’s also talk of navigating TypeScript's implementation challenges and fun innovations in testing frameworks and development tools.