JavaScript Jabber

Charles M Wood

Stay current on JavaScript, Node, and Front-End development. Learn from experts in programming, careers, and technology every week. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

  1. Running Doom in TypeScript’s Type System with Dimitri Mitropoulos - JSJ 684

    PRED 2 D.

    Running Doom in TypeScript’s Type System with Dimitri Mitropoulos - JSJ 684

    What if I told you someone managed to run Doom inside TypeScript’s type system? Sounds insane, right? That’s exactly what our guest Dimitri Mitropoulos did—and in this episode, we dive deep into the how, the why, and the mind-bending implications of this ambitious project. From type-level programming to the philosophical limits of Turing completeness, this is an episode that pushes the boundaries of what you thought was possible in JavaScript. We talk about how the TypeScript type system evolved to become Turing-complete, how Dimitri pulled off this seemingly impossible feat, and why “Doom-complete” might just be the new gold standard for computational capability. Along the way, we touch on functional programming, generics, recursion, and even some Lambda Calculus. It’s part computer science theory, part coding madness, and 100% geeky goodness. Episode Highlights [3:05] – Dimitri explains how a simple thought experiment turned into a year-and-a-half-long obsession [8:40] – The origins and significance of Turing completeness in type systems [14:15] – Why running Doom in TypeScript is more about proving limits than just showing off [19:55] – What it means to run programs inside the type system vs. TypeScript code itself [27:10] – ASCII art as output, functional recursion for game state, and hover-over frames in your editor [35:30] – How ignorance, determination, and obsession fueled the completion of the project [45:20] – Personal insights: balancing family, burnout, and passion while chasing an impossible dream Links & Resources Dimitri Mitropoulos Michigan TypeScript YouTube Channel – Dimitri's channel featuring the project Type Challenges by Anthony Fu – Advanced TypeScript exercises SquiggleConf – The TypeScript-focused conference Dimitri co-founded Josh Goldberg – TypeScript expert and co-organizer of SquiggleConf Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 18 min
  2. Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian -JSJ 683

    23. 7.

    Preact, Performance, and the Future of Lightweight Frontends with Ryan Christian -JSJ 683

    In this episode of JavaScript Jabber, we sit down with Ryan Christian, a core maintainer of Preact, to talk all things lightweight, performant, and practical in the JavaScript world. If you’ve ever wondered what makes Preact tick, why it continues to gain traction, and how it compares to the heavyweight champ React—this episode is for you. We get into the nitty-gritty of what separates Preact from React, not just in size but in philosophy. Ryan sheds light on how Preact is engineered for performance, why it's not just a “React clone,” and how its compatibility layer makes it easy to drop into existing projects. Plus, we explore signals, class components, and what the upcoming Preact v11 has in store. Episode Highlights[1:23] - Meet Ryan Christian: Preact core maintainer and open-source champion[4:10] - What is Preact, and how does it stack up against React?[10:15] - Preact’s tiny footprint and why size still matters[14:47] - Widgets, adoption, and why Preact powers ~6% of major sites[20:01] - Understanding Preact’s compatibility layer (PreactCompat)[25:40] - Hooks, signals, and modularity: build what you need, nothing more[31:10] - Why Preact won’t follow React into full-stack territory[37:22] - Server components, suspense, and what Ryan recommends instead[43:35] - Frameworks that pair well with Preact: Astro, Fresh, and Remix[47:55] - Sneak peek at Preact v11 and why it sticks with “classic” React experience🔗 Links & ResourcesPreact Official WebsiteAstroFresh by DenoRemixJason Miller’s VTalk on Signals (referenced)Google CrUX Report – for framework usage stats Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 7 min
  3. How Holepunch Is Redefining Peer-to-Peer Apps with Bare.js — A New Era for JavaScript Developers -JSJ 681

    24. 6.

    How Holepunch Is Redefining Peer-to-Peer Apps with Bare.js — A New Era for JavaScript Developers -JSJ 681

    In this episode, we sit down with Mathias Madsen, CEO of Holepunch, and take a wild ride through the cutting edge of peer-to-peer JavaScript development. Mathias shares his journey from accidentally discovering JavaScript in college to becoming a prolific contributor with over 1,500 open source modules. His passion? Building decentralized, peer-to-peer systems where JavaScript isn’t just for the browser—it powers the entire stack. We dive deep into how Holepunch is reimagining application distribution with their Pear system —essentially turning peer-to-peer into a first-class citizen for distributing full applications, not just files. No hosting, no servers — just apps shared directly, BitTorrent-style. And because packaging and distributing Node-based apps can be painfully complex, they took things a step further by building a new runtime: Bare.js Bare.js is refreshingly "bare": it strips away the heavy, opinionated APIs bundled into Node or Deno, leaving just the JavaScript core and a powerful module system. What’s revolutionary here is Bare's ability to run the same codebase across desktop, mobile, and even tiny embedded devices—swapping out engines like V8, JavaScriptCore, or JerryScript depending on the platform's needs. This allows Mathias' team to write backend logic once, share it across all platforms, and iterate at lightning speed. Key takeaways: -Peer-to-peer can go far beyond media sharing — it's being used for full app distribution. -Bare.js decouples JavaScript from specific platforms, creating a universal backend that just works anywhere. -Modular design isn't just a philosophy — it's the secret to Holepunch’s rapid development pace. -The combination of React Native for UI and Bare.js for backend creates an insanely productive development pipeline, fully cross-platform. If you’re into JavaScript, peer-to-peer tech, or just love hearing about developers breaking the mold, this one’s for you. About the Guest Mathias is the CEO of Holepunch (https://holepunch.to/). He brings his passion for open-source software, and deep experience in the area, having  published more than 1000 modules to npm, the Node.js package manager, totaling billions of downloads every month. Mathias Buus is a self taught Javascript hacker from Copenhagen. He works full time on open source projects and has been working with Node.js since the 0.2 days. Mathias likes to work with P2P and distributed systems and is the author of more than 550 modules on npm, including some of the most popular ones for working with streams. In addition he has spoken about mad science projects at various conferences around the world. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 6 min
  4. Migrating a Legacy JavaScript Codebase to TypeScript - JSJ 680

    5. 6.

    Migrating a Legacy JavaScript Codebase to TypeScript - JSJ 680

    In this episode, Dan and I (Steve) dove deep into what turned out to be a surprisingly complex, yet incredibly insightful topic: gradually migrating a massive legacy JavaScript project over to TypeScript. We're talking about nearly 1,000 JS files, 70,000+ lines of code, and years of developer history—all transitioning carefully to a typed, modern future. Dan walked us through how he started by setting up the project for success before converting even one file—getting CI/CD ready, setting up tsconfig.json, sorting out test dependencies, dealing with mock leaks, and even grappling with quirks between VS Code and WebStorm debugging. We talked tools (like TS-ESLint, concurrently, and ts-node), why strict typing actually uncovered real bugs (and made the code better!), and why it’s crucial not to touch any .js files until your TypeScript setup is rock solid. Key Takeaways:Gradual migration is 100% possible—and often better—than ripping the bandaid off.TypeScript can and will catch bugs hiding in your JavaScript. Be prepared!Use VS Code extensions or TS-Node to support your devs’ tooling preferences.Don't underestimate the setup phase—it’s the foundation of long-term success.Start small: Dan's team converted just one file at first to test the whole pipeline.If you’re sitting on a legacy JS project and dreaming of TypeScript, this episode is your blueprint—and your warning sign. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 26 min
  5. TypeScript, Security, and Type Juggling with Ariel Shulman & Liran Tal - JSJ 679

    29. 5.

    TypeScript, Security, and Type Juggling with Ariel Shulman & Liran Tal - JSJ 679

    In this episode, we dove headfirst into the swirling waters of TypeScript, its real-world use cases, and where it starts to fall short—especially when it comes to security. Joining us from sunny Tel Aviv (and a slightly cooler Portland), we had the brilliant Ariel Shulman and security advocate Liran Tal bring the heat on everything from type safety to runtime vulnerabilities. We started off with a friendly debate: Has TypeScript really taken over the world? Our verdict? Pretty much. Whether it’s starter projects, enterprise codebases, or AI-generated snippets, TypeScript has become the de facto standard. But as we quickly found out, that doesn’t mean it’s perfect. Key Takeaways: -TypeScript ≠ Security We tend to trust TypeScript a bit too much. It’s a build-time tool, not a runtime enforcer. As Liran pointed out, “TypeScript is not a security tool,” and treating it like one leads to dangerous assumptions. -Type Juggling is Real (and Sneaky) We explored how something as innocent as using as string on request data can open the door to vulnerabilities like HTTP parameter pollution and prototype pollution. Just because your IDE is happy doesn’t mean your runtime is. -Enter Zod – Runtime Type Checking to the Rescue? Zod got some love for bridging the dev-time/runtime gap by validating data on the fly and inferring TypeScript types. But even Zod isn’t foolproof. For example, unless you're using .strict(), extra fields can sneak past your validations, leading to mass assignment bugs. -Common Developer Fallacies We discussed the misplaced confidence developers have in things like code coverage and TypeScript alone. One of the big takeaways: defense in depth matters. Just like testing, layering your security practices (like using Zod, type guards, and proper sanitization) is key. -TypeScript Best Practices Are Evolving From discriminated unions to avoiding any, from using Maps over plain objects to prevent prototype pollution—TypeScript developers are adapting. And tools like modern Node.js now support type stripping, which makes working with .ts files at runtime a bit easier. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 33 min
  6. Building Agentic AI Workflows with Matthew Henage - JSJ 678

    22. 5.

    Building Agentic AI Workflows with Matthew Henage - JSJ 678

    In this episode, we sat down with full-stack developer and AI innovator Matthew Henage, creator of WAOS.ai (Web App Operating System) and the incredible storytelling platform SpeakMagic.ai. This conversation took us deep into the world of agentic AI, low-code app building, and the future of intelligent workflows. We kicked things off with Matthew sharing how he’s been riding the AI wave since GPT-3.5 blew his mind. His platform WoWs is all about making it easy for developers to build powerful web apps with embedded AI workflows — think of it like Zapier meets ChatGPT, but with agents working together instead of API chains. One of the most eye-opening parts of our chat was learning about agent swarms — essentially teams of specialized AI agents that collaborate to perform complex tasks. Instead of relying on one giant AI brain to do everything, you create smaller, purpose-built AIs that handle specific steps in a workflow. It’s scalable, smarter, and kind of like assembling your dream dev team… but all made of code. Matthew’s Speak Magic project is a jaw-dropper. It uses a swarm of over 40 agents to turn a single story idea into a fully animated, two-minute video — complete with scenes, scripts, character animations, music, and more. It’s AI storytelling on steroids. We also talked a lot about: Best practices for building reliable AI workflowsThe importance of keeping context windows small (under 4,000 tokens works best!)How prompt engineering is becoming the new programmingUsing AI for vibe coding (yes, that’s a thing) and rapid prototypingThe tradeoffs between using traditional programming vs. letting AI handle logicEthical considerations and how to handle memory and privacy in long-running user interactionsCheck out Matthew’s work at WAOS.ai and speakmagic.ai — and as always, stay curious and keep building! Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 4 min
  7. Reinventing Web Development with Brisa: A Conversation with Aral Roca - JSJ 677

    15. 5.

    Reinventing Web Development with Brisa: A Conversation with Aral Roca - JSJ 677

    In this week’s episode, it’s just me — Charles Max Wood — and I’m joined by the incredibly sharp and open-source-loving Aral Roca, direct from Barcelona! Aral’s the creator of Brisa, a new full-stack web framework that flips the script on how we build modern web apps. If you thought the "another day, another framework" meme was played out... well, Brisa might just change your mind. Key Takeaways: -Brisa’s Big Idea: It's designed to let you build web apps with minimal or zero JavaScript on the client side. Think HTML streaming, server actions, and components that render server-side first, but can gradually hydrate on the client. -Server-first FTW: Aral walks us through how Brisa handles server actions — even capturing click and scroll events on the server — using ideas inspired by HTMX, LiveView, and server components from frameworks like Next.js. -Tiny and Mighty: The whole framework is incredibly lightweight. Web components come in at just ~3 KB, and the built-in i18n system is under 1 KB! -From Idea to Reality: Aral started Brisa to scratch his own itch — building side projects and blogs without bloated front-end code. But now, others are using it too (yes, even in production!), including one travel agency that's gone all-in. -Multi-platform Future: Brisa has adapters in the works for Vercel, Node, and Deno — plus integration with Tauri for building native Android, iOS, and desktop apps from the same codebase. -What's Coming: Roadmap goals include improved hot reloads, more adapters, transitions, lazy-loaded components, and a better playground for developers to tinker with. Oh, and yes — Aral does parkour. For real. This episode is packed with deep technical insight and exciting potential for a new way to build web apps — especially for devs who love fast performance, server-rendering, and clean architecture. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

    1 h 5 min

O relácii

Stay current on JavaScript, Node, and Front-End development. Learn from experts in programming, careers, and technology every week. Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Viac od: DevChat.tv

Mohlo by sa vám páčiť