

TypeScript.fm - The Friendly Show for TypeScript Developers
Kamran Ayub and Erik Onarheim
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!
Episodes
Mentioned books

Sep 3, 2025 • 56min
Breaking Changes in TS 6, a Calm Migration to Type Stripping, and Deno's #FreeJavaScript Campaign | News | Ep 33
News of the week of August 25, 2025: the two fools unpack the expected breaking changes to TSConfig in the upcoming 6.0 release, explain Node's latest LTS notable changes, and cover the latest in the JS trademark case from Deno. Plus, a PSA if you use Nx! From the community: making the case to migrate to Node's type stripping, a peek at Vitest 4, Zod's new Codecs feature, refactoring types, Rolldown is the opposite of a letdown, and a bunch of neat libraries/framework releases to watch. Chapters(00:00) - Welcome to the Show
(06:46) - News: TSGo Refactoring and Find Reference Enhancements
(07:54) - News: Expect Some (Good) Breaking Changes in TS 6.0
(12:26) - News: Node.js 22.19.0 LTS Notable Changes
(18:13) - News: RsPack 1.5 Features Type Re-export Analysis
(21:27) - News: Deno's GoFundMe to #FreeJavaScript
(22:38) - PSA: Supply Chain Attack Against Nx Packages
(25:49) - Community Highlight: Attend SquiggleConf 2025
(26:43) - Case Study: How Calm.com Migrated to Node Type Stripping
(30:13) - Community Highlight: Dr. Axel's Corner
(33:01) - Community Highlight: Vitest 4 Sneak Peek
(34:28) - Community Highlight: Zod 4.1 Codecs
(36:39) - Community Highlight: Shout-out to Remco for Fixing JSX Typing Bugs
(37:24) - Community Highlight: TypedRocks Shows You How to Refactor Type Definitions
(38:27) - Community Highlight: Neovim Support for TSGo Spotted in the Wild
(39:09) - Library Watch: csv-utils Helps You Deal with CSV Files
(39:39) - Library Watch: contrastrast Provides WCAG-compliant Color Manipulation
(41:16) - Case Study: Plaid Cut Build Time by 97% with Rolldown
(42:17) - Framework Watch: Runner V4 Released
(43:53) - Framework Watch: Ripple, a TypeScript UI Framework
(45:20) - Community Highlight: Joke of the Week
(45:48) - Secret of the Handbook: declarationMap
(47:17) - Cool Link: MuJS for Embedding Scripting into C/C++
(48:57) - Cool Link: Cory Doctorow is Kickstarting a Book
(50:44) - Cool Watch: Learn Game Dev from a Nintendo Game Designer
(52:29) - The Minnesota Long Goodbye
Personal NewsKamran's new Qwik City Foundations course (requires subscription)Affected by the Verizon outage? Get some monies (or try visiting the Transfer Phone/PIN page in your account)Alternatively, switch to Mint and save some cheddar (that's Kamran's referral link :-)NewsTS 6.0 proposed deprecations and breaking changesNode 22.19.0 LTS notable changes include a new CA certificate API and unflagging WASM modules (see: source-phase imports)Rspack 1.5 release features type re-export analysisDeno's GoFundMe for #FreeJavaScriptPSA: Nx supply chain attack (write-ups from Socket.dev and TheHackerNews)From the CommunitySquiggleConf: September 18-19Calm.com: How we migrated our Rush.js monorepo to Node type strippingDr. AxelJavaScript’s trademark problem Learning web development: Web servers Learning web development: JavaScript exceptionsLearning web development: JSON and processing files in Node.js Learning web development: JavaScript MapsVitest 4 will be faster!Zod creator explains 4.1's new codecs featureUppy issue reveals a bug in JSX typing across ecosystemTypedRocks: Let’s Replace 100+ React Types with 3 Lines Of Code (Same Type Safety!) Possible sighting of neovim TSGo supportLibrary watch: doeixd/csv-utils: Helpful utils for working with csv files or arrays of objectsLibrary watch: ammuench/contrastrast: A library to determine text contrast based on WCAG Standards VoidZero: How PLAID Cut Build Times by 97% Migrating From Rollup To RolldownFramework watch: Runner V4 releasedFramework watch: trueadm/ripple: the elegant UI framework for the webThis week's TS JokeSecret of the HandbookThe declarationMap config option significantly speeds up Project References performance in IDEs. Cool StuffMuJS: Introduction Cory Doctorow’s KickstarterLegendary Nintendo game designer published 200+ videos on gamedev for free.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)

