

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

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.

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

Mar 3, 2025 • 1h 8min
ORMed and Dangerous | Ep 7
This week Kamran and Erik discuss when ORMs are helpful... or hurtful. They cover trade-offs, the spectrum of abstraction, the value of escape hatches, and the options available to you in the TypeScript ecosystem.Week of February 17, 2025(05:54) - News: Ember 6.2 Released(07:16) - News: Deno 2.2 Releasednpm-check-updates packagePackage JSON Upgrade VS Code extensionhttps://github.com/vuki656/package-info.nvim for NeovimCommunity Highlights(16:48) - Community Highlights: UseTypeScript for Your Stored Procedures?!(17:20) - Community Highlights: Node API Compatibility Across Runtimes(17:58) - Community Highlight: Why Type Catalogs Can Be Better Than Unions(19:05) - Community Highlight: tapi.js Automatically Maps JSON to Strongly-Typed Classes(20:33) - Community Highlight: Standard Schema Hopes to Align TS Validator Libraries(21:34) - Community Highlight: 2ality: Read-only accessibility in TypeScript Deep Dive: TypeScript ORMs(22:56) - Deep Dive: TypeScript ORMs(24:21) - Deep Dive: Code-first or Database-first?(25:42) - Deep Dive: What Pain Do ORMs Solve?(27:21) - Deep Dive: When Should You Use an ORM?Martin Fowler's ORM Hate articlePrimeagen's Don't Use an ORM reaction video(30:02) - Deep Dive: To Use An ORM Or Not to Use an ORM?(31:47) - Deep Dive: SQL Builders vs. Abstracted ORMs(32:28) - Deep Dive: Do You Have An Escape Hatch?(33:36) - Deep Dive: Are ORMs A Symptom of Poor Data Architecture?(37:01) - Deep Dive: TypeScript ORM Landscape(37:26) - Deep Dive: Drizzle ORMFireship's Drizzle in 100 secondsWorks with Deno, Bun, Node.js(42:06) - Deep Dive: Prisma ORMWorks with Deno (unofficially) and Node.jsPrisma is being rewritten in TypeScript(46:42) - Deep Dive: MikroORM(49:10) - Tangent: Kamran and Erik Exchange War Stories(50:48) - Deep Dive: MikroORM Continued(51:44) - Deep Dive: TypeORM(53:06) - Deep Dive: ConvexDB(55:00) - Deep Dive: sequelize(55:48) - Deep Dive: Other AlternativesObjection.jsKnex.jsWaterlineBookshelfMongoose/Typegoose(56:33) - Deep Dive: Takeaways / tl;dlSecrets of the Handbook(57:47) - Branded / Nominal TypesTypeScript Playground Example – Nominal Typing400-comment GH issue on different ways to do nominal typing and trade-offsMichael Zalecki blog post on nominal types in TypeScriptBranded Types from Learning TypeScript by Josh GoldbergCreated a "sealed" method/class (example from Excalibur)Links(01:04:25) - Cool Stuff: Kodaps Academy on Drizzle Versus Prisma(01:05:10) - Cool Stuff: jet ValidatorsReference: https://blog.logrocket.com/best-typescript-orms/ Reference: https://www.sitepoint.com/javascript-typescript-orms/ Reference: https://www.timsanteford.com/posts/choosing-the-best-typescript-orm-for-your-project/ Sponsored by Excalibur.jsExcalibur.js is the friendly TypeScript game engine for making 2D web games. Use your TypeScript or JavaScrip...

