TypeScript.fm - The Friendly Show for TypeScript Developers

Kamran Ayub and Erik Onarheim
undefined
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!
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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
undefined
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.
undefined
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.
undefined
Mar 10, 2025 • 1h 8min

React, TypeScript, and... Schbooleans? | Ep 8

This week Kamran dives into some nuances with using React with TypeScript while Erik plays the React fool and coins the word "schbooleans" (yep). In the news, erasableSyntaxOnly gets shipped, some new minor releases in the ecosystem, and oh, TypeScript types can run DOOM. Yes, TS is a real language now.Erik's NewsPersonal Blog Post: The Best Worst Year Happy New Year Excalibur! Excalibur 2024 Community Reel Erik didn't finish the flappy bird vid or lighting feature in time, consolation prizeFlappy Bird ArticleExcalibur Lighting PRs: Pipeline & PoC Week of February 24, 2025(04:16) - News: TypeScript 5.8 Releaseduserland-codemods for transforming import extensions to ".ts"(06:32) - News: Bun 1.2.4 Released(08:01) - News: Next.js 15.2 Released(09:29) - News: Astro 5.4 Released(09:49) - News: React Router 7.2 Released(10:25) - News: ArkType 2.1 Released(11:23) - News: Mozilla's Firefox Privacy Policy Rug-pull(14:32) - News: Warp Terminal is Now Available on Windows(15:55) - Community Highlights: TypeScript Types Can Run DOOM (!?)Write-up by Simon WillisonWrite-up on Socket.devMark Seeman's series (and course) on type-driven development (F#)(20:24) - Community Highlights: Dr. Axel's Cornerfree-typescript-resources GistTesting Types and asserttt(22:19) - Community Highlights: Safety-Web ESLint Plugin(23:27) - Community Highlights: Pattern for Strongly Typed Event Emitters(24:20) - Community Highlights: Websocks, a Typed WebSockets Router for Node Deep Dive: TypeScript and React Nuances(26:17) - Deep Dive: TypeScript and React(27:26) - Deep Dive: What You Need to Know FirstUsing Vite react-ts template(28:27) - Deep Dive: TSConfig Options for React and TS(32:55) - Deep Dive: How JSX/TSX Works Under the HoodDeno has native support for TSX/JSXAnd so does Bun(35:03) - Deep Dive: TSX in Different Runtimes(35:39) - Deep Dive: Typing Components and PropsExample of leaning on inference(38:12) - Deep Dive: Typing the Children Prop(40:13) - Deep Dive: Where Should Typings Go?(41:05) - Deep Dive: Should I Use React Class Components?(43:21) - Deep Dive: Typing Events and Callbacks(46:59) - Deep Dive: Typing Data and APIs(48:41) - Deep Dive: Typing Form Actions and "Schbooleans"(51:19) - Deep Dive: Typing State and Set-state Actions(54:11) - Deep Dive: Typing Contexts(54:49) - Deep Dive: Typing Refs and DOM Attributes(58:19) - Deep Dive: Sharing Typed Components in Libraries(59:56) - Deep Dive: Takeaways / tl;dlResource: React and TS CheatsheetsResource: Using React with TypeScript guided code lab on Pluralsight (requires subscription)Secrets of the Handbook(01:01:30) - Secrets of the Handbook: Our Favorite Utility TypesLinks(01:04:13) - Cool Stuff: Kamran's been playing Avowed and Pillars of Eternity(01:05:25) - Cool Stuff: Erik's spreads his stink with

The AI-powered Podcast Player

Save insights by tapping your headphones, chat with episodes, discover the best highlights - and more!
App store bannerPlay store banner
Get the app