16 snips
Aug 26, 2025 • 51min
TypeScript Go Nightly Improvements, Rslint Announced, and Big Bun Updates | News | Ep 32
This week, dive into the major updates with TypeScript Go and the introduction of Rslint, a game-changing linter. Discover Bun's impressive speed boosts and memory reductions. Next.js 15.5 rolls out type-safe routing, while Angular goes zoneless! The community showcases an exciting Hangman project in TypeScript, alongside a discussion on safeguarding browser assets. Plus, get tips on efficient testing in CI and deploying code effectively with feature flags and observability. It's a jam-packed session of innovation and insights!

Aug 19, 2025 • 18min
Astro DB Gets Enum Support, Type-safe Data Flow in Next.js, and a Moose-y ORM | News | Ep 31
News of the week of August 11, 2025: there ain't much! Astro 5.13 minor release brings enums to Astro DB and improved meta environment variables. From the community: learning web dev, Result-typing Next.js server actions, and Clickhouse built an ORM.Chapters(00:00) - Welcome to the Show
(05:07) - News: Astro 5.13 Adds import.meta.env and Astro DB Enum Support
(06:47) - Community Highlight: Dr. Axel's Learning Web Dev Series
(07:47) - Community Highlight: Type-safe Data Flow Between Client and Server in Next.js by Nahuel Scotti
(08:45) - Community Highlight: Clickhouse Made an OLAP ORM with TS
(11:25) - Cool Link: nextra, a Next.js Static Site Generator
(11:50) - Cool Link: editly, Non-linear Video Editing in Node.js and ffmpeg
(12:33) - Cool Links: A Bunch of Excalibur Games!
(14:36) - The Minnesota Long Goodbye
NewsAstro 5.13 From the CommunityDr. Axel’s Blog Series on Learning Web DevNahuel Scotti: Type-Safe data flow between client & server in Next.js applicationsClickhouse: Does OLAP need an ORM? Plus, listen to our ORMed and Dangerous (Ep 7) deep dive episode! Cool StuffMore Excalibur Games!https://daviderisaliti.itch.io/spookytruth https://daviderisaliti.itch.io/quadrush https://mookie4242.itch.io/zombie-shooter-clone Nextra – a Next.js static site generator with some built-in gizmos editly – non-linear video editing with Node.js and ffmpegSponsored 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)