Feb 24, 2025 • 1h 7min
The Sheer Joy of Publishing to JSR | Ep 6
This week Kamran and Erik unpack JSR, the new open alternative to the npm registry from the folks at Deno. They both published packages and discuss what JSR offers npm doesn't, when to use it, and how it works for both consumers and maintainers.(00:00) - The Sheer Joy of Publishing to JSR | Ep 6
(05:40) - News: TypeScript 5.8 RC
(07:45) - News: JSR Open Governance Board
(08:59) - News: ESLint Plugin for erasableSyntaxOnly
(11:03) - News: Windows Terminal 1.22 Released
(15:31) - News: Create React App is Officially Deprecated
(17:50) - News: Interop 2025
(19:59) - News: Prettier 3.5 Released With Better TS Support
(20:42) - Community Highlight: Wheel of Names TypeScript+React Project Tutorial
(21:05) - Community Highlight: Repository Pattern and Clean Architecture with TS and Prism
(21:34) - Community Highlight: Welch Canavan on the Sheer Joy of Publishing to JSR
(22:01) - Community Highlight: The Good Doctor is On a Roll
(22:47) - Community Highlight: Tips for Migrating Node.js Projects to Deno
(24:09) - Community Highlight: Sort Object Properties by Type ESLint Plugin
(24:30) - Community Highlight: Unloader and Unplugin for TypeScript and oxc
(25:21) - Community Highlight: dsbuild Bundler for Deno
(25:54) - Deep Dive: What is a Pirate's Favorite Registry?
(27:49) - Deep Dive: Differences Between npm and JSR
(30:38) - Deep Dive: JSR's Security-First Approach
(32:39) - Deep Dive: Consuming JSR Packages in the Browser
(35:26) - Deep Dive: Should You Publish to Both npm and JSR?
(36:31) - Deep Dive: Can You Publish Private Packages?
(38:16) - Deep Dive: JSR's TypeScript-First Approach
(42:04) - Deep Dive: Can You Tag Versions?
(44:51) - Deep Dive: No API Keys for Publishing
(46:58) - Deep Dive: Yanking or Unpublishing a Package
(48:16) - Deep Dive: Kamran's Experience Publishing to JSR
(53:16) - Deep Dive: Erik's Experience Publishing to JSR
(55:06) - Secrets of the Handbook: Decorators
(01:00:03) - Cool Stuff: Write Vanilla CSS in TypeScript
(01:00:32) - Cool Stuff: Signals in Lit
(01:01:35) - Cool Stuff: Train Your vim Muscle Memory
(01:01:52) - Cool Stuff: AreTheTypesWrong.com
(01:02:44) - Cool Stuff: Homura Ham's Hamster Maze Videos
(01:05:10) - Bonus: JSR ASMR (?!)
Week of February 10, 2025TypeScript 5.8 RC Released -- Notably, the checked return expressions was walked back 🥹 But, it includes require(esm) support.Deno announced the JSR Open Governance BoardWarn or emit lint errors if your TypeScript contains erasable syntax with Josh Goldberg's new ESLint pluginWindows Terminal 1.22 released with support for Sixels graphicsNode 20 got require(esm) support backported.PSA: Node 18 EOL is April 30, 2025React team officially deprecates Create React AppBrowser vendors met to discuss which APIs to implement between them at Interop 2025Prettier 3.5 released with better TS supportAstro 5.3 has better overall performance and Netlify supportCommunity HighlightsTutorial: FreeCodeCamp build a React and TypeScript Wheel of Names projectVideo: Repository pattern and clean architecture with TypeScript / Prism (h/t Alex Rusin)Blog post: The Sheer Joy of Publishing to JSR (h/t I. Welsch Canavan)Blog post: Deno on npm: specifiers vs transpiled services like esm.shVia The Good Dr. Axel RauschmayerBlog Post: extracting parts of composite types via `infer`Blog Post: A guide to tsconfig.json (Updated for TS 5.8)Blog Post: TypeDoc: testing code examples in comment docsBlog Post: Mapped TypesDiscussion: dayjay migrated all their Node.js projects to Deno. What did they learn?Tools: Nir Tamir created a TS ESLint rule for sorting object properties by typeTools: Kevin Deng is working on Unloader & UnpluginTools: A new Deno Bundler (dsbundle) Deep Dive: JSRJSR, an open source npm alternativeJSR's Provenance Attestation for verificationZero-config GitHub publishingDoesn't yet support private publish (but there's a workaround)No support in Artifactory yetJSR will warn you of slow typesKamran published ts-has-guards for guarding `Map.has` and related APIsErik published Excalibur's ECS core code for funJSR will score your packageNo scope squatting (or selling)!Secrets of the HandbookDecorators2ality's guide on decoratorsTC39 updates presentationoxc is working on support for modern and legacyLinksKat

