TypeScript.fm - The Friendly Show for TypeScript Developers

Kamran Ayub and Erik Onarheim

Details

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!

Recent Episodes

OCT 9, 2026
Vite+ 1.0, SvelteKit 3, and TanStack Charts 1.0 | News | Ep 84
News for the weeks of September 21 and 28, 2026: Vite+ 1.0 is now stable, SvelteKit 3 is finally here, TanStack has charts now, and why everyone is launching decision models. From the community: awesome TypeScript books, why you shouldn't be afraid of generics, and how Booking.com cut Node scaling costs by 38%. Sponsored by Excalibur.js Excalibur.js is the free and open source friendly TypeScript 2D game engine for the web. Learn to make web games with TypeScript or JavaScript! Excalibur comes out-of-the-box with everything you need, like physics, sprites, animations, sound effects, and first-party plugins for popular 2D gamedev tools. Homepage and Docs: https://excaliburjs.com Make Your First Game in 10 Minutes Join the Discord: https://discord.gg/9UemP985Uy Chapters (00:00) - Tooling: Vite+ 1.0 Stable Announced (05:58) - Tooling: Introducing upm, a New Package Manager (09:42) - Tooling: TanStack Charts 1.0 Announced (12:08) - Metaframeworks: SvelteKit 3 is Here (13:38) - Framework: Nuxt 4.6 Brings Nuxt CLI v4 and is Closer to Being Server Agnostic (18:26) - Web Platform: ECMAScript Composites TC39 Proposal (21:56) - Web Platform: Cloudflare Open Sources cf CLI and Forge (25:40) - Web Platform: Cloudflare Introduces Clef, an Open Weights Decision Model (30:41) - Web Platform: Chrome 154, Responsive iframes (31:49) - Web Platform: Firefox 157's Fresh Design (33:03) - Security: Next.js September 2026 Patches Available (33:46) - Library Watch: Preact 11 - ESM-only, Hydration v2, Modern Diffing (35:43) - Library Watch: Effect Module of the Week, RcMap (36:35) - Library Watch: mimlet 0.1 for Testing with Mock Data (37:33) - Library Watch: oxbox, a Tiny Portable Library for Parsing, Transforming JSX/TSX (37:53) - Library Watch: safemods, Type-directed Code Mods for TS 7 (39:49) - Library Watch: GTKX, Linux desktop apps with React and JSX (41:20) - Secret of the Handbook: Const Generics (Again) (42:52) - Community: Angular's TypeScript 7-powered Compiler (45:54) - Community: Josh Ghoulberg is Excited About no-unsafe-enum-assignments TS ESLint Rule (47:02) - Community: Awesome TypeScript Books by tscollege (48:19) - Community: Max Hurst Reassures Us Not to Be Afraid of Generics (49:47) - Community: Dan Holloran on How to Clean Up Your TSConfig for TS7 (50:32) - Community: Rahul's Readable Regular Expressions Inspired by Emacs (53:13) - Community: Razvan's Glossary of Programming Terms (54:05) - Community: How Booking.com Scales Node.js and Cut Costs by 38% (58:06) - Community: NOMIAD, an Open World Sci-Fi Game Written in WebGL and TypeScript (59:05) - Community: Claude Mods Customize Your Clanker (01:00:24) - Community: dsherret's TypeScript Factory Code Generator Generator (01:01:18) - Community: Kris Jenkins Used SpaceTimeDB to Visualize Wikipedia Edits (01:02:14) - Bleet of the Week (01:02:49) - Cool Link: How to Render Text from Font Files by Jimmy Lefevre (01:03:59) - Cool Prompt: Create a Trip Highlight Video (01:10:02) - The Minnesota Long Goodbye News VoidZero: Announcing Vite+ 1.0Plus: ViteConf 2026 (October 15) Socket: Introducing upm TanStack: TanStack Charts 1.0 announced SvelteKit: SvelteKit 3 is here Nuxt: Nuxt 4.6 ECMAScript: TC39 Composites via Rob Cloudflare: Open-sourcing cf and Forge Cloudflare: Introducing Clef: our open-source decision models, and new RL fine-tuning platformRelated: AWS launches a local answer to TypeSafe's Jev decision model Chrome: New in Chrome 154 Mozilla: Firefox 157.0, See All New Features, Updates and Fixes Next.js: September 2026 Security Release Library Watch Preact 11: Post by @jovidecroock.com Effect.ts Module of the Week: RcMap Mimlet 0.1.0-beta.0: create mock test data Safemods: type-directed code mods for TypeScript 7 GTKX: native Linux desktop apps with React From the Community Angular Team: An update on Angular’s TypeScript 7-powered Compiler Josh Goldberg: typescript-eslint finally gets "no-unsafe-enum-assignments" TScollege: Awesome TypeScript Books Max Hurst: Do Not Be Afraid of Generics Dan Halloran: Your tsconfig Is Still Written for TypeScript 5. Here's the Cleanup TS 7 Forces Rahul M. Juliato: Readable Regular Expressions for JavaScript/TypeScript, Inspired by Emacs' rx Razvan Muntian: a programming glossary Booking.com: Node.js at scale, rebalanced: how we cut cost by 38% NOMIAD: an open-world sci-fi game in WebGL written in TypeScript Anthropic: Customize Claude Code with mods in TypeScript David Sherret: TypeScript Compiler API Factory Code Generator Generator (via Evangaline Rome) Kris Jenkins: SpaceTimeDB w/ TypeScript Bleet of the Week
77 MIN
OCT 1, 2026
Type-aware Linting, Vite+, and the Future of Dev Tooling | VoidZero | Ep 83B
In this special episode, the two fools are joined by Cameron Clark and Jim Dummett from VoidZero (and now, Cloudflare) to talk about the latest developments in type-aware linting, Vite+ and the Vite ecosystem, and what the future of dev tooling looks like for TypeScript and JavaScript developers. Sponsored by Excalibur.js Excalibur.js is the free and open source friendly TypeScript 2D game engine for the web. Learn to make web games with TypeScript or JavaScript! Excalibur comes out-of-the-box with everything you need, like physics, sprites, animations, sound effects, and first-party plugins for popular 2D gamedev tools. Homepage and Docs: https://excaliburjs.com Make Your First Game in 10 Minutes Join the Discord: https://discord.gg/9UemP985Uy Chapters (00:00) - Introducing Cameron Clark and Jim Dummett (04:55) - The VoidZero Acqui-hire (11:47) - The Vite Toolchain (16:04) - What Dark Magic Makes TypeScript Plugins Work with oxlint? (23:42) - Type-aware Linting via Oxlint and TypeScript 7 (27:02) - Type-aware Linting is Now Stable, What Does That Mean? (29:39) - Does TypeScript 7's Performance Unlock New Kinds of Lint Rules? (33:13) - What is Coming Next to Dev Tooling? (37:29) - How Can Dev Tools Help Optimize Agent Interactions? (50:42) - Takeaways and Where to Follow Jim and Cameron (57:09) - The Minnesota Long Goodbye LinksCameron on GitHub Jim's talk on oxc and type-aware linting Vite+ (and 1.0 announcement) Void Cloud VoidZero Blog oxlint plugin: anti-slop Music Seahorse Dreams by Kubbi (Spotify)
75 MIN
SEP 25, 2026
Benchmarking in Node, Modern DOM Typings, and Jev the Type-safe AI | News | Ep 82
News for the week of Sep 14, 2026: latest Node 26 includes experimental benchmark tests, a modern drop-in replacement for DOM typings, and we try to understand Jev, bruv. From the community: how GitHub rewrote Copilot's runtime in Rust, learn about ESM, and why Shopify ditched React Native (spoiler: agents). Sponsored by Excalibur.js Excalibur.js is the free and open source friendly TypeScript 2D game engine for the web. Learn to make web games with TypeScript or JavaScript! Excalibur comes out-of-the-box with everything you need, like physics, sprites, animations, sound effects, and first-party plugins for popular 2D gamedev tools. Homepage and Docs: https://excaliburjs.com Make Your First Game in 10 Minutes Join the Discord: https://discord.gg/9UemP985Uy Chapters (00:00) - Welcome to the Show (06:02) - Tooling: Node 26.9.0 Lets You Write Benchmarks with node:bench (08:49) - Tooling: Jev, the Type-safe AI (15:25) - Tooling: TypeScript 7 Works Around New Golang FMA Changes (17:58) - Frameworks: GeaStack Compiles Typescript to Native Apps with C++ (20:00) - Frameworks: Ember 7.2, New Built-in Strict Resolver and ESM-only (20:46) - Web Platform: Firefox 156, Can Now Open Automatically on macos (21:21) - Security: Happy Birthday Shai-Hulud! (22:17) - Security: GitHub Actions Tries to Limit Cache Poisoning Risk (23:47) - Security: Gitea Affected by Severe RCE Vulnerability (24:47) - Library Watch: modern-web-types Drop-in Replacement for DOM Typings (26:52) - Library Watch: sqlbraid Lets You Write SQL and Keep TypeScript (29:28) - Library Watch: temporal-parser, a Lexer and Parser for Temporal Expressions (31:06) - Library Watch: Zod 4.6 Comes With Some Perf Improvements (32:26) - Community: Puffball Explains How TypeScript 7 Creates Typed ASTs in Go (33:44) - Community: ESModule.com, Learn About ES Modules (34:47) - Community: cm.xyz Explains Why You'd Use Effect (36:27) - Community: Porffor Can Compile TSC (37:34) - Community: Stephen Toub on How GitHub Rewrote Copilot Runtime in Rust, with Copilot (42:29) - Community: ecyrbe Creates Typeskell to Experiment with Typeclasses (42:52) - Community: Barak's Complete Guide to HOCs with Next.js, React, and TS (43:53) - Community: Orhun Interviews Sebastian from OpenTUI (44:34) - Community: Shopify Switched Back to Swift and Kotlin from React Native (48:07) - Bleet of the Week (49:31) - Cool Link: Design Your Own Silicon Chip (50:41) - Cool Link: The Essential Craftsman (53:10) - The Minnesota Long Goodbye News Node: 26.9.0 Syntax: Jev Explained: Demos and Use Cases Jake Bailey: Go FMA’s introduce non-determinism Geastack compiles TypeScript to native apps via C++ Ember: 7.2 released Firefox: Firefox 156.0 release Socket: Happy Birthday, Shai-Hulud GitHub: Control GitHub Actions cache access with cache-mode Gitea RCE Vulnerability: Ed from Low Level's update on git situation Library Watch modern-web-types is a drop-in replacement for dom typings with modern APIs Clickin/SQLBraid: Write SQL. Keep TypeScript. Skip the query-builder translation layer taskade/temporal-parser: A lexer and parser for temporal expressions Zod 4.6 perf fixes and Zod Mini standalone From the Community iamstan.dev: ES Modules via James Puffball: Inside TypeScript 7's Go Port: Designing Typed AST Nodes Without a Giant Struct cm.xyz: Understanding Why You'd Use Effect.ts Porffor: TSC compiled with Porffor Stephen Toub: Migrating the GitHub Copilot runtime to Rust, using Copilot Typeskell is a cursed project Burak.dev: The Complete Guide to HOCs in Next.js with React and TypeScript Interview with OpenTUI https://bsky.app/profile/orhun.dev/post/3mvlg6qrwls2u Shopify: Native is now the future of mobile at Shopify Bleet of the WeekXKCD comic: guaranteed to be random Cool Links Designing Silicon From Scratch Dr.Semiconductor - YouTube Essential Craftsman – absolute gold carpentry tips Music Seahorse Dreams by Kubbi (Spotify)
67 MIN
SEP 17, 2026
React 19.3, Safari 27 & Chrome 153 Loot Drops, and Cloudflare's New Worker Module Registry | News | Ep 81
News for the week of Sep 7, 2026: new browser loot drops in Chrome 153 and Safari 27, React 19.3 lets you control view transitions, and how Cloudflare rewrote the workers module registry for better Node.js compatibility. From the community: why nobody pays OSS projects, interactively learn Effect, and the motivation behind Zena the Warrior Princ--er, a new programming language inspired by TypeScript. Partake in the No Sloptober Challenge! Head to no-sloptober.com to read the manifesto and see if you can challenge yourself to turn off LLMs and AI for October. Sponsored by Excalibur.js Excalibur.js is the free and open source friendly TypeScript 2D game engine for the web. Learn to make web games with TypeScript or JavaScript! Excalibur comes out-of-the-box with everything you need, like physics, sprites, animations, sound effects, and first-party plugins for popular 2D gamedev tools. Homepage and Docs: https://excaliburjs.com Make Your First Game in 10 Minutes Join the Discord: https://discord.gg/9UemP985Uy Chapters (00:00) - Welcome to the Show (05:11) - Tooling: React 19.3 (08:50) - Tooling: React Compiler is in Vite 8 via oxc (10:17) - Web Platform: Chrome 153 Brings (Proper) Single-axis Scroll Support (12:04) - Web Platform: Safari 27 First to Add Import Defer Support (17:04) - Web Platform: Cloudflare Turns Node Compatibility On By Default (20:42) - Library Watch: srvquery, Fully-typed Library for Browsing Game Servers (21:32) - Library Watch: microlighter, Zero Dependency Syntax Highlighter Using CSS Highlights API (23:15) - Library Watch: mcp-tada, Turn a MCP Client Into a Typed API (25:22) - Library Watch: upyo, Cross-runtime Email Sender (26:51) - Community: Laurie Voss Explains How We Can Force Companies to Pay for Open Source (33:35) - Community: Kit Langton Made an Interactive Intro to Effect.ts (34:52) - Community: Dan Holloran Advocates for Using the Built-in node:test Runner (36:45) - Community: Pablo Androetto Ported Thousands of Windows Games to the Browser in Excalibur.js (38:07) - Community: Dimitri Metropoulos Helps You Solve TS Performance Problems (39:19) - Community: Hexagon Hunt-and-Kill Maze Using Mazely (39:48) - Community: Justin Fagnani Explains Why He Made Zena, a TypeScript-inspird Programming Language (42:12) - Bleet of the Week (43:02) - Cool Link: Undisputed Authority with Roger Martin (46:42) - Cool Link: Fresh is a Powerful Terminal Text Editor and IDE (48:15) - Cool Link: How to Build Weighted Loot Tables (48:45) - The Minnesota Long Goodbye News Tooling: React 19.3 Tooling: What's New: August 2026 from VoidZero Web Platform: New in Chrome 153 Web Platform: Safari 27 Release Notes Web Platform: How we rebuilt Cloudflare Workers’ module registry for Node.js compatibility Library Watch Srvquery: fully-typed library for browsing game servers microlighter: zero-dep syntax highlighter using CSS Highlights API mcp-tada: create typed APIs for a MCP client Upyo: runtime-agnostic email sending library From the Community Laurie Voss: Nobody pays for open source. We can force them to. Kit Langton: Learn Effect.ts Dan Holloran: node:test is the test runner you already have installed Pablo Androetto: Game Preservation Dimitri Mitropoulos:Solving Your TypeScript Performance Problems - Dimitri Mitropoulos Wujue: A hexagon hunt-and-kill maze using Mazely Justin Fagnani: Zena: TypeScript like language Bleet of the Week Cool Links Get the Fresh editor in the terminal Two Ways to Roll Weighted Loot Undisputed Authority: Roger Martin Brett Codes: I'm done using AI Music Seahorse Dreams by Kubbi (Spotify)
56 MIN
SEP 15, 2026
Vitest 5, rslib 1.0, and the No Sloptober Challenge | News | Ep 80
News for the week of Aug 31, 2026: Vitest 5's new doctor command and perf enhancements, Rslib is now stable, and Astro 7.3 lets you run multiple preview servers at once. From the community: build circuit boards in React, TypeScript for Ruby devs, and another compile-time crime of implementing Brainf*** in TypeScript types. Partake in the No Sloptober Challenge! Head to no-sloptober.com to read the manifesto and see if you can challenge yourself to turn off LLMs and AI for October. Sponsored by Excalibur.js Excalibur.js is the free and open source friendly TypeScript 2D game engine for the web. Learn to make web games with TypeScript or JavaScript! Excalibur comes out-of-the-box with everything you need, like physics, sprites, animations, sound effects, and first-party plugins for popular 2D gamedev tools. Homepage and Docs: https://excaliburjs.com Make Your First Game in 10 Minutes Join the Discord: https://discord.gg/9UemP985Uy Chapters (00:00) - Welcome to the Show (05:51) - Personal Challenge: No Sloptober (10:53) - Tooling: Strongly-typed Normalized File Paths in the TS Codebase (13:05) - Tooling: Ember for TS 7 Declared Ready (14:23) - Tooling: Bun 1.4.1 Now Types Import Attributes in TS 7.1 Nightly (14:49) - Tooling: Vitest 5 Brings Trace View, Doctor, and Temporal Mocking (17:08) - Tooling: rslib 1.0, like TSDown But Built on rspack (20:41) - Metaframeworks: Astro 7.3 Can Run Multiple Preview Servers at Once (21:16) - Security: Outsource Vulnerability Remediation to Cloudflare's Managed Defense (24:08) - Library Watch: Starlight 0.42 (25:17) - Library watch: HQTUI, a High Quality Terminal UI (26:08) - Library Watch: tsmc, a TypeScript Runtime Written in minc (27:27) - Library Watch: tscircuit, React for Electronics (29:01) - Library Watch: jasypdf, Declarative PDFs in Pure TypeScript (30:04) - Library Watch: @stdlib/stdlib, Fundamental Numerical Library for JS and TS (30:24) - Library Watch: RetroImgHandler Can Decode, Validate, Convert, Preview, and Encode Retro Graphics (31:12) - Library Watch: causewalk, Inner Exception Unwrapping (33:12) - Library Watch: numpy-ts 1.7.0 is Now Faster Than Native NumPy (34:12) - Community: Kev Helps Ruby Devs Learn TypeScript (34:48) - Community: Hugo Wrote Brainf*** in TypeScript Types (36:23) - Community: How Turbopack Chunks Your JavaScript by Next.js (36:52) - Community: How Next.js Closed 1500 GitHub Issues in One Month (38:32) - Community: What's New in Svelte, Aug 2026 (38:52) - Community: David Dal Busco Wrote Two Tiny Utils for the Result Pattern (40:54) - Community: Matt Pocock Praises Effect.ts for Backends (41:38) - Bleet of the Week (42:26) - Cool Link: Bookmarklet to Open a New Tab Next to the Current One (44:25) - Cool Link: Understanding TETRIS as a Game Developer (45:59) - Cool Link: Orbliterate! A Game That Uses CAD for Level Design (47:03) - The Minnesota Short Goodnight NewsTypeScript: Strongly Typed paths example Ember for TS 7 declared ready Bun v1.4.1 Vitest 5.0 is out Rslib 1.0 is out Astro 7.3 – run multiple preview servers at once Cloudflare: Introducing context-aware vulnerability discovery and remediation Library Watch Starlight 0.42 documentation using Astro HQTUI: A high-quality terminal UI library TSMC: A TypeScript runtime written in minc TSCircuit: React for electronic circuit boards JASYPdf: Declarative PDFs in pure TypeScript Stdlib: Numerical and scientific funamental standard library for JS/TS RetroImgHandler: Encodes, decodes retro graphics Causewalk: Think inner exception unwrapping Numpy: 1.7.0 numpy-ts is faster than native Numpy From the Community Kev: TypeScript for Ruby devs · codingpaws Hugo: Brainf*** written in TS types Next: How Turbopack chunks your JavaScript Next: How we closed 1,500 GitHub issues in one month Svelte: What’s new in Svelte: September 2026 David Dal Busco: Two Tiny Utils for the Result Pattern Effect: Matt Pocock praises Effect.ts Bleet of the Week Cool Links Bookmarklet from Dr. Axel: Open new tabs next to current Understanding TETRIS As a Game Developer Orbliterate! uses parametric CAD for levels with TypeScript scripting for game logic Music Seahorse Dreams by Kubbi (Spotify)
52 MIN