Aug 12, 2025 • 49min
WebStorm Supports TS Go, V8 Stringifies JSON 2X Faster, and a TypeScript AI Conference | News | Ep 30
News of the week of August 4, 2025: WebStorm 2025.2 adds support for TypeScript Go language server (preview), V8 made JSON.stringify supa-supa-fast, and there's a new TypeScript AI conference on the block. From the community: recommended tools and libraries for TS developers, how to prevent ReDOS attacks, and an interview discussing how the JavaScript language evolves.Chapters(00:00) - Welcome to the Show
(04:52) - News: Erik's High Performance JavaScript Talk is OUT!
(06:02) - News: WebStorm 2025.2 Features TypeScript Go Language Server Support
(06:57) - News: V8 Improved JSON Stringify Perf by More than 2X
(10:54) - News: Bun 1.2.20 Includes Type-level Assertions and TS 5.9 Support
(12:24) - News: Mastra is Hosting a TypeScript AI Conference
(19:58) - Community Highlight: How I Built CSS' light-dark() Function in TypeScript by Robert Hameetman
(21:32) - Community Highlight: Type-Aware Linting with Oxlint
(22:39) - Tool Watch: Prevent ReDOS Attacks with regolith
(24:20) - Tool Watch: Filter tsc Errors by File or Folder Using tsef
(25:57) - Community Highlight: Tools or Libraries That Make Your Life Easier With TypeScript
(30:16) - Community Highlight: A Fast-paced Lumberjack Game Built with Excalibur.js
(30:51) - Community Highlight: Daniel Ehrenberg on How JavaScript Evolves by Weekly DevBrew
(31:10) - Community Highlight: Joke Bailey
(31:51) - Secret of the Handbook: Indexed Types
(36:20) - Cool Link: Speeding Up the semver Package
(38:36) - Cool Link: Enhance.dev, an HTML-first Full Stack Web Framework
(39:37) - Cool Link: mitata, a Benchmarking Tool That Loves You
(40:44) - Cool Link: Why contenteditable on Android is the Absolute Worst
(41:56) - Cool Link: Creating Legal Documents with Markdown
(43:18) - The Minnesota Long Goodbye
NewsErik’s talk is live! JavaScript Blazingly FAST! Lessons from a Game EngineWebStorm 2025.2: TypeScript-Go Language Server SupportV8 engine: How we made JSON.stringify more than twice as fastBun v1.2.20 includes type-level assertions and @bun/types fixes for TS 5.9Mastra announces TypeScript AI conferenceFrom the CommunityRobert Hameetman: How I Built CSS's light-dark() in TypeScript Boshen: Oxlint working on type-aware linting with TSGo (experimental)JakeRoggenbuck/regolith: Safely write RegExp that are ReDOS-proofPS. Listen to the TypeScript Security episode with Liran Taliostreamer-X/tsef: CLI tool to filter tsc output and only show errors for specific files and directoriesCould be a good companion to ts-migrating by Jason YuReddit: What tools and libraries do you use with TypeScript to make your dev life easier?ts-patternZodLefthookEffect.ts and XstateneverthrowTimber Clone: An Excalibur game (written in TS!)Source code: jyoung4242/TimberEx Weekly Dev Brew with Daniel Ehrenberg (President of Ecma International & TC39 veteran)Joke Bailey on Why is TS is so slow?!Secret of the HandbookTypescript Indexed TypesExample 1Example 2 Cool StuffMarvinH: Speeding up the JavaScript ecosystem - Semver Plus a cool profiling viewer, cpuproEnhance, an HTML-first full stack web dev frameworkevanwashere/mitata: benchmark tooling that loves you ❤️ Contenteditable on Android is the Absolute Worst (But, ProseMirror looks really cool) petalo/legal-markdown-js: Write legal docs in Markdown and TSSupabase, hosted PostgresSponsored 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)

Aug 7, 2025 • 42min
State of TypeScript Linting 2025 | Joshua Goldberg | Ep 29B
Joshua Goldberg (JoshuaKGoldberg.com), creator of typescript-eslint, joins us to discuss the state of linting TypeScript projects in 2025. Which linters should we pay attention to? Why are there so many? What's unique about TypeScript? Josh shares his perspective and covers what to look for in a linter and how best to utilize them in your projects.Chapters(00:00) - Introducing Josh Goldberg
(02:10) - Why Are There So Many Linters?
(02:48) - Why Do I Need a Linter With TypeScript, Anyway?
(04:13) - Landscape of Linters in 2025
(06:56) - How Does TypeScript Linting Actually Work?
(08:15) - Creating Type-aware Native Speed Linters
(11:06) - What Would the Ideal Linter Look Like?
(12:48) - Where is the Bottleneck in Type-aware Linting?
(15:15) - Are Native Speed Linters the Answer?
(21:03) - Okay, So Which Linter Should I Use?
(23:33) - Are There Some Golden Type-aware Rules to Use?
(24:44) - Customizing Your Linting Setup
(27:05) - Writing Your Own Custom Lint Rules
(31:08) - Josh's Recommended ESLint Plugins
(34:15) - Future of Linting with Flint
(36:37) - Attend SquiggleConf 2025 in Boston
Linterstypescript-eslint (stable) – TypeScript, most type-aware lint rulesoxlint (stable) – Rust, no type-aware lint rulesBiome (stable) – Rust, limited type-aware lint rules in V2tsslint (stable) – TypeScript, integrates with tsserver, custom rules with TS compiler APItsl (new) – tsc plugin that ports a selection of typescript-eslint type-aware lint rulesDeno lint (stable) – Rust, subset of ESLint rules, no type-aware lint rulesFlint (unstable) – TypeScript, Josh’s fast, friendly linter, still in developmenttsgolint (prototype) – Go, proof-of-concept experimental TypeScript Native integrationResourcesLearn: Vanilla TypeScript ExperienceLearn: ASTs and typescript-eslintLearn: If I Wrote a Linter, Part 4: Summary Learn: TypedRocks Builds a Type-aware ESLint PluginDustinSpecker/awesome-eslint – a list of awesome ESLint plugins and resourcesJoshuaKGoldberg/create-typescript-app – pick and choose the rules you likeESLint now supports linting for Markdown and CSSJosh’s Favorite Rules and Plugins:typescript-eslint/no-floating-promises – to avoid non-awaited Promisestypescript-eslint/no-deprecated – to avoid calling deprecated APIseslint-plugin-regex – to catch ReDOS vulnerabilitieseslint-plugin-n – for Node.js projectseslint-plugin-jsdoc – for the “informative docs” ruleeslint-plugin-erasable-syntax-only – to enforce erasable syntax in your TS project (prior to TS 5.8)eslint-plugin-package-json – lint your package.json fileWhere to Find JoshJoshuaKGoldberg.comFlint DiscordJosh on BlueSkyJosh on FosstodonJosh on GitHubSponsored 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)

Aug 5, 2025 • 42min
Node 22.18 LTS Green Lights TypeScript for Orgs | News | Ep 29
News of the week of July 28, 2025: TS 5.9 released, Node 22.18 is the first LTS to support TypeScript, a Rust-based alternative to Next.js, plus why Laravel ain't your pappy's PHP. From the community: eslint-max-depth-ts plugin, Zod vs. Valibot battle, Better Auth is so good, a deal with the TypeScript devil, and did you know you can render motion graphics with TypeScript.Chapters(00:00) - Introduction and Personal News
(05:18) - News: TypeScript 5.9 Release Highlights
(08:32) - News: Node 22.18 is the First LTS to Unflag Type Stripping
(12:12) - News: Deno Drops New Next.js and SvelteKit Templates
(13:41) - News: pnpm Adds Support for Deno and Bun to package.json Engines
(14:06) - News: A Bunch of ECMAScript Proposals Go Bonkers
(16:37) - News: Laravel Wayfinder Generates Types and Is Now Stable
(18:54) - News: Trusted Publishing in npm with OIDC
(19:35) - PSA: Security Vulnerability in form-data Library
(21:10) - Community Highlight: Adding Checked Exceptions to TypeScript
(22:57) - Community Highlight: New ESLint Max Depth Plugin by TypedRocks
(24:00) - Community Highlight: Zod vs. Valibot by Jack Harrington
(24:20) - Community Highlight: Better Auth is a TypeScript Auth Framework
(26:09) - Community Highlight: Understanding Effect.ts with Maxwell Brown
(26:52) - Community Highlight: The Many, Many, Many JavaScript Runtimes by Jamie Birch
(27:37) - Community Highlight: Auditing NPM Packages with NPQ
(28:06) - Community Highlight: TypeScript Performance Podcast Episode by Mike Hartington
(28:56) - Community Highlight: Learn TypeScript While Building a Game in Construct
(29:56) - Community Highlight: Parse TypeScript Types from Strings... with TypeScript Types by easrng
(30:55) - Secret of the Handbook: InstanceType
(33:17) - Cool Link: Create Video Motion Graphics in TS with MotionCanvas
(34:01) - Cool Link: Create Terminal UIs in TS with opentui
(34:40) - Weird Link: Running Windows 95 in Electron
(36:01) - Cool Library: Compile Time Expressions in TypeScript
(38:51) - The Minnesota Long Goodbye
NewsAnnouncing TypeScript 5.9 official stable release. No changes since the RC. (h/t Rob Palmer summary)Node 22.18 Unflagged TS support, TypeScript is now in LTSIntroducing Rari by Ryan Skinner – a full stack React runtime 4X faster than Next.js (BlueSky thread with more details)Next.js & SvelteKit Templates on Denopnpm adds support for Deno and Bun runtime engine enforcementLaravel announced the stable release of Wayfinder, which generates backend types and routes for TypeScriptVideo: https://youtu.be/UMqSDRe2oH8?si=e6cw57DJVkS40yv8Laracon 2025 Day 1: Keynote Segment by Joe Tannenbaum (@ 06:16:12)GitHub: npm trusted publishing with OIDC is generally availablePSA: Critical Vulnerability in form-data JavaScript Library Exposes Millions of Apps to Code Execution Attacks From the CommunityChecked exceptions in personal TypeScript fork by nxjosh Also: Fork Typescript: You Can Just Do ThingsTypedRocks: This New ESLint Plugin Fixes Your Nested Unreadable Types in TypeScriptJack Harrington: Zod VS Valibot: JS/TS Validator Battle!Dreams of Code: Better Auth is so good that I **almost** switched programming languages Maxwell Brown: Effect.ts and Effectful Technologies (devtools.fm)Jamie Birch: The many, many, many JavaScript runtimes of the last decadeTrevor Lasn: NPQ: Open source CLI tool that audits and protects your n... (by our friend Liran Tal)Mike Hartington: TypeScript is So Slow… Or Is It? LogRocket podcast Construct: Learn TypeScript in ConstructFunny post about parsing TS types from string literals using... TS types by easrngSecret of the HandbookUtility type `InstanceType<T>`https://github.com/excaliburjs/Excalibur/pull/3493/files https://www.typescriptlang.org/docs/handbook/utility-types.html#instancetypetype Cool StuffMotionCanvas makes cool animations in TypeScripthttps://github.com/sst/opentui – A terminal UI library💩🚀 Windows 95 in Electron. Runs on macOS, Linux, and Windows.I was playing Space Cadet pinball. They also have DOOM and Wolfenstein pre-installed.comptime.ts – A Zig-style comptime equivalent for TypeScript projects (Vite/Bun supported)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