Feb 17, 2025 • 1h 4min
Compilers, Runtimes, and Funtimes | Ep 5
This week Kamran and Erik try to dissect the complex landscape of JavaScript and TypeScript compilers, transpilers, interpreters, engines, and runtimes (oh my!). What are the tools, what are they used for, why is the world so complicated, and what should you care about as a TS developer?(04:55) - This Week in TypeScript: Node.js Corepack Issue Affects Users
(06:16) - This Week in TypeScript: Vite and Vitest Security Vulnerabilities
(07:18) - This Week in TypeScript: 2ality on Enum Patterns
(08:51) - This Week in TypeScript: 2ality's Tutorial on Publishing ESM Packages with TypeScript
(09:53) - This Week in TypeScript: Should We Move On to ESM-Only?
(13:13) - This Week in TypeScript: HTTP2 Support Across Node.js, Bun, and Deno... Or Lack Thereof
(14:14) - This Week in TypeScript: Nx Has Some New TypeScript Monorepo Guides
(14:38) - This Week in TypeScript: Zero to Mastery Shares a TypeScript Cheat Sheet
(15:09) - This Week in TypeScript: TS Comment Directives
(17:21) - Deep Dive: Compilers and Runtimes
(19:32) - Deep Dive: What's the Difference Between a Compiler and Transpiler?
(21:11) - Deep Dive: Why Do We Need a TypeScript Compiler?
(22:02) - Deep Dive: The TypeScript Compiler (TSC)
(23:38) - Deep Dive: What's an Interpreter?
(25:06) - Deep Dive: What's an Engine?
(27:52) - Deep Dive: Recap So Far
(28:31) - Deep Dive: Babel, the OG Transpiler
(29:23) - Deep Dive: What is SWC?
(31:12) - Deep Dive: Using the verbatimModuleSyntax TSConfig Flag
(32:35) - Deep Dive: What is esbuild?
(34:23) - Deep Dive: Okay, What's the Difference Between SWC and esbuild?
(35:51) - Deep Dive: So, What is oxc Then??
(37:03) - Deep Dive: Erik Says checker.ts is "Gigundous" (???)
(37:58) - Deep Dive: Wait, oxc Can Output Type Declarations?!
(39:34) - Deep Dive: Writing Your TypeScript So It Compiles Faster
(41:10) - Deep Dive: What Does deno compile Do?
(42:12) - Deep Dive: What Are The Different JS/TS Runtimes?
(43:43) - Deep Dive: What Differentiates Bun from Deno?
(45:26) - Deep Dive: Serverless JavaScript Runtimes (workerd, Vercel Edge)
(46:48) - Deep Dive: Writing Isomorphic JavaScript or TypeScript
(47:44) - Deep Dive: Who Will Stop This Madness?
(50:11) - Deep Dive: Should Microsoft "Fix" TSC?
(53:43) - Deep Dive: WHAT DOES ALL THIS MEAN?
(57:36) - Secrets of the Handbook: Named Tuple Values
(01:00:59) - Cool Stuff: Node ES Language Support Matrix
(01:01:46) - Cool Stuff: VSCode Pretty TS Error Extension
Week of February 3, 2025📌 PSA: Node.js LTS corepack registry key signing issue breaks people's CI/CD pipelines and npm/pnpm installations. If you are affected, check this issue out! It’s fixed now and backported to Node 20.18.3.📌 PSA: There was a remote code execution vulnerability in Vitest, and a Vite dev server vulnerability. Update to the latest patch versions!Community HighlightsBlog Post: TypeScript enums: use cases and alternatives (Axel Rauschmayer)Blog Post: Tutorial: publishing ESM-based npm packages with TypeScript (Axel Rauschmayer)Blog Post: Move on to ESM-only (Anthony Fu)Blog Post: Fetch and HTTP/2 support in Node.js, Bun and Deno (George Haidar)Learning: Nx is doing cool stuff for TS monorepo setups and has a whole series on itCheatsheet: Bookmark this TypeScript Cheat Sheet by Zero to Mastery (PDF version available)Book: Joshua Goldberg has a new Learning TypeScript book and shares a tip about TS comments Compilers and Runtimes Deep DiveThe JavaScript Runtime Environment (Jamie Uttariello)Wikipedia: ECMAScript EnginesV8's interpreter, IgnitionHermes engine for React NativeTSC, the official Microsoft TypeScript compilerSWC, a Rust-based compiler for JavaScript and TypeScriptesbuild, a Go-based compiler for JavaScript and TypeScriptoxc, a (new) Rust-based compiler by the creators of ViteDeno compile for creating binary executablesBun runtime, a drop-in replacement for Nodeworkerd runtime by CloudflareVercel Edge RuntimeA list of WebAssembly (WASM) runtimesWinterTC, a committee for unifying server backend runtime APIsLinksTypeScript 4.0's labeled tuple elements (playground link)Wondering what version of Node supports what ES features and syntax? https://node.green/Replace those ugly TS errors in VSCode with something more prettySponsored 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
Kamran Ayub - Host
Erik Onarheim - Host

Feb 10, 2025 • 54min
You Say Vite, I Say Vite | Ep 4
This week Erik and Kamran talk about Vite (Vight? Veet?), what it's good for, how it works, and its status as the "go-to" tool for frontend tooling.(04:21) - This Week in TypeScript: TS 5.8 Beta
(11:02) - This Week in TypeScript: Ruck 9 Released
(12:39) - This Week in TypeScript: Type Stripping in the Browser
(14:45) - Community Highlight: Deno and Qwik Video
(15:52) - Community Highlight: Zig, TypeScript, and WASM by David Bushell
(16:49) - New Library Watch: tsc-extra
(17:24) - New Library Watch: typemap and typebox
(18:23) - Vite Overview
(22:01) - Vite: Getting Started
(22:53) - Vite: build and preview
(23:34) - Vite: How Does It Work?
(26:57) - Vite: Support for Libraries and Frameworks
(28:04) - Vite 6.0: Environments API
(30:27) - Vite 6.0: Support for Additional HTML Asset References
(31:28) - Vite: Testing with Vitest
(32:48) - Vite Gripes and Gotchas
(33:52) - Vite Gripes: Dev and Prod Build Inconsistencies
(35:14) - Vite Gotcha: Forgetting to Set a URL Base
(35:49) - Vite Gotcha: Targeting Legacy Browsers
(38:30) - Vite Gripes: npm linking
(41:43) - Vite's Future: What Are We Excited About?
(44:12) - Secrets of the Handbook: Type Guards and Predicates
(47:27) - Cool Stuff: Write Typesafe Emails with React.email
(49:51) - Cool Yet Questionable Stuff: Custom Type Errors When Working With Generics
Week of January 27News: TS 5.8 Beta ReleasedNews: Ruck 9, a Deno web frameworkNews: Guy Bedford releases es-module-shims@2.0, allowing type stripping in the browserCommunity: Qwik and Deno (📸 Video)Community: Benchmarking Zig, TS and WASM by David Bushell (✍️ Blog Post)New Librariestsc-extraStatic analysis tool, type checking only, no code generation or compilingUseful for documentation or lower-level TS toolsTypemap is like a Zod alternative, built for TypeBox“It offers a common TypeScript syntax for type construction, a runtime compiler for high-performance validation and type translation from one library to another.” Vite Deep DiveHomepageEvan You's State of Vite 2023 Keynote (📸 Video)Why Use Vite?Vite 6 UpdatesSapphi-Red's Increasing Vite's Potential With the Environment API (✍️ Blog Post)Vite's browser compatibilityVite's future, bundling with RolldownLinksHandbook: Type Guards and PredicatesSend typesafe emails with React.emailBetter string literal errors (📸 Video)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
Kamran Ayub - Host
Erik Onarheim - Host