Jul 31, 2025 • 57min
Building Secure TypeScript Applications | Liran Tal | Ep 28B
Liran Tal (lirantal.com) from Snyk joins us to dive deep into writing secure TypeScript applications. What's different compared to vanilla JavaScript security? Will schema validators fix all our woes? Can't we let LLMs find and fix security vulnerabilities? Liran educates us about the pitfalls and risks with misplacing trust in TypeScript and LLMs and what we can do to write more secure code.Chapters(00:00) - Introducing Liran Tal
(02:56) - What's Special About TypeScript Security vs. JavaScript Security?
(04:23) - Misplacing Trust in Types
(05:49) - Practical Examples of TypeScript Security Issues
(08:43) - Why Does TypeScript Security Matter?
(10:23) - TypeScript is Not a Security Tool
(11:14) - How Does HTTP Parameter Pollution Work?
(12:45) - Ways to Mitigate Parameter Pollution
(15:44) - Schema Validators Won't Always Save You
(16:51) - How Prototype Pollution Works
(18:23) - Exploiting Schema Validators Through Prototype Pollution
(21:50) - Mitigating Prototype Pollution Risks
(25:21) - Consequences of Prototype Pollution
(27:23) - Ways to Safely Merge Objects
(30:03) - How Can TypeScript Developers Improve Their Security Posture?
(33:17) - How Do LLMs Impact Secure Coding?
(39:11) - Misplacing Trust in AI-Generated Code
(41:10) - Can LLMs Review and Fix Secure Code?
(45:57) - So We're All Doomed, Right?
(48:31) - Bonus: Game Development as a Teaching Tool
(54:48) - Where to Find Liran
LinksLiran's website and blogTalk: Friend or Foe? TypeScript Security FallaciesCourse: Node.js Security CourseBook: Essential Node.js SecurityBook: Serverless SecurityTool: npq (welcoming contributions!)https://github.com/lirantal/is-website-vulnerableGame: Dependency FrostPaper: Are AI-generated fixes secure? (July 2025)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)

Jul 29, 2025 • 33min
Deno Fresh 2.0 Alpha, a BigInt Trick, and Learn TS in One Hour | News | Ep 28
News of the week of July 21, 2025: Deno Fresh 2.0 is in alpha, TS 5.9 RC has some small changes, and beware the latest eslint-config-prettier supply chain attack. From the community: learn TypeScript for free in an hour, master generics through Soduku, run TS in the browser without a build step, and a library for modern TS dependency injection.Chapters(00:00) - Introduction and Personal News
(07:14) - News: Try Out the Deno Fresh 2.0 Alpha
(08:32) - News: TypeScript 5.9 RC Includes Some Small Fixes
(09:22) - News: TSGo Adds @satisfies Support for JSDoc
(09:44) - PSA: eslint-config-prettier Supply Chain Attack
(10:35) - Correction: tsgolint and TSL Clarifications
(12:25) - Community Highlight: Learn TS in One Hour by freeCodeCamp
(12:53) - Community Highlight: Mastering TypeScript Mysteries by Sweta Tanwar
(13:37) - Community Highlight: Using BigInt to Make Sure a String is a Well-formed Integer
(14:38) - Community Highlight: tsbro Runs TypeScript in the Browser
(16:28) - Community Highlight: pure-ts-mock is a Standalone Mocking Library
(17:31) - Community Highlight: Custom SSR for Lit Web Components Using Deno Emit
(19:33) - Community Highlight: Mastering TypeScript Types by Laxman Rathod
(20:19) - Community Highlight: Building TypeScript Apps with Bun and Electron with electrobun
(21:08) - Secret of the Handbook: const Generics
(23:06) - Cool API: navigator.sendBeacon for Analytics
(24:43) - Cool Lib: es-toolkit, A Modern JavaScript Utility Library
(25:26) - Cool Lib: di-wise, a Zero Deps Dependency Injection Library for TS
(26:29) - Cool Read: NIH is Far Cheaper Than the Wrong Dependency
NewsDeno Fresh 2.0 is an alphaAnnouncing TypeScript 5.9 RC Popular npm linter packages hijacked via phishing to drop malware From the CommunityfreeCodeCamp: Learn TypeScript – Crash Course for Beginners (1 hour free course)City.js Conf: Sweta Tanwar - Mastering TypeScript MysteriesInteresting Type Inference Post using BigInts (Playground Link)stagas/tsbro: TypeScript for the Browserpure-ts-mock (bweet) is a minimalist, type-safe mocking libraryMatt Jennings pointed out a neat way to do SSR with Web Components (Lit) using Deno Emit and Deno Bundle Laxman Rathod: Mastering TypeScript Types: A Practical Guide from Basics to Advanced (h/t Shawn Wildermuth)Electrobun aims to be a complete solution-in-a-box for building, updating, and shipping ultra fast, tiny, and cross-platform desktop applications written in Typescript. Under the hood it uses bun to execute the main process and to bundle webview typescript, and has native bindings written in zig.Secret of the Handbook: Const Generics (playground link) (h/t sirpepe) Cool StuffNavigator: sendBeacon() methodtoss/es-toolkit: A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodashexuanbo/di-wise: Lightweight and flexible dependency injection library for JavaScript and TypeScript, w/wo ECMAScript decoratorsClean Architecture in TypeScript | 弦而時習之 Lewis Campbell: NIH Is Far Cheaper Than The Wrong Dependency Learn Wardley MappingSponsored 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)

Jul 22, 2025 • 38min
Nuxt 4.0, Bun's Smarter Types, and Testing Type Completions | News | Ep 27
News of the week of July 14, 2025: Nuxt 4.0 is released along with an acquisition by Vercel, TSGO ships go-to-type definition support, and Bun ships smarter types. From the community: test type completions and benchmark instantiations with a testing package from Arktype, treating types as values with type-level maps, and dive a bit deeper into how type inference works. Chapters(00:00) - Introduction and Personal News
(06:02) - News: Nuxt 4.0 Release and NuxtLabs Joins Vercel
(09:57) - News: TSGO Adds Go-to-type Definition Support
(10:33) - News: Node 24.4.1 Security Patches
(12:12) - News: Bun 1.2.19 Ships Smarter Types
(13:21) - News: SvelteKit Now Supports Vite 7 and Rolldown
(13:52) - Community Highlight: oxlint + tsgolint = no slowdown!
(16:01) - Community Highlight: Type-safe Event Emitters by Artem
(17:13) - Community Highlight: Understanding TypeScript's Type Inference by SharpCoderBlog
(17:46) - Community Highlight: Testing Type Completions in TypeScript by Arktype
(19:17) - Community Highlight: Type-safe Persistence and Auto-theming in Svelte 5 by Puru Vijay
(19:59) - Community Highlight: Your GPU is a JavaScript Runtime by Iwo Plaza
(20:54) - Community Highlight: DHH Hates TypeScript
(22:15) - Community Highlight: Node and Deno Permissions Discussion by Dr. Axel
(25:29) - Community Highlight: Treating Types as Values with Type-level Maps by Gregros
(27:08) - Community Highlight: Return Types on Functions, Yay or Nay? by Kyle Shevlin
(28:15) - Community Highlight: Jake and Josh Interview on Software Engineering Daily Podcast
(28:34) - Cool Link: Dokploy is an OSS Alternative to Vercel, Netlify, and Heroku
(30:07) - Cool Link: Turning a Toy Into a Cyberdeck by Attoparsec
(30:52) - Cool Link: What's New in Vite by Evan You
(31:38) - Cool Link: Add Windows to Your App with winbox.js
(33:21) - Cool Link: Marginal Utility of Money by The Happy Philosopher
(37:42) - Post-credits Banter
Personal NewsSorry for the delay, Kamran just got back from vacation!Follow Kamran's trip on InstaNewsNuxt 4.0 is released and NuxtLabs joins Verceltypescript-go: Implement go-to-type-definition (PR #1405)Node.js 24.4.0 and 24.4.1 include high-severity CVE fixes (as well as 20.x, and 22.x release lines)Bun 1.2.19 is smarter when you are not using `dom` lib typesWhat’s new in Svelte: July 2025From the CommunityBoshen: oxlint + tsgolint = no slowdown! no-floating-promises completes 4.4k files in 3.2 seconds, in the vscode repo.Artem: rettime, a type-safe event emitterSharpCoderBlog: Deep Dive into TS Type InferenceArktype: Testing Type Completions with @ark/attest (bsky thread)Puru Vijay: Type-Safe Persistence and Auto-Theming in Svelte 5Iwo Plaza: Your GPU is a JavaScript runtime* (TypeGPU deep-dive) DHH: I hate TypeScriptDiscussion: Per-module or Per-dependency Permissions?Greg Rosenbaum: Treating types as values with type-level mapsKyle Shevlin: Return types on functions, yay or nay?Software Engineering Daily Podcast: TypeScript with Jake BaileyCool StuffTool: dokploy is an OSS alternative to Netlify Video: Turning a toy into a cyberdeckVideo: What's New in Vite Explained by Its Creator Library: Put Windows in Your Web App with WinBox.jsBlog: How Understanding the Marginal Utility of Money Will Make you Happier 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)

Jul 15, 2025 • 42min
TypeScript 5.9 Beta, Redonkulous Linting, and a Community Enum Syntax Proposal | News | Ep 26
News of the week of July 7, 2025: We dive into the TypeScript 5.9 beta, an experimental Go linter for TS/JS, plus make sure you upgrade your Node.js versions! From the community: a new enum syntax proposal in case JS doesn't get native enums, TSL brings faster type-aware linting, and trashh_dev asks TypeScript: WTF?Chapters(00:00) - Introduction and Personal News
(07:10) - News: TypeScript 5.9 Beta
(19:42) - News: tsgolint, an Experimental JS/TS Native Linter
(21:56) - PSA: Upgrade Your Node.js 20.x, 22.x, and 24.x Installations
(22:46) - Community Highlight: TSL, a New Type-aware Linter
(25:00) - Community Highlight: New typescript-eslint Homepage Preview
(26:04) - Community Highlight: New Enum Syntax Proposal by Naman
(29:53) - Community Highlight: WTF TypeScript by trashh_dev
(31:27) - Community Highlight: Migrating MorphKit to NativeScript with LLMs
(33:47) - Community Highlight: ariadne-ts Brings Rust-style Diagnostic Messages to TS
(35:20) - Cool Link: Get Current Weather in Your Terminal
(36:12) - Cool Link: JSON Repair
(37:09) - Cool Link: aws/jsii Lets You Consume TS Libs from Python, Java, and C#
(39:38) - Cool Link: Check Road Conditions in Colorado with cotrip.org
Personal NewsSorry for the delay, Kamran's on vacation!Follow Kamran's trip on InstaNewsAnnouncing TypeScript 5.9 Beta tsgolint, an experimental proof-of-concept typescript-go powered JS/TS linter written in GoPSA: High-severity security patches coming to Node.js on Patch Tuesday for 24.x, 22.x, and 20.x release lines!From the CommunityArnaud Barré: Introducing tsl, an extension of tsc for type-aware linting!Joshua Goldberg: New TypeScript Eslint homepageNaman: New enum syntax for TypeScript Chris Batiste (trashh_dev): WTF Typescript nStudio: Morphing Swift to 100% TypeScript with NativeScript + AIAriadne-ts v0.3.0: Beautiful Diagnostics in TypeScript (h/t Reddit)Cool Stuffaws/jsii allows code in any language to naturally interact with JavaScript classesCOtrip.org – get road conditions in Colorado`curl wttr.in` -- Weather from the terminaljosdejong/jsonrepair: Repair invalid JSON documents 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)