<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[This Week in JavaScript]]></title><description><![CDATA[Get your weekly JavaScript news in 4 minutes or less.]]></description><link>https://thisweekinjavascript.com</link><image><url>https://substackcdn.com/image/fetch/$s_!W4YS!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe93ef95f-f9d5-4822-9ed3-86917a8ac6e4_1280x1280.png</url><title>This Week in JavaScript</title><link>https://thisweekinjavascript.com</link></image><generator>Substack</generator><lastBuildDate>Sat, 04 Apr 2026 08:44:42 GMT</lastBuildDate><atom:link href="https://thisweekinjavascript.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[This Week In JavaScript]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thisweekinjavascript@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thisweekinjavascript@substack.com]]></itunes:email><itunes:name><![CDATA[Jam.dev]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jam.dev]]></itunes:author><googleplay:owner><![CDATA[thisweekinjavascript@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thisweekinjavascript@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jam.dev]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[TypeScript 5.9 is here, GLM 4.5 is EPIC for Programming, Node.js 22.18 LTS, and more - Week #46]]></title><description><![CDATA[Today, we'll be talking about TypeScript 5.9, GLM 4.5 and it's coding capabilities, and the Node.js 22.18 LTS release, along with some amazing developer tools!]]></description><link>https://thisweekinjavascript.com/p/typescript-59-is-here-glm-45-is-epic</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/typescript-59-is-here-glm-45-is-epic</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 03 Aug 2025 17:01:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/032ed2f5-6edf-4b85-96d8-954cbb76415a_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, TypeScript 5.9 streamlines developer workflows with minimal configurations and deferred imports, ZhipuAI's GLM 4.5 showcases incredible coding capabilities including building Space Invaders games, and Node.js 22.18 LTS solidifies production reliability while Node.js v24 pushes performance boundaries.</p><p>Plus, we've got some powerful new + updated tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a32f832664d6b8d31e1667f56&quot;,&quot;title&quot;:&quot;TypeScript 5.9 is here, GLM 4.5 is EPIC for Programming, Node.js 22.18 LTS, and more EP46 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/1T0rJe5FRnaRrZ4LZi9wIU&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/1T0rJe5FRnaRrZ4LZi9wIU" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>TypeScript 5.9: Developer Experience Gets Better</strong></h3><p><strong><a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/">TypeScript 5.9</a></strong> delivers practical enhancements that directly address common developer pain points, making the development experience smoother and more productive. This release focuses on reducing setup complexity, improving IDE interactions, and optimizing performance for real-world applications.</p><h4><strong>What's New</strong></h4><ul><li><p><strong>Simplified Setup Removes Onboarding Friction: </strong>The redesigned tsc --init generates clean, prescriptive configurations instead of overwhelming comment-heavy files. New developers get modern defaults like "module": "nodenext" and "target": "esnext" without decision paralysis, while experienced teams benefit from stricter type-checking options like noUncheckedIndexedAccess being prominently featured.</p></li><li><p><strong>Better Performance Control with Deferred Imports: </strong>The new import defer syntax gives developers granular control over when modules execute. Instead of all imports running immediately, you can defer execution until actually needed with import defer * as a feature from "./module.js". This is particularly valuable for large applications where startup performance matters.</p></li><li><p><strong>Enhanced IDE Experience:</strong> Expandable hovers transform how developers explore type information. The new + and - buttons in tooltips let you drill down into complex types without leaving your current context. Combined with configurable hover lengths, this means less time jumping between files to understand type definitions and more time actually coding.</p></li><li><p><strong>Production-Ready Module Resolution:</strong> The <strong>--module node20</strong> option provides a stable, predictable alternative to nodenext specifically modeling Node.js v20 behavior. Unlike the potentially shifting nodenext, this gives teams a fixed target with consistent --target es2023 compilation, crucial for enterprise applications requiring predictable deployment behavior.</p></li><li><p><strong>Faster Compilation Where It Counts: </strong>Performance optimizations targeting complex libraries like Zod and tRPC address real-world bottlenecks. Cached instantiations and optimized file checks translate to noticeably faster compilation times, especially valuable for large codebases where build performance directly impacts developer productivity.</p></li></ul><p>TypeScript 5.9 removes common friction points while adding features that enhance both immediate productivity and long-term maintainability, exactly what developers need for modern JavaScript projects.</p><div><hr></div><h3><strong>GLM 4.5 is a Fullstack POWERHOUSE</strong></h3><p><strong><a href="https://z.ai/blog/glm-4.5">ZhipuAI's GLM 4.5</a></strong> represents a breakthrough in open-source AI, specifically engineered for fullstack development automation and complex agentic workflows that rival proprietary models in coding capabilities.</p><h4><strong>Key Innovations</strong></h4><ul><li><p><strong>Massive Scale with Efficiency: </strong>GLM 4.5 features 355 billion total parameters with 32 billion active parameters using Mixture of Experts architecture. This design delivers exceptional performance while maintaining computational efficiency for real-world development tasks.</p></li><li><p><strong>Hybrid Reasoning Modes:</strong> The model provides both thinking mode for complex reasoning and tool usage, and non-thinking mode for immediate responses. This dual approach ensures optimal performance whether you're debugging complex logic or need quick code suggestions.</p></li><li><p><strong>Fullstack Development Excellence: </strong>GLM 4.5 excels in both frontend and backend development, making it powerful for building modern web applications. Users can create entire websites with just a few words, then effortlessly add features through multi-turn dialogue, making the coding process smooth and enjoyable.</p></li><li><p><strong>Interactive Game Development:</strong> The model demonstrates remarkable capabilities by building complete JavaScript games like Space Invaders through natural language interaction. This showcases its understanding of game mechanics, canvas manipulation, event handling, and complex interactive programming patterns that would typically require extensive coding knowledge.</p></li><li><p><strong>LLM Whisperer Integration:</strong> GLM 4.5's advanced prompt engineering capabilities make it exceptionally skilled at communicating with other AI models, acting as an intelligent intermediary that can optimize prompts, chain multiple AI interactions, and orchestrate complex multi-model workflows for enhanced development automation.</p></li><li><p><strong>Superior Coding Benchmarks:</strong> With a 64.2% score on SWE-bench Verified and 90.6% tool-use success rate, GLM 4.5 outperforms many leading models in real-world coding scenarios, demonstrating its practical utility for professional development workflows.</p></li></ul><p>GLM 4.5 transforms fullstack development by enabling developers to build complete applications through natural language interaction, from rapid prototyping to production deployment, all while maintaining the flexibility of open-source accessibility.</p><div><hr></div><h3><strong>Node.js 22.18 LTS: Production-Ready Stability</strong></h3><p><strong><a href="https://nodejs.org/en/blog/release/v22.18.0">Node.js v22.18.0</a></strong> establishes the new Long-Term Support baseline with critical performance improvements, security patches, and stability enhancements that make it the recommended runtime for enterprise applications.</p><h4><strong>What's New</strong></h4><ul><li><p><strong>Long-Term Support Baseline:</strong> As the first LTS release of the Node.js 22.x line, this version provides the stability and predictable update cycle that production applications require. Enterprise teams can now confidently adopt Node.js 22 knowing they'll receive security updates and critical fixes through April 2027.</p></li><li><p><strong>Enhanced Performance: </strong>This release includes significant V8 engine updates, improved garbage collection performance, and optimized module loading that translates to faster startup times and better runtime performance for both server and tooling applications.</p></li><li><p><strong>Security Hardening: </strong>Multiple security vulnerabilities have been addressed, including improvements to the permission model, enhanced cryptographic operations, and strengthened HTTP/2 implementation for more secure production deployments.</p></li><li><p><strong>Developer Experience Improvements:</strong> Enhanced debugging capabilities, improved stack traces, and better error messages make development and production troubleshooting more efficient and developer-friendly.</p></li><li><p><strong>Node.js v24 on the Horizon:</strong> While Node.js 22.18 LTS focuses on production stability, the upcoming Node.js v24 (currently in development) promises even more dramatic performance improvements with the latest V8 engine, experimental features like the Permission Model refinements, and enhanced ECMAScript modules support that will further modernize the JavaScript runtime ecosystem.</p></li></ul><p>Node.js 22.18 LTS represents the mature, battle-tested foundation that production applications need, while Node.js v24 development continues pushing the boundaries of JavaScript runtime performance and capabilities.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><ul><li><p><strong><a href="https://nodered.org/">Node-RED</a></strong> continues evolving its visual programming capabilities for IoT and automation workflows, providing developers with an intuitive drag-and-drop interface for connecting hardware devices, APIs, and online services into powerful automation systems without requiring extensive coding expertise.</p></li><li><p><strong><a href="https://ionicframework.com/">Ionic 8.7</a> </strong>enhances cross-platform mobile development with improved performance optimizations, enhanced UI components, and better integration with modern web standards, making it easier to build native-quality apps using familiar web technologies and deployment pipelines.</p></li><li><p><strong><a href="https://storybook.js.org/">Storybook 9.1</a> </strong>advances component-driven development with enhanced testing capabilities, improved performance, and better integration with modern frontend frameworks, streamlining the development and documentation of UI component libraries for design systems.</p></li><li><p><strong><a href="https://ghost.org/">Ghost 6.0</a></strong> revolutionizes content management with headless CMS capabilities, advanced membership features, and enhanced developer APIs, providing creators and developers with powerful tools for building modern publishing platforms and content-driven applications.</p></li><li><p><strong><a href="https://github.com/vadimdemedes/ink">Ink 6.1</a></strong> elevates CLI development by bringing React's component model to terminal applications, enabling developers to build sophisticated command-line interfaces using familiar React patterns, hooks, and modern JavaScript tooling workflows.</p></li></ul><div><hr></div><p>And that's it for the forty-sixth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[GitHub Spark builds EPIC apps in minutes, Qwen3-Coder is INSANE, EPIC JavaScript utility library, and more - Week #45]]></title><description><![CDATA[Today, we'll be talking about GitHub Spark, that lets you build apps in just 20 minutes, Qwen3-Coder's insane coding capabilities, and a new JavaScript utility library.]]></description><link>https://thisweekinjavascript.com/p/github-spark-builds-epic-apps-in</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/github-spark-builds-epic-apps-in</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 27 Jul 2025 17:02:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/03adfece-dbba-44f3-83e1-7aaf9050cda8_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, GitHub Spark brings true prompt to app coding at scale, Alibaba pushes boundaries with Qwen3-Coder for intelligent automation, and es-toolkit resets the standard for JavaScript utilities.<br><br>Plus, we&#8217;ve got some powerful new + updated tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a6c72f67581f2a7d91cf28132&quot;,&quot;title&quot;:&quot;GitHub Spark builds apps in 20 MINUTES, Qwen3-Coder is INSANE, EPIC JavaScript utility library, and more EP45 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/1WVSrVD3ubeD48mHc7aDoS&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/1WVSrVD3ubeD48mHc7aDoS" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>GitHub Spark builds Production-Ready Apps in MINUTES</strong></h3><p><strong><a href="https://githubnext.com/projects/github-spark">GitHub Spark</a></strong>, currently in public preview, is an AI-powered, comprehensive platform that enables developers to create, refine, and deploy intelligent full-stack applications using natural language, visual controls, or code.</p><h4><strong>What&#8217;s New</strong></h4><ul><li><p><strong>Full Power, No Setup:</strong> Start from a single prompt, Spark scaffolds your frontend and backend using trusted frameworks like React and TypeScript. No manual configuration, servers, or SDK installs needed.</p></li><li><p><strong>Live Preview and Instant Deploy:</strong> Applications can be instantly visualized with Live Preview and deployed to production with a single click. GitHub authentication and managed hosting are provided by default, enabling real time updates via straightforward prompts.</p></li><li><p><strong>Integrated GitHub Tools:</strong>Each Spark application operates as an independent project, complete with automated GitHub Actions, Dependabot for security, and integrated features for code reviews, collaborative work, and version control.</p></li><li><p><strong>AI Feature Integration:</strong> Integrate LLM capabilities (chatbots, content generation, automation) from leading providers (OpenAI, Meta, DeepSeek, xAI) effortlessly, requiring no API keys.</p></li><li><p><strong>Copilot Harmony:</strong> Seamless integration with Copilot is achievable for all coding, whether through VS Code or by employing Copilot Agents for advanced automations, all within the robust Spark environment.</p></li><li><p><strong>Flexibility: </strong>Spark provides adaptable solutions for diverse applications, encompassing prototypes, SaaS offerings, workflow automation, and utility applications. It integrates effortlessly with established processes and is appropriate for both collaborative teams and individual developers.</p></li></ul><p>Developers can iterate straight from idea to live application while staying anchored in the GitHub ecosystem.Spark facilitates rapid prototyping and delivery, enabling developers to ship smarter, faster, and with less friction. It allows for seamless iteration from concept to live application, all while remaining integrated within the GitHub ecosystem.</p><div><hr></div><h3><strong>Alibaba&#8217;s Qwen3-Coder is INSANE</strong></h3><p><strong><a href="https://www.alibabacloud.com/help/en/model-studio/qwen-coder">Alibaba&#8217;s Qwen3-Coder-480B-A35B-Instruct</a></strong> is a cutting-edge, open source code model and agentic platform, built for real development automation and cross-codebase reasoning.Alibaba's cutting-edge open-source code model, Qwen3-Coder, is designed to enhance the capabilities of software engineers. It offers advanced automation, the ability to reason across different codebases, and seamless integration with various developer tools.</p><h4><strong>Key Innovations</strong></h4><ul><li><p><strong>Agentic Workflow Engine:</strong> Outperforms earlier models at handling complex, multistep software engineering tasks.Generate code, refactor large projects, or execute procedural workflows, all via prompt or CLI.</p></li><li><p><strong>480B Parameters (35B Active):</strong> Leveraging Mixture of Experts, it manages large, diverse tasks with high efficiency, and supports native 256K-token context (scalable to 1M for ultra-large codebases).</p></li><li><p><strong>Trained for Engineering:</strong> Qwen3-Coder learns from 7.5T tokens (70% code), using advanced reinforcement learning to develop true coding intuition and context awareness,ideal for repository wide analysis.</p></li><li><p><strong>Command-Line and API Ready:</strong> Qwen provides developers with excellent integration possibilities, including command-line interface (CLI) and API access, as well as compatibility with IDEs and CI/CD pipelines.</p></li><li><p><strong>Easy Setup and Broad Availability:</strong> Available in multiple variants on GitHub, Hugging Face, and ModelScope. Installing or using Qwen Code is straightforward for developers familiar with modern JavaScript tooling (Node.js v20+ supported for CLI workflows)</p></li><li><p><strong>Broad Multilingual Coding Support:</strong> Handles 358 programming languages, making it suitable for diverse software stacks, teams, and global projects</p></li><li><p><strong>Open Source and Community Driven:</strong> Qwen3-Coder is fully open source, inviting contributions and adoption by teams and enterprises seeking transparency and state-of-the-art AI coding capabilities.</p></li></ul><p>Qwen3-Coder is an open-source artificial intelligence coding solution developed for software engineers encountering intricate engineering automation challenges. It demonstrates proficiency in comprehensive code analysis, refactoring, and tool integration, thereby establishing itself as an essential collaborator in surmounting complex programming obstacles.</p><div><hr></div><h3><strong>Modern Utilities for the Fast JavaScript Stack</strong></h3><p><strong><a href="https://es-toolkit.dev/">es-toolkit</a></strong> is a state-of-the-art, high-performance JavaScript utility library designed to help developers build, iterate, and optimize codebases with maximum efficiency and minimal overhead.</p><h4><strong>What&#8217;s New</strong></h4><ul><li><p><strong>Efficient by Design</strong>: Delivers better performance than legacy libraries and reduces JavaScript bundle size by up to 97%. Every delay, chunk, sum, pick, and more is implemented for speed and modularity, perfectly suited for modern, performance-focused projects.</p></li><li><p><strong>Seamless Migration: </strong>Includes a Lodash compatibility layer (es-toolkit/compat) for effortless migration. Replace Lodash in existing projects without rewriting code, enabling quick transitions to more modern, lightweight tooling.</p></li><li><p><strong>TypeScript Excellence</strong>: Features strong, built-in type annotations and advanced type guards like isNotNil, enabling safer, predictable development with robust TypeScript integration.</p></li><li><p><strong>Battle-Tested Reliability</strong>: 100% test coverage ensures every function is production-ready from day one. es-toolkit is trusted by popular open-source projects including Storybook, Recharts, ink, and CKEditor.</p></li><li><p><strong>Universal Compatibility:</strong> Runs anywhere JavaScript does Node.js, browsers, Bun, Deno offering true universality without tradeoffs.</p></li></ul><ul><li><p><strong>Developer Tooling Ecosystem:</strong> Community has already built migration tools including es-toolkit-webpack-plugin for Webpack 5 and vite-plugin-es-toolkit for Vite, showing strong ecosystem support for production adoption.</p></li></ul><p>es-toolkit empowers developers to simplify code, accelerate development, and maintain high standards of reliability and performance across any JavaScript environment.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><ul><li><p><strong><a href="https://docs.swmansion.com/react-native-reanimated/">React Native Reanimated 4.0</a></strong> ushers in a major rearchitecture that delivers lightning-fast, silky-smooth animations for mobile apps. It&#8217;s fully compatible with the latest React Native releases, making it easier than ever to craft complex layout animations and even bring these capabilities to the web.</p></li><li><p><strong><a href="https://oxc.rs/docs/guide/usage/linter">Oxlint 1.8</a></strong> stands out as a new generation, high-speed linter developed in Rust, offering rapid one-pass linting for JavaScript and TypeScript. It exceeds ESLint in performance and integrates easily into development pipelines.</p></li><li><p><strong><a href="https://jasmine.github.io/">Jasmine 5.9</a></strong> continues to be a trusted staple for JavaScript testing, elevating reliability for both CI/CD workflows and browser or Node.js environments. With Jasmine, teams can feel confident about rigorous automated testing.</p></li><li><p><strong><a href="https://www.npmjs.com/package/npq">npq</a> </strong>further enhances your package management workflow by automatically scanning for vulnerabilities with Snyk before any npm package is installed. This proactive security ensures that only safe dependencies are added to your project, reducing the risk of introducing known issues.</p></li><li><p><strong><a href="https://apexcharts.com/">ApexCharts 5.3</a> </strong>equips developers with powerful tools to create interactive, visually appealing JavaScript data charts for the web. The latest version adds features that streamline both customization and responsiveness, enabling sophisticated data visualizations with less effort.</p></li><li><p><strong><a href="https://vue-multiselect.js.org/">vue-multiselect 3.3</a></strong> is purpose-built for Vue 3 applications, delivering a robust and flexible select and tagging component. It supports advanced data structures, complex selection logic, and asynchronous loading for large datasets.</p></li><li><p><strong><a href="https://bun.com/">Bun v1.2.19</a></strong> continues to make waves as an all-in-one JavaScript runtime, delivering major speed improvements, reliable dependency management, and powerful CLI tools to supercharge modern development.</p></li></ul><div><hr></div><p>And that's it for the forty-fifth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Kimi K2 is the BEST coding agent, Next.js 16 sneak peek, Nuxt 4.0 is here, and more - Week #44]]></title><description><![CDATA[Today, we'll be talking about Kimi K2 and how it might be the best AI agent for coders and web developers, Next.js 15.4 which also came with a Next.js 16 sneak peek, Nuxt 4.0, and more.]]></description><link>https://thisweekinjavascript.com/p/kimi-k2-is-the-best-coding-agent</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/kimi-k2-is-the-best-coding-agent</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 20 Jul 2025 17:01:16 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/84ea7cb8-9ec9-41a2-aa7e-e03b0a74f77c_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, Moonshot AI&#8217;s Kimi K2 arrives as a powerful open-weight coding model, Next.js 15.4 makes Turbopack production-ready, Vue 3.6 alpha introduces Vapor Mode for high-performance apps, and Nuxt 4.0 brings big improvements to the developer experience, and more.<br><br>Plus, we&#8217;ve got some powerful new+updated tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8acec7b87329d9119e291c5afe&quot;,&quot;title&quot;:&quot;Kimi K2 is the BEST coding agent, Next.js 16 sneak peek, Nuxt 4.0 is here, and more EP44 JavaScript News&#8232;&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/4FUThafIrxu64KeTnj8NrH&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/4FUThafIrxu64KeTnj8NrH" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Kimi K2 is the BEST coding agent</strong></h3><p>Could models like Claude, GPT-4, or Gemini Pro be losing their top spot? <strong><a href="https://moonshotai.github.io/Kimi-K2/">Moonshot AI&#8217;s Kimi K2</a></strong> is making waves across the developer community, offering open access, strong benchmarks, and real-world coding power&#8212;right when it matters most.</p><ul><li><p><strong>Agentic Mastery Beyond Code Suggestions:</strong> Kimi K2 moves far beyond being just another code-completion AI. It executes, tests, debugs, and iteratively improves full software projects&#8212;demonstrated by automating complex tasks like developing Minecraft mods in JavaScript. It can handle rendering, run and debug multiple test cases, capture logs on failure, and refine solutions until all tests succeed.</p></li><li><p><strong>Built for Scale and Depth:</strong> With a Mixture-of-Experts architecture (32 billion activated parameters from a trillion total), Kimi K2 processes entire repositories thanks to a 128,000-token context window. This enables deep, cross-file project reasoning and robust documentation.</p></li><li><p><strong>Benchmark-Leading Results:</strong> Kimi K2 achieves 65.8% on SWE-Bench and leads LiveCodeBench v6, showcasing its capabilities in end-to-end coding, debugging, and realistic project workflows.</p></li></ul><h4><strong>Open Access and Developer Control</strong></h4><ul><li><p><strong>Ready for Any Workflow:</strong></p><ul><li><p><strong>Kimi-K2-Base:</strong> Start with a model designed for custom research, innovation, and fine-tuning in-house solutions.</p></li><li><p><strong>Kimi-K2-Instruct:</strong> Unlock a production-ready chatbot or agent&#8212;perfect for IDE, CI, or documentation automation.</p></li></ul></li><li><p><strong>Developer-Friendly Deployment:</strong> Everything you need&#8212;deployment tools and open inference code&#8212;are available on <a href="https://github.com/MoonshotAI/Kimi-K2?tab=readme-ov-file#4-deployment">GitHub</a>, so you can start building advanced, transparent AI workflows without vendor lock-in.</p></li></ul><p>Kimi K2 is helping developers not only generate code but also manage advanced automation, debug large projects, and streamline end-to-end engineering tasks&#8212;all within an accessible open-source framework.</p><div><hr></div><h3><strong>Next.js 15.4 brings a sneak peek to Next.js 16</strong></h3><p>The<a href="https://nextjs.org/blog/next-15-4"> </a><strong><a href="https://nextjs.org/blog/next-15-4">Next.js 15.4 release</a></strong> is a game-changer for developer productivity. The headline feature is that Turbopack is now production-ready. Developers can enable it with next build --turbopack to see a dramatic reduction in build times.</p><ul><li><p><strong>Production-Proven Speed:</strong> Turbopack is officially powering major sites like vercel.com, passing over 8,000 integration tests and delivering tangible reductions in build and deploy times. For developers working on large codebases or maintaining rapid CI/CD cycles, this means less waiting, more iterating, and shipping features faster.</p></li><li><p><strong>Developer-First Improvements:</strong> The release isn&#8217;t just about raw speed&#8212;quality-of-life fixes are everywhere. With smarter server-side path generation, enhanced error handling, the new <code>onInvalidate</code> option for router prefetch, and detailed debug tooling, routine workflows become smoother and less error-prone. Expect smaller server bundles&#8212;and a more robust App Router&#8212;out of the box.</p></li><li><p><strong>Glance at the Future&#8212;Next.js 16:</strong> The roadmap lights up with features like unified Cache Components (beta) to streamline data-fetching and caching logic, stable Node.js Middleware for consistent routing and security, and optimized client-side navigation. Enhanced DevTools are coming too, prepping Next.js for AI-powered debugging and even more developer clarity.</p></li><li><p><strong>Zero-Hassle Upgrades:</strong> Migration headaches are minimized with automated commands (like <code>npx @next/codemod@canary upgrade latest</code>) and thoughtful deprecation guidance for Node.js 18 and AMP. Adopters of prior Turbopack alphas will immediately notice the leap in stability and performance.</p></li></ul><p>Developers have been waiting for a practical, reliable performance leap&#8212;and with Turbopack finally production-ready in Next.js 15.4, that leap is here. It&#8217;s the perfect moment to revisit your stack and experience what modern React builds should feel like.</p><div><hr></div><h3><strong>Vue 3.6 Alpha: Optimize Performance with Vapor Mode</strong></h3><p>Imagine boosting a single Vue component&#8217;s speed&#8212;no full rewrite, no confusing migration, just pure, surgical performance when you need it most. That&#8217;s exactly what <strong><a href="https://github.com/vuejs/core/releases/tag/v3.6.0-alpha.1">Vue 3.6.0-alpha.1</a></strong> delivers with its new Vapor Mode, now shaking up how devs approach frontend bottlenecks.</p><h4><strong>What makes Vapor Mode exciting?</strong></h4><ul><li><p><strong>Drop the V-DOM baggage:</strong> With Vapor Mode, your templates are compiled straight into super-efficient vanilla JavaScript that updates the DOM directly&#8212;no diffing or middlemen, just instant UI updates.</p></li><li><p><strong>Instant optimization, zero churn: Need a lightning-fast data grid or real-time chart? Add </strong><code>&lt;script setup vapor&gt;</code><strong> to your SFC, and that&#8217;s it. No more spinning your wheels trying to squeeze out performance gains across your whole app.</strong></p></li><li><p><strong>Mix and match: No need to bet the farm! Use Vapor Mode on just those heavy components, while the rest of your project keeps humming along in standard Vue. The </strong><code>vaporInteropPlugin</code><strong> means you get the best of both worlds&#8212;legacy and futuristic, side by side.</strong></p></li></ul><ul><li><p><strong>Less code, more speed: </strong>Benchmarks show near-native DOM speeds and smaller bundles&#8212;the stuff frontend dreams are made of.</p></li><li><p><strong>Smart, modern reactivity: </strong>Under the hood, the core&#8217;s been upgraded for leaner computed properties and snappier state management, so even your non-Vapor code benefits.</p></li><li><p><strong>A real migration path:</strong> Vapor Mode isn&#8217;t for everything&#8212;yet. It&#8217;s perfect for new projects, perf-sensitive features, or greenfield micro frontends. Plus, features like SSR hydration and transitions are on the way.</p></li></ul><h4><strong>How do you try it out?</strong></h4><ul><li><p>Just add the <code>vapor</code> option to your <code>&lt;script setup&gt;</code> block and build as usual. Then watch as that sluggish component turns into a speed demon&#8212;no codebase rewiring or framework gymnastics required.</p></li></ul><p>With Vapor Mode, Vue gives developers direct control over where performance matters most&#8212;unlocking a whole new way to build fast, efficient interfaces with the tools you already know and love. If you&#8217;re ready to see how &#8220;fast&#8221; Vue can really be, it&#8217;s never been easier to jump in and push your next UI feature to new heights.</p><div><hr></div><h3><strong>Nuxt 4.0: A Major Overhaul for Developer Experience</strong></h3><p><strong><a href="https://nuxt.com/blog/v4">Nuxt 4.0</a></strong> is here after a year of real-world testing, focused on stability and making setup, coding, and upgrades more intuitive for developers. It introduces carefully considered changes aimed at cleaner workflows and easier project maintenance, with backwards compatibility and a smooth upgrade path.</p><h4><strong>Cleaner Project Organization</strong></h4><ul><li><p><strong>The biggest visible change:</strong> your app now lives in an <code>app/</code> directory by default. This makes project structure clearer, file watchers faster, and helps IDEs better recognize what&#8217;s client, server, or shared code.</p></li><li><p><strong>Don&#8217;t want to migrate? No problem</strong>&#8212;Nuxt 4 detects old layouts and works as before.</p></li></ul><h4><strong>Redesigned Starter Templates, Error, Home, and Loader Pages</strong></h4><ul><li><p>Based on <a href="https://github.com/nuxt/nuxt/pull/27843">PR #27843</a>, Nuxt 4 introduces all-new, modern UI branding for its starter templates&#8212;including a refreshed home page, a more accessible layout, a polished error page (<code>error.vue</code> at the project root), and a visually improved loader page. There&#8217;s a new logo, better focus outlines, a well-structured <code>&lt;main&gt;</code> for accessibility, and updated favicon and title defaults for SEO and professionalism.</p></li><li><p>These updates mean every new project starts with a cleaner look, improved accessibility, and an easier base to build on for teams and solo developers alike.</p></li></ul><h4><strong>Smarter Data Fetching by Default</strong></h4><ul><li><p><code>useAsyncData</code> and <code>useFetch</code> are now more intelligent: components using the same key share data automatically, reactively refetch when keys change, and clean up after themselves. That means less boilerplate and fewer duplicated network requests out of the box.</p></li><li><p>More flexibility is coming to the data layer as development continues.</p></li></ul><h4><strong>Enhanced TypeScript Experience</strong></h4><ul><li><p>Nuxt 4 separates TypeScript projects for app, server, and shared code, providing more accurate type inference, less confusion across code contexts, and smoother, more reliable editor support.</p></li><li><p>Your root <code>tsconfig.json</code> is now set up for you, and TypeScript integration is more robust across the board.</p></li></ul><h4><strong>Faster CLI &amp; Dev Server</strong></h4><ul><li><p>The CLI sees upgrades with socket-based communication, native file watching, and v8 compile cache reuse&#8212;resulting in faster cold starts and less resource usage, especially on Windows.</p></li></ul><h4><strong>Upgrade Path &amp; Migration Tools</strong></h4><ul><li><p>Upgrading is straightforward. Use <code>npx nuxt upgrade --dedupe</code> for a safe update and deduped lockfile, or the Codemod migration tool to automate many common steps.</p></li><li><p>Detailed guides cover major breaking changes and help you fix any module or type errors.</p></li></ul><h4><strong>Looking Ahead</strong></h4><ul><li><p>Nuxt 3 will continue to get maintenance through January 2026.</p></li><li><p>Next up: Nuxt 5 with Nitro v3, h3 v2, the new Vite Environment API, and other developer-focused enhancements&#8212;plus SSR streaming, built-in fetch caching, multi-app support, and more in the pipeline.</p></li></ul><p>Nuxt 4.0 isn&#8217;t about hype&#8212;it&#8217;s about everyday developer wins: faster starts, simpler structure, smarter defaults, and even better TypeScript. If you want a modern, production-grade Vue framework, this is a great time to upgrade.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><ul><li><p><strong><a href="https://tiptap.dev/docs/resources/whats-new">Tiptap v3</a>:</strong> The popular headless rich text editor framework gets a major v3 update focused on developer experience. It now supports unmounting and remounting editors (ideal for dynamic UIs), custom component views for text segments with 'Markviews', and an SSR mode, making it easier than ever to build powerful editing experiences.</p></li><li><p><strong><a href="https://hyperfetch.bettertyped.com/">Hyper Fetch</a>:</strong> A powerful, framework-agnostic data-fetching library inspired by Axios and TanStack Query. It offers a type-safe API for both browser and server, with advanced features like request lifecycle management, real-time communication, progress tracking, and even code generation from OpenAPI specs.</p></li><li><p><strong><a href="https://astro.build/blog/astro-5120/">Astro 5.12</a>:</strong> Astro continues to be the go-to framework for content-heavy sites that need to be incredibly fast. This release further improves its content collections API, making it easier to build blogs, portfolios, and marketing sites. Its "island architecture" is perfect for building internal dashboards or tools, like an AI-powered code review interface.</p></li><li><p><strong><a href="https://github.com/dahlia/upyo">Upyo</a>:</strong> A simple, cross-runtime email library that gives you a unified, type-safe API for sending emails. It supports both traditional SMTP and modern HTTP-based providers like SendGrid or Amazon SES, simplifying a common backend task.</p></li><li><p><strong><a href="https://github.com/openpgpjs/openpgpjs/releases/tag/v6.2.0">OpenPGP.js 6.2</a>:</strong> Adding client-side encryption to your web app can be complex, but OpenPGP.js provides a robust, open-source solution. This version introduces faster key generation and improved compatibility with modern browser APIs for secure, end-to-end encrypted features.</p></li></ul><div><hr></div><p>And that's it for the forty-fourth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Grok 4's coding powers, TypeScript 5.9 Beta, the BEST Postgres provider, Vercel acquires NuxtLabs, and more - Week #43]]></title><description><![CDATA[Today, we'll be looking at Grok 4's early-stage coding capabilities, possibly the best Postgres provider, the TypeScript 5.9 Beta release and more.]]></description><link>https://thisweekinjavascript.com/p/grok-4s-coding-powers-typescript</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/grok-4s-coding-powers-typescript</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 13 Jul 2025 17:26:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5d645844-04ca-4582-8782-af66344b177e_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, Grok&#8239;4 steps up as a coding assistant for web developers, PlanetScale launches its blazing&#8209;fast Postgres platform, Vercel welcomes NuxtLabs into the fold, and TypeScript&#8239;5.9 Beta brings deferred module evaluation, and more.<br><br>Plus, we&#8217;ve got some powerful new+updated tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a3bbc19462e85bc80a2a31b8d&quot;,&quot;title&quot;:&quot;Grok 4's coding powers, TypeScript 5.9 Beta, the BEST Postgres provider, Vercel acquires NuxtLabs, and more EP43 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/4g5SWw3wONf4z63Ish8dfu&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/4g5SWw3wONf4z63Ish8dfu" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Is Grok&#8239;4 a Good Coding Assistant?</strong></h3><p>xAI&#8217;s <strong><a href="https://x.ai/news/grok-4">Grok&#8239;4</a></strong> isn&#8217;t just a benchmark star, it&#8217;s showing real promise as a coding assistant built for ambitious developer workflows. While the dedicated Grok 4 Coding Agent is still in development, the core model already delivers features that rival and, in some cases, surpass established tools.</p><p>With a 128K token context window (256K via API), native web search, and an integrated code execution sandbox, Grok 4 can handle entire codebases, generate structured multi-file solutions, and even run your code to identify bugs or test logic.</p><p>It already excels at:</p><ul><li><p><strong>Code generation &amp; scaffolding:</strong> From React components to Express routes, Grok 4 produces runnable, modular code. Thanks to its huge context window, it understands cross-file dependencies and refines outputs through iterative feedback, making it ideal for large, modern web projects.</p></li><li><p><strong>Debugging with tool use:</strong> Grok doesn&#8217;t just read your code, it runs it. It reproduces bugs in a sandbox, looks up the latest Stack Overflow or GitHub issues via live search, and suggests clear, actionable fixes. While its deep reasoning sometimes adds a bit of latency, the trade-off often results in more reliable solutions.</p></li><li><p><strong>Code explanation &amp; documentation:</strong> Paste in thousands of lines of legacy code and get back plain-English summaries, line-by-line breakdowns, or high-level overviews. Its real-time web access means it can explain even the newest framework features, versions, and APIs accurately.</p></li><li><p><strong>Advanced problem-solving:</strong> With &#8220;Heavy&#8221; mode (not publicly available yet), Grok 4 uses multi-agent reasoning. Think of it as a team of AI reviewers debating and validating a solution. This gives it an edge in algorithmic problems, architecture planning, and performance tuning. It is also the first model to break 15% on ARC-AGI 2.0, a benchmark known for testing true general intelligence.</p></li></ul><p>Compared to GitHub Copilot&#8217;s speed or ChatGPT&#8217;s versatility, Grok 4 trades a bit of polish for raw intelligence and autonomy. It&#8217;s not flawless. Some early users have noted bugs and slower responses, but it&#8217;s a powerful foundation. For developers who want an AI that can reason through messy bugs, understand full-stack apps, and adapt to fast-evolving tech, Grok 4 is already a strong start, and the coding agent hasn&#8217;t even launched yet.</p><div><hr></div><h3><strong>PlanetScale for Postgres: the world&#8217;s fastest Postgres hosting platform</strong></h3><p>PlanetScale&#8217;s <strong><a href="https://planetscale.com/blog/planetscale-for-postgres">private preview of Postgres</a></strong> hosting brings their Metal&#8209;powered performance and rock&#8209;solid reliability to the Postgres ecosystem.<br><br>Highlights include:</p><ul><li><p><strong>Benchmark leadership:</strong> Outperforms Aurora, AlloyDB, Neon, Supabase, and more, even when competitors run on 2&#215; resources.</p></li><li><p><strong>High availability &amp; uptime:</strong> Automatic failovers, query buffering, connection pooling via PSBouncer, and zero&#8209;downtime version upgrades.</p></li><li><p><strong>Local NVMe SSDs:</strong> Locally attached storage delivers unrivaled performance/cost ratios for relational workloads.</p></li><li><p><strong>Nova (Vitess for Postgres):</strong> A from&#8209;scratch sharding solution inspired by Vitess, currently in development with early access for high&#8209;scale users.</p></li></ul><p>Built on real Postgres&#8239;v17 and supporting imports from v13+, PlanetScale for Postgres combines enterprise&#8209;grade security, mature sharding, and the &#8220;boring&#8221; engineering that keeps your apps running.</p><div><hr></div><h3><strong>Vercel Acquires NuxtLabs</strong></h3><p><strong><a href="https://vercel.com/blog/nuxtlabs-joins-vercel">NuxtLabs joins Vercel</a> </strong>to fuel the future of the Nuxt ecosystem. Under MIT license and community&#8209;driven governance, Nuxt and Nitro will continue evolving with:</p><ul><li><p><strong>Nuxt UI&#8239;v4 free&#8209;for&#8209;all:</strong> All Pro components and Figma kits open&#8209;sourced.</p></li><li><p><strong>Self&#8209;hostable Nuxt Studio:</strong> Edit Nuxt Content sites with a first&#8209;class admin interface.</p></li><li><p><strong>NuxtHub agnosticism:</strong> Seamless integration with Vercel Marketplace add&#8209;ons like Postgres and Redis.</p></li></ul><p>Vercel&#8217;s track record, Next.js, Turborepo, Svelte, shadcn, means Nuxt&#8217;s roadmap, transparency, and community focus only get stronger, without sacrificing independence or open governance.</p><div><hr></div><h3><strong>TypeScript&#8239;5.9 Beta</strong></h3><p><strong><a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-9-beta/">TypeScript&#8239;5.9 Beta</a></strong> brings features designed to streamline setup, boost performance, and align with upcoming ECMAScript specs:</p><p><strong>Streamlined&#8239;tsc --init<br></strong> A minimal, prescriptive tsconfig.json now defaults to <code>"module": "nodenext", "target": "esnext", jsx: "react&#8209;jsx"</code>, and an empty <code>types</code> array, reducing friction and encouraging modern best practices.</p><p><strong>import defer<br></strong> Support for the deferred module evaluation proposal via <code>import defer * as ns from "./mod.js"</code>. Modules initialize only when you first access a namespace property, improving startup performance and controlling side&#8209;effects.</p><p><strong>Stable --module node20<br></strong> A fixed Node.js&#8239;v20 resolution strategy (<code>--module node20</code>) models Node&#8239;20 behavior predictably, unlike the evolving <code>nodenext</code>, and implies <code>--target es2023</code> by default.</p><h4><strong>Enhanced editor &amp; performance</strong></h4><ul><li><p><strong>Smarter hovers:</strong> Interactive &#8220;expandable&#8221; Quick Info and larger default hover lengths, no more truncated type details.</p></li><li><p><strong>Type&#8209;checking optimizations:</strong> Cached instantiations for mappers (faster Zod/tRPC checks) and leaner file existence checks, yielding up to an 11&#8239;% speed&#8209;up in large codebases.</p></li></ul><p>TypeScript&#8239;5.9 refines the core developer experience while paving the way for next&#8209;gen language features.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><h4><strong><a href="https://foresightjs.com/">Foresight.js</a></strong></h4><p>Foresight.js hooks into standard mouse and keyboard events to build a real&#8209;time model of user intent. By analyzing cursor velocity, hover duration, scroll position, and key navigation patterns, it can anticipate which link, button, or section a user is heading toward. Developers can then:</p><ul><li><p>Prefetch critical assets (images, scripts, API calls) just before they&#8217;re needed, slashing load times and perceived latency.</p></li><li><p>Warm up heavy modules (e.g. code-splitting bundles or WebAssembly) in the background, so expensive downloads complete before the user clicks.</p></li><li><p>Trigger early analytics or personalization workflows, enabling real&#8209;time A/B tests or custom UI tweaks without delay.</p></li></ul><p>With its lightweight core and easy API, Foresight.predict(element).then(&#8230;), you can retrofit Foresight.js into existing projects or integrate deeply into single&#8209;page apps to make every interaction feel instantaneous.</p><h4><strong><a href="https://driverjs.com/">Driver.js</a></strong></h4><p>Onboarding and feature discovery become frictionless with Driver.js. This library lets you walk users step&#8209;by&#8209;step through your UI, highlighting elements, dimming the background, and displaying custom tooltips. Key benefits for developers:</p><ul><li><p>No heavy dependencies, just include the Driver.js script and CSS.</p></li><li><p>Declarative tour definitions, an array of steps specifying target selectors, popover text, and positioning.</p></li><li><p>Event hooks for start, next, prev, and complete: integrate analytics, consent checks, or dynamic steps based on user state.</p></li><li><p>Theming &amp; styling, override default CSS or supply custom templates for a branded look.</p></li></ul><p>Whether you&#8217;re launching a new dashboard feature or guiding new users through form workflows, Driver.js ensures your first&#8209;time user experience is clear, concise, and code&#8209;driven.</p><h4><strong><a href="https://www.npmjs.com/package/jsonrepair">JSONRepair</a></strong></h4><p>When third&#8209;party APIs, logs, or legacy systems produce malformed JSON, pipelines can grind to a halt. JSONRepair solves this by:</p><ul><li><p>Automatically detecting common syntax errors, missing commas, stray trailing characters, unquoted keys, mismatched brackets.</p></li><li><p>Applying heuristic corrections while preserving as much original content as possible.</p></li><li><p>Offering both CLI and programmatic interfaces, so you can plug it into build scripts (jsonrepair input.json &gt; fixed.json) or call repair(jsonString) in Node.js.</p></li><li><p>Reporting a summary of fixes applied, helping you trace and diagnose recurring data issues.</p></li></ul><p>For developers building ETL jobs, log parsers, or front&#8209;end apps that fetch unpredictable data, JSONRepair eliminates manual debugging and keeps data flowing smoothly.</p><h4><strong><a href="https://x.com/jarredsumner/status/1943492457506697482">Claude Code in a Single Executable</a></strong></h4><p>Installing and managing Node versions, Bun releases, and native addons can derail AI coding workflows. Josh Sumner&#8217;s bundled executable changes that by:</p><ul><li><p>Packaging Claude Code, Node.js, Bun, and all native modules into one self&#8209;contained binary.</p></li><li><p>Ensuring consistent behavior across Windows, macOS, and Linux, no more &#8220;it works on my machine&#8221; headaches.</p></li><li><p>Supporting direct execution of JavaScript and TypeScript code with AI assistance, without extra script or dependency setup.</p></li><li><p>Enabling offline or air&#8209;gapped usage, since all runtime components are embedded.</p></li></ul><p>Developers can drop the binary into a project, run claude-code start, and immediately interact with Claude&#8217;s code generation, refactoring, and debugging features, accelerating prototyping and minimizing setup friction.</p><div><hr></div><p>And that's it for the forty-third issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Deno 2.4 brings back deno bundle, GitHub Copilot Chat is now open source, Minecraft built in 100% CSS, and more - Week #42]]></title><description><![CDATA[Today, we'll be talking about the new Deno 2.4 update, GitHub Copilot Chat now being open source, and Minecraft, built in 100% CSS!]]></description><link>https://thisweekinjavascript.com/p/deno-24-brings-back-deno-bundle-github</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/deno-24-brings-back-deno-bundle-github</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 06 Jul 2025 17:01:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b066afe0-31e7-4352-9cb9-bd2980a902b5_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, deno bundle made an insane comeback, GitHub Copilot Chat gets open-sourced, Someone made Minecraft with CSS, and PNG receives updates too.<br><br>Plus, we&#8217;ve got some powerful new+updated tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a794927297141eaf6d412eb7b&quot;,&quot;title&quot;:&quot;Deno 2.4 brings back deno bundle, GitHub Copilot Chat is now open source, Minecraft built in 100% CSS, and more EP42 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/7HHePG12RLlYsY8FVlc9tH&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/7HHePG12RLlYsY8FVlc9tH" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Deno 2.4: deno bundle is Back</strong></h3><p><strong><a href="https://deno.com/blog/v2.4">Deno 2.4 reintroduces the long-requested deno bundle command</a></strong>, enabling single-file JavaScript or TypeScript bundles for both server and browser environments. With support for npm and JSR dependencies, plus automatic tree-shaking and minification via esbuild, this marks a major leap forward for Deno&#8217;s developer experience.</p><p>Previously deprecated due to complexity, deno bundle now uses esbuild under the hood and is here to stay. Future plans include exposing a runtime bundling API and plugin support for customizable builds , making it more flexible than ever.</p><p>Beyond bundling, Deno 2.4 introduces several notable features that enhance both DX and spec-alignment:</p><ul><li><p><strong>Importing text and binary files</strong> directly into modules, useful for assets like markdown, icons, or binary blobs. Instead of loading assets at runtime, developers can now import them statically in a spec-friendly way, aligning with the direction of the Import Attributes proposal.</p></li><li><p><strong>Stable OpenTelemetry support</strong> is now built into Deno, enabling structured observability without extra setup.</p></li><li><p>A new <code>--preload</code> flag allows you to modify the Deno runtime environment before executing scripts, useful for injecting setup code or instrumentation.</p></li><li><p><code>deno update</code> simplifies dependency management by keeping everything fresh with one command.</p></li><li><p>Script coverage can now be collected via <code>deno run --coverage</code>, making it easier to track test quality and identify untested logic.</p></li></ul><ul><li><p>Additional changes include:</p></li></ul><ul><li><p>Support for <code>DENO_COMPAT=1</code> mode for better Node compatibility</p></li><li><p>Conditional exports in <code>package.json</code></p></li><li><p>XML and SVG support in <code>deno fmt</code></p></li><li><p>Expanded support for local npm packages</p></li><li><p>Better <code>tsconfig.json</code> handling</p></li><li><p>Simplified Node global handling</p></li><li><p>Improvements to the Language Server Protocol (LSP)</p></li></ul><p>Deno 2.4 is one of the most substantial releases yet, tightening the runtime's alignment with modern standards while improving bundling, observability, and ergonomics across the board.</p><div><hr></div><h2><strong>GitHub Copilot Chat Is Now Open Source in VS Code</strong></h2><p><strong><a href="https://code.visualstudio.com/blogs/2025/06/30/openSourceAIEditorFirstMilestone">Microsoft has officially open-sourced the GitHub Copilot Chat extension for Visual Studio Code</a></strong> under the MIT license, marking its first major milestone toward building an open-source AI-powered code editor. This move opens up a fully transparent look into how Microsoft implements agent-based AI coding inside VS Code.</p><p>You can now explore how context is passed to LLMs, how system prompts are structured, and how AI interactions are embedded into the editor interface , directly in the public repo. Everything from the telemetry capture to the prompt engineering logic is visible and modifiable.</p><p>The release is part of a broader effort to promote community-driven innovation in AI tooling. By open-sourcing Copilot Chat, Microsoft hopes to replicate the success of VS Code&#8217;s open model while advancing trust, extensibility, and insight into AI integration.</p><h4><strong>Developers can</strong>:</h4><ul><li><p>Study how agent mode works under the hood</p></li><li><p>Learn from Microsoft&#8217;s implementation of multi-step task handling and chat-based programming</p></li><li><p>Contribute directly to the extension or file issues</p></li><li><p>Use Copilot&#8217;s own chat capabilities to navigate and understand the codebase itself</p></li></ul><p>Long term, Microsoft aims to integrate the Copilot Chat extension directly into VS Code core. While the original Copilot inline-completion engine remains closed source for now, Microsoft has stated that future iterations of that functionality may also move to the open-source Copilot Chat foundation.</p><p>This release supports full chat interaction inside the editor, from multi-turn conversations to AI-driven edits, method refactoring, and error handling, across dozens of languages like Python, JavaScript, Go, and C++.</p><p>With full integration into the VS Code UI, Copilot Chat updates alongside every VS Code release. To access the latest capabilities, users must stay on the most recent VS Code version.</p><p>This open-sourcing step strengthens transparency, improves community trust, and gives developers fine-grained control over how AI tools are embedded into their workflows. Microsoft&#8217;s commitment is clear: AI-first development should be open by design.</p><div><hr></div><h3><strong>Minecraft... in Pure CSS?!</strong></h3><p><strong><a href="https://benjaminaster.com/css-minecraft/">Yes, it&#8217;s real: someone recreated Minecraft using only HTML and CSS</a></strong>, no JavaScript, no WebGL. You can build blocks, break them, rotate the world, and explore, all with just CSS selectors, radios, and some wild creativity.</p><p>This project pushes CSS to its absolute limits, using a mix of <code>:has()</code>, radio inputs, and label mechanics to simulate interactive 3D state changes , essentially turning the browser into a voxel engine using pure style rules.</p><h4><strong>At its core:</strong></h4><ul><li><p>The game uses <strong>over 35,000 </strong><code>&lt;label&gt;</code><strong> elements</strong> and nearly <strong>6,000 </strong><code>&lt;input type="radio"&gt;</code><strong> elements</strong> to store state.</p></li><li><p>Each cube in the 3D grid is represented using combinations of these inputs, allowing CSS to "track" block types and positions.</p></li></ul><p>Changing blocks works by selecting different radio inputs. The associated label targets use for attributes to update visible styles, changing textures or removing blocks based on which input is checked.</p><h4><strong>Rendering and interactivity are handled through</strong>:</h4><ul><li><p><strong>CSS-only animations</strong> that run on interaction using the <code>:active</code> and <code>animation-play-state</code> trick. Holding a movement button (like "up" or "down") triggers smooth transforms and rotates the world.</p></li><li><p><strong>3D transforms and perspectives</strong>, including pixelated rendering of textures for that authentic Minecraft look.</p></li><li><p>A precompiled <strong>46,000-line HTML file</strong> with just <strong>480 lines of actual CSS</strong> (generated via SCSS templates) orchestrates the entire experience.</p></li></ul><h4><strong>What makes it possible:</strong></h4><ul><li><p>Clever use of <code>:has()</code> and <code>:checked</code> selectors allows input states to trigger DOM changes without JavaScript.</p></li><li><p><code>image-rendering: pixelated</code> ensures clean visual fidelity for block textures.</p></li><li><p>Layered container elements track perspective and axis-based movement in 3D.</p></li></ul><p>It&#8217;s not just a visual demo, it&#8217;s <strong>fully interactive</strong>. You can dig, place blocks, rotate, and explore a miniature CSS world. While not built for production or scalability, the engineering behind it is astonishing.</p><p>This is a stunning example of how far native web technologies have come , and how much is possible when you're willing to explore the boundaries of CSS.</p><div><hr></div><h3><strong>PNG Gets Its First Major Update in Over 20 Years</strong></h3><p><strong><a href="https://www.programmax.net/articles/png-is-back/">The PNG image format just received its first major spec update in two decades</a></strong>, and it&#8217;s a big one. With contributions from Adobe, Apple, Google, the BBC, W3C, and more, PNG is now officially modern again, ready to compete with cutting-edge image formats in HDR workflows, animation, and metadata.</p><h4><strong>So what&#8217;s new?</strong></h4><ul><li><p><strong>True HDR Support<br></strong> PNG now supports High Dynamic Range color with just 4 extra bytes per image (plus chunk overhead). This brings vivid, wide-gamut color support to a format previously limited to SDR , and it&#8217;s designed to be future-proof. The new color encoding is well documented and already supported in major browsers and image tools.</p></li><li><p><strong>Animated PNGs (APNGs) Are Now Official<br></strong> Long supported unofficially in Firefox and later Chrome and Safari, APNGs are now formally part of the spec. This codifies their place in modern image workflows and clears the way for broader adoption.</p></li><li><p><strong>Embedded EXIF Metadata<br></strong> PNG now supports embedding EXIF data , including GPS, copyright, and camera settings , just like JPEG. This improves compatibility across photo and archival applications, while reducing reliance on sidecar files.</p></li><li><p><strong>Spec Cleanup and Clarifications<br></strong> The update also includes long-needed housekeeping: clearer documentation, resolved errata, and harmonized interpretations of key features.</p></li></ul><h4><strong>Why Now?</strong></h4><p>This update was sparked by a need for HDR support in subtitling workflows from the W3C Timed Text Working Group. What began as a narrow technical proposal gained rapid momentum, drawing interest from a who's-who of media and platform giants.</p><p>Backers of the new spec include:<br><strong>Adobe, Apple, BBC, Comcast/NBCUniversal, Google, MovieLabs, and W3C.<br></strong>With this kind of institutional backing, PNG is not just updated , it&#8217;s accelerating.</p><h4><strong>Already Supported- The updated PNG spec is already implemented in:</strong></h4><ul><li><p><strong>Browsers:</strong> Chrome, Firefox, Safari</p></li><li><p><strong>Operating Systems:</strong> iOS, macOS</p></li><li><p><strong>Tools:</strong> Photoshop, DaVinci Resolve, Avid Media Composer</p></li></ul><p>Broadcast workflows are also adopting it. So the next time you see an HDR news ticker or sports graphic, there&#8217;s a good chance it&#8217;s running on this modernized PNG.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><h4><strong><a href="https://rspack.rs/blog/announcing-1-4">Rspack 1.4</a>: High-Speed Web Bundling , Now in the Browser</strong></h4><p>Rspack is a Rust-based web bundler designed to be a faster, drop-in replacement for Webpack.</p><p>It compiles modern JavaScript, TypeScript, CSS, and other frontend assets with lightning speed, and is fully compatible with existing Webpack configs , making migration seamless for large codebases.</p><p>Version 1.4 takes a bold step forward: Rspack can now run inside the browser, thanks to WebAssembly. This unlocks use cases like online code editors, playgrounds, and instant previews without server roundtrips. For teams building DX tools or educational platforms, Rspack&#8217;s new in-browser capabilities offer fast, portable builds where traditional tooling can&#8217;t reach.</p><h4><strong><a href="https://www.electronjs.org/blog/electron-37-0">Electron 37.0</a>: Build Cross-Platform Desktop Apps with Web Tech</strong></h4><p>Electron is the go-to framework for building desktop apps using web technologies like HTML, CSS, and JavaScript. It packages Chromium and Node.js together, giving developers full control over UI and system-level features in a single codebase.</p><p>Electron 37.0 includes the latest Chromium and Node updates, performance improvements, and better compatibility across operating systems. Whether you&#8217;re building productivity apps, developer tools, or internal utilities, Electron lets you reuse your frontend skills to ship native-feeling apps across macOS, Windows, and Linux.</p><h4><strong><a href="https://eslint.org/blog/2025/07/eslint-v9.30.1-released/">ESLint 9.30.1</a>: Cleaner Linting for TypeScript Imports</strong></h4><p>ESLint is the industry-standard linter for JavaScript and TypeScript projects, helping developers catch bugs early, enforce style guides, and maintain consistent code across teams.</p><p>Version 9.30.1 is a patch release, but includes a notable fix for TypeScript users: the no-duplicate-imports rule now allows default and named type imports to coexist from the same module. This resolves a long-standing friction when using TypeScript with strict linting rules, and ensures cleaner, conflict-free import statements without workarounds.</p><h4><strong><a href="https://babeljs.io/blog/2025/06/30/7.28.0">Babel 7.28.0:</a> TypeScript Native, and Ready for the Future</strong></h4><p>Babel is a widely-used JavaScript compiler that allows developers to use next-gen JavaScript features today by transpiling them to widely supported syntax. It&#8217;s essential for large codebases that want to stay modern without sacrificing browser compatibility.</p><p>In version 7.28.0, Babel introduces native support for TypeScript config files (babel.config.ts and babel.config.mts), eliminating the need for additional tooling. It also enables ES2026&#8217;s explicit resource management by default (using using statements), supports the discard binding proposal (useful for ignoring values in destructuring), and adds a new sourceType option to better handle CommonJS modules.</p><p>These upgrades make Babel more capable, ergonomic, and future-ready for modern JS projects, especially in hybrid codebases mixing ESM, CJS, and TypeScript.</p><div><hr></div><p>And that's it for the forty-second issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[9 new JavaScript Features from TC39, Angular's official AI prompting guide, Vite 7, and more - Week #41]]></title><description><![CDATA[Today, we'll be covering the new JavaScript features being moved through their respective stages from TC39, Angular's AI prompting guide for LLMs, Vite 7's newest features, and more.]]></description><link>https://thisweekinjavascript.com/p/9-new-javascript-features-from-tc39</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/9-new-javascript-features-from-tc39</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 29 Jun 2025 17:01:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4cb553d6-ff2f-4376-aa3b-83b9c8e63b5f_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;re tracking the latest ECMAScript proposals in motion, looking at Angular&#8217;s plans to bring LLMs into the developer workflow, unpacking the long-awaited release of Vite 7.0, and exploring V8&#8217;s cutting-edge WebAssembly optimizations. Plus, we&#8217;ve got some powerful new tools for your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a643ed27f2b7142e884ebd87e&quot;,&quot;title&quot;:&quot;9 new JavaScript Features from TC39, Angular's official AI prompting guide, Vite 7, and more EP41 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/77YbHcGTUa05BhYD3gFqQW&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/77YbHcGTUa05BhYD3gFqQW" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>TC39 Moves 9 JavaScript Advancements Across 4 Stages</strong></h3><p><strong><a href="https://deno.com/blog/updates-from-tc39">At the 108th TC39 meeting</a></strong>, nine new proposals moved through the four official standardization stages &#8212; showing how fast JavaScript is evolving across performance, safety, and usability.</p><p><a href="https://deno.com/blog/updates-from-tc39#stage-1">Stage 1</a> explores early ideas, <a href="https://deno.com/blog/updates-from-tc39#stage-2">Stage 2</a> defines their shape, <a href="https://deno.com/blog/updates-from-tc39#stage-3">Stage 3</a> signals implementation readiness, and <a href="https://deno.com/blog/updates-from-tc39#advanced-to-stage-4">Stage 4</a> finalizes them for the JavaScript standard.</p><ul><li><p><strong>Stage 4</strong> now includes three finalized features. First is Explicit Resource Management, which introduces <code>using</code> and <code>await using</code>&#8212;declarations that automatically clean up resources like file handles or streams when their block ends. Inspired by patterns from C# and Python, this brings safer and more predictable memory handling to JavaScript. Alongside this, Array.fromAsync offers a clean way to collect async iterable values into an array by returning a promise, making asynchronous data handling more intuitive. Finally, Error.isError lets you reliably check if a value is truly an error object, even across realms or subclassed types&#8212;filling a long-standing gap in error-checking behavior. All three are already supported in Chrome 134, Node 22, and Deno 2+.</p></li><li><p><strong>Stage 3</strong> brings Immutable ArrayBuffer, a proposal that introduces two methods&#8212;<code>transferToImmutable()</code> and <code>sliceToImmutable()</code>&#8212;which allow binary data to be frozen and safely shared between threads or runtimes. Once a buffer is made immutable, it can&#8217;t be detached or modified, which helps prevent accidental changes and improves performance in scenarios like streaming, file writing, or HTTP responses.</p></li><li><p><strong>Stage 2</strong> focuses on predictability and precision. Random.Seeded lets developers create deterministic sequences of random values using a seed, solving long-standing issues in reproducible simulations, tests, and procedural content generation. Meanwhile, Number.prototype.clamp adds a simple and expressive way to restrict any number within a defined min and max range, avoiding the verbosity of <code>Math.min(Math.max(...))</code> patterns.</p></li><li><p><strong>Stage 1</strong> introduces early drafts of three forward-looking ideas. Keep Trailing Zeros adds fine-grained control over how formatted numbers display trailing decimal places&#8212;useful in financial apps or when consistency matters. Comparisons proposes a standardized, cross-environment way to print JavaScript values, making test outputs and debugging logs more uniform. Lastly, the proposed <em>Random</em> namespace would unify a range of utilities&#8212;like <code>Random.int, Random.sample, Random.shuffle</code>, and more&#8212;into a consistent, safer API for generating random numbers and selecting data.</p></li></ul><p>These updates signal a thoughtful evolution of JavaScript balancing power, safety, and simplicity while giving developers better tools to write cleaner, more predictable code.</p><div><hr></div><h2><strong>2. Angular&#8217;s Official AI Prompting Standards Are Here</strong></h2><p>As AI-generated code becomes more common, frameworks like Angular are stepping up to guide it in the right direction. Angular&#8217;s team has now introduced a <strong><a href="https://angular.dev/ai/develop-with-ai">dedicated set of LLM instructions, prompt templates, and context files</a></strong> to help large language models generate code that actually follows Angular best practices.</p><ul><li><p>It starts with the basics: Angular now provides a system prompt that defines what good Angular code should look like. This includes TypeScript best practices like avoiding <code>any</code>, using strict type checking, and preferring type inference. On the Angular side, the prompt encourages standalone components over NgModules, <code>NgOptimizedImage</code> for image performance, and signals for local state management. Even in templates, native control flow constructs like <code>@if </code>and <code>@for </code>are recommended over their structural directive equivalents. There&#8217;s also a push to avoid common anti-patterns like <code>ngClas</code>s and <code>ngStyle</code>, instead using <code>class</code> and <code>style</code> bindings directly.</p></li><li><p>Beyond prompts, Angular now supports <em>rules files</em> tailored for specific editors and AI IDEs &#8212; including Copilot, Cursor, Firebase Studio, JetBrains IDEs, and even Windsurf. These rules help fine-tune LLM behavior inside your development environment by setting guardrails that align with Angular&#8217;s evolving standards.</p></li><li><p>And to tie it all together, the Angular team is experimenting with <code>llms.txt</code>, a proposed web standard designed to expose structured resources that LLMs can use to better understand a site or framework. Think of it like <code>robots.txt</code>, but for AI models instead of crawlers. There&#8217;s a base version that points to prompt files and references, and an extended <code>llms-full.txt</code> with deeper documentation on Angular&#8217;s inner workings.</p></li></ul><p>Taken together, these changes don&#8217;t just help LLMs write better Angular &#8212; they also signal that AI-assisted coding is being treated seriously by framework maintainers.</p><div><hr></div><h3><strong>Vite 7 Is Out With Major Internal Upgrades</strong></h3><p><strong><a href="https://vite.dev/blog/announcing-vite7.html">Vite 7</a></strong> marks a major milestone in the evolution of modern frontend tooling. Over the past five years, Vite has grown into a foundational part of the JavaScript ecosystem, powering many frameworks and tools. With over 31 million downloads per week &#8212; up by 14 million in just seven months &#8212; the growth reflects its central role in enabling faster, modular frontend development.</p><ul><li><p>One of the most impactful changes in this release is the introduction of a new Rust-based bundler, now available as a drop-in replacement through a separate package. Built to eventually become the default, this bundler significantly improves build performance, especially for large-scale applications. It&#8217;s part of a broader effort to modernize the internal architecture and push toward a faster, more efficient toolchain.</p></li><li><p>Vite 7 also updates its <strong>browser target</strong> defaults to a new standard called <code>baseline-widely-available</code>. This shift ensures better compatibility with features that have been supported across major browsers for at least 30 months. With this update, minimum versions are now Chrome 107, Firefox 104, Safari 16.0, and Edge 107 &#8212; offering more predictability for future browser support.</p></li><li><p>On the <strong>Node.js compatibility</strong> side, Vite now requires Node 20.19 or 22.12 and drops support for Node 18, which has reached its end of life. These newer versions allow ESM-only distribution while maintaining interoperability with CommonJS modules, simplifying API usage and resolving long-standing compatibility issues.</p></li><li><p>The <strong>experimental Environment API</strong> continues to evolve. Vite 7 introduces a new <code>buildApp</code> hook to help plugins better coordinate environment setup during build processes. While still in review, the API is already showing potential in runtime-specific tooling and integrations. Developers are encouraged to test it out and provide feedback as it moves toward stabilization.</p></li><li><p>For testing setups, Vite 7 is fully compatible with the latest versions of Vitest. The update also removes deprecated features like the Sass legacy API and <code>splitVendorChunkPlugin</code>, aiming to keep the codebase lean while preserving backward compatibility for most projects.</p></li><li><p>Upgrading to Vite 7 should be relatively straightforward for anyone already on Vite 6. Migration guides are available to help smooth the process, and the complete changelog documents all updates in detail.</p></li></ul><div><hr></div><h3><strong>V8 Gets Smarter: Speculative Inlining &amp; Deoptimizations</strong></h3><p>V8 team has rolled out <strong><a href="https://v8.dev/blog/wasm-speculative-optimizations">two major performance upgrades for WebAssembly</a></strong>: <strong>speculative inlining</strong> and <strong>deoptimization support</strong> &#8212; now shipping in Chrome M137. Together, they significantly improve execution speed, especially for apps compiled from higher-level languages like Dart, Java, or Kotlin using the WasmGC model.</p><ul><li><p>Previously, inlining was limited to direct or well-known function calls. But with <code>call_indirect</code> &#8212; where the callee is only determined at runtime &#8212; inlining was tricky. Now, V8 uses runtime profiling to identify likely targets at hot call sites and <strong>speculatively inlines</strong> them. If a function is called frequently via <code>call_indirect</code>, V8 tracks the target using feedback vectors and replaces the call with inlined code for up to four targets. This reduces call overhead and opens the door for further compiler optimizations like constant folding and dead code elimination.</p></li><li><p>Speculative optimizations rely on assumptions &#8212; and when those assumptions break, V8 needs a safe fallback. That&#8217;s where <strong>deopts</strong> come in. If the inlined assumption is wrong (for example, a different target function is called), V8 exits the optimized path and jumps back into baseline (unoptimized) code without breaking execution. This new deopt support for WebAssembly mirrors what&#8217;s long been used in JavaScript JITs and is now a key foundation for even deeper optimizations in future WasmGC workloads.</p></li><li><p>Combined, these changes show big wins. On Dart microbenchmarks, V8 saw over <strong>50% speedups</strong>, and real-world WasmGC apps (like databases and UI engines) saw <strong>1 to 8% performance boosts</strong>. More importantly, this brings WebAssembly performance optimization closer to what we've long had with JavaScript &#8212; making Wasm a truly competitive target for modern web and app development.</p></li></ul><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><h4><strong>Transformers.js Adds Gemma 3n, Qwen3 Embeddings, and Llava-Qwen2</strong></h4><p><a href="https://github.com/huggingface/transformers.js/releases/tag/3.6.0">Transformers.js</a> now supports several new models across NLP, vision, audio, and multimodal tasks. The biggest update is Gemma 3n &#8212; a local-first model built for multimodal inputs (text, images, audio, video), optimized to run efficiently with only a 2B footprint despite its 6B parameter design. It also introduces MatFormer, allowing model nesting and custom sub-models via mix-and-match. The Qwen3 Embedding models are also live, purpose-built for dense, multilingual embeddings and reranking. Llava-Qwen2 support is in progress, pairing vision with Qwen2&#8217;s language backbone.</p><h4><strong>zx 8.6: Write Shell Scripts in JavaScript</strong></h4><p><a href="https://github.com/google/zx/releases/tag/8.6.0">zx</a> simplifies writing shell scripts using JavaScript, offering a cleaner alternative to bash. Version 8.6 brings improved defaults, cross-platform behavior, and less boilerplate for scripting tasks. Perfect for developers who want to script automation without leaving the comfort of Node.js.</p><h4><strong>Node.js 22.17.0 LTS Brings Clarity to APIs</strong></h4><p><a href="https://nodejs.org/en/blog/release/v22.17.0">The latest Node LTS version</a> discourages instantiating core HTTP classes like IncomingMessage without new, aligning with standard JavaScript expectations. Setting options.shell to an empty string now warns, urging explicit configurations. HTTP/2&#8217;s prioritization API is deprecated due to poor ecosystem support. Also stabilized: assert.partialDeepStrictEqual(), a handy utility for partial object testing.</p><h4><strong>SVGO Continues to Optimize the Web</strong></h4><p><a href="https://svgo.dev/docs/introduction/">SVGO </a>remains a trusted tool for minimizing SVG file sizes without affecting rendering. Whether via CLI or Node.js API, SVGO strips away unnecessary metadata and default values. It's widely integrated into tools like PostCSS, webpack, and Docusaurus, helping teams deliver lighter and faster web experiences by default.</p><div><hr></div><p>And that's it for the forty-first issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[ESLint and Prettier are dead, HUGE update to JSON modules, 9 new JavaScript features, and more - Week #40]]></title><description><![CDATA[Today, we&#8217;ll be talking about Biome 2.0, the ESLint and Prettier killer with type-aware linting, a big update to JSON modules, 9 new updates to JavaScript from ES2025, and more.]]></description><link>https://thisweekinjavascript.com/p/eslint-and-prettier-are-dead-huge</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/eslint-and-prettier-are-dead-huge</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 22 Jun 2025 17:01:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9effba20-6df9-4ce9-ae5f-359a6a82228b_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;ll be lookin into Biome's game-changing v2 release, celebrate the baseline availability of JSON modules across modern browsers, explore Astro's move toward dynamic content, and review some exciting tool releases from Hono, MockRTC, and more.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8ab4a70debc6559e778bd63be4&quot;,&quot;title&quot;:&quot;ESLint and Prettier are dead, HUGE update to JSON modules, 9 new JavaScript features, and more EP40 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/4tIKiYhGNQmLoAtwyB5eSM&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/4tIKiYhGNQmLoAtwyB5eSM" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Biome v2 is coming for ESLint and Prettier</strong></h3><p><strong><a href="https://biomejs.dev/blog/biome-v2/">Biome v2</a></strong><a href="https://biomejs.dev/blog/biome-v2/">,</a><strong><a href="https://biomejs.dev/blog/biome-v2/"> codenamed Biotype</a></strong><a href="https://biomejs.dev/blog/biome-v2/">,</a> is officially out and it's big news. For the first time, a JavaScript and TypeScript linter can offer type-aware rules without relying on the TypeScript compiler. This reduces the need for TypeScript as a dependency, improving performance while preserving advanced linting capabilities.</p><p>One standout feature is the noFloatingPromises rule, which already detects 75% of the issues caught by typescript-eslint, but at a fraction of the performance cost. This is powered by Biome's newly introduced multi-file analysis and custom type inference engine.</p><p>Biome 2.0 also introduces Assist actions, such as import organization and attribute sorting, without diagnostics. Support for monorepos is now significantly better with nested config files, and a new HTML formatter (still experimental) can now handle .html files, bringing Biome closer to supporting Vue and Svelte templates in the future.</p><p>Migrating is simple with a built-in <code>migrate</code> command:</p><pre><code>npm install --save-dev --save-exact @biomejs/biome

npx @biomejs/biome migrate --write</code></pre><p>With Vercel backing the type inference work, Biome is signaling its intent to compete seriously with ESLint and Prettier.</p><div><hr></div><h2><strong>JSON Module Scripts Are Now Baseline in All Major Browsers</strong></h2><p><strong><a href="https://web.dev/blog/json-imports-baseline-newly-available">The long-requested feature to import JSON</a></strong> as a module is now finally supported across all modern browsers, enabled via import attributes. This marks a big step for standard module behavior on the web, making it easier than ever to work with structured data directly inside JavaScript.</p><p>Instead of fetching and parsing JSON manually, you can now write:</p><p>import data from './foo.json' with { type: 'json' };</p><p>This feature comes from the Import Attributes proposal, which enables passing metadata alongside imports to tell the JavaScript engine how to treat the file. It was split from the original proposal into a separate track to speed up adoption, and now JSON modules are the first to become baseline.</p><p>Security concerns around MIME type mismatches led to this explicit declaration approach, ensuring that modules like JSON or CSS don't execute arbitrary code. Future extensions may include support for CSS and HTML modules using the same mechanism. Dynamic imports and re-exports also support the new syntax:</p><pre><code>import("./config.json", { with: { type: "json" } })</code></pre><p>This change enhances interoperability and simplifies frontend workflows by aligning the module system more closely with what developers expect from modern toolchains like Vite and Webpack.</p><div><hr></div><h3><strong>9 New JavaScript Features in ES2025</strong></h3><p>ES2025 introduces nine powerful JavaScript features that streamline data manipulation, regular expressions, module imports, and numerical operations. Here&#8217;s a quick breakdown of what&#8217;s coming:</p><p><strong>1. RegExp.escape()</strong> - A new static method to safely escape user-inputted strings for use inside regular expressions.</p><pre><code>const escaped = RegExp.escape("Hello.");

const re = new RegExp(escaped, 'g');</code></pre><p><strong>2. Float16Array</strong> - A new typed array that enables 16-bit floating-point operations. Perfect for GPU work, color processing, and memory-sensitive applications.</p><p><strong>3. Promise.try()</strong> - A more ergonomic way to safely wrap sync or async functions and handle errors immediately.</p><pre><code>Promise.try(() =&gt; mightThrow()).then(...).catch(...);</code></pre><p><strong>4. Iterator Helpers</strong> - Additions like <code>.map()</code>, <code>.filter()</code>, <code>.reduce()</code>, <code>.toArray()</code> on native iterators make them much more powerful and array-like.</p><p><strong>5. JSON Modules</strong> - Now standardized and handled via import attributes, allowing JSON imports to behave predictably and securely.</p><p><strong>6. Import Attributes</strong> - A syntax improvement to pass metadata along with module imports, like the type of file being imported.</p><pre><code>import data from "./file.json" with { type: "json" };</code></pre><p><strong>7. RegExp Pattern Modifiers</strong> - Support for enabling or disabling regex flags inline within subpatterns.</p><pre><code>const re = /^(?i:[a-z])[a-z]$/;</code></pre><p><strong>8. New Set Methods</strong> - Mathematical operations like <code>.union()</code>, <code>.intersection()</code>, <code>.difference()</code>, and <code>.isSubsetOf()</code> bring power-user capabilities to sets.</p><p><strong>9. Duplicate Named Capturing Groups</strong> - JavaScript will now support using the same named capture group in multiple parts of a pattern without throwing an error.</p><p>These improvements make JavaScript more powerful and expressive for data-heavy, UI-rich, and performance-sensitive applications.</p><div><hr></div><h3><strong>Astro 5.10: Live Content Collections and Stable Responsive Images</strong></h3><p><strong><a href="https://astro.build/blog/astro-5100/">Astro 5.10</a></strong> ships with an exciting new experimental feature: live content collections. Unlike static content that gets compiled at build time, live collections fetch data at runtime. This means your content can now reflect real-time updates, user preferences, or dynamic filters.</p><p>This feature is ideal for sites where data changes frequently or is user-specific. Instead of rebuilding your site for every change, live collections let you serve fresh content on demand, improving flexibility without sacrificing performance when static data is sufficient.</p><p>Also now stable are Astro's responsive images. These automatically generate optimized image variants and srcsets, helping you reduce layout shifts and improve Core Web Vitals. This is especially useful for performance-focused builds and image-heavy layouts.</p><p>Additional updates include CSP improvements, a customizable Cloudflare Workers entrypoint, and enhanced error handling for live content collections using predictable result objects.</p><div><hr></div><h3><strong>Bun v1.2.16: File Routing and Memory Leak Fixes </strong></h3><p><strong><a href="https://bun.sh/blog/bun-v1.2.16">Bun 1.2.16</a></strong> introduces support for returning files directly in route handlers using Bun.serve. This allows developers to easily serve static files without manually reading or buffering them.</p><p>The update includes 73 bugfixes, memory leak patches, and over 100 additional Node.js compatibility tests. Notably, memory leaks in N-API handle scopes and piped stdio from Bun.spawn have been fixed, improving stability in long-running processes. A new hashing API, Bun.hash.rapidhash, also debuts, promising faster hash computations.</p><p>Additional updates include support for vm.SyntheticModule, HTTPParser bindings, and improvements to the bun outdated command, making Bun more versatile for modern web app workflows.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><h4><strong>LogTape: Structured Logging Across All Runtimes</strong></h4><p><strong><a href="https://hackers.pub/@hongminhee/2025/logtape-0-12">LogTape</a></strong> is a zero-dependency logging library that works seamlessly in Node, Deno, Bun, browsers, and edge runtimes. It supports structured logging, redaction of sensitive data, template literals for log formatting, and a hierarchical category system for fine-grained log levels.</p><p>Its standout feature is the ease of extending it with custom sinks, allowing you to ship logs wherever you want. Whether building a logging solution for a library or a full-stack application, LogTape provides a flexible and consistent API.</p><h4><strong>Hono: A Lightning-Fast Web Framework That Runs Anywhere</strong></h4><p><strong><a href="https://github.com/honojs/hono">Hono</a></strong> is a tiny and ultrafast web framework built on Web Standards. It works everywhere - Cloudflare Workers, Deno, Vercel, Node, Bun, and more.</p><p>With first-class TypeScript support, Hono offers batteries-included middleware, blazing-fast RegExp routing (no linear scans), and a delightful developer experience. Its hono/tiny preset weighs in at under 12kB, making it one of the most lightweight full-featured frameworks out there. If you're building edge-native apps or APIs, Hono is definitely worth a look.</p><h4><strong>MockRTC: Mock and Test WebRTC Like a Pro</strong></h4><p><strong><a href="https://github.com/httptoolkit/mockrtc">MockRTC</a></strong> gives developers the power to intercept and mock WebRTC connections for testing, debugging, or simulating failure conditions. It can capture traffic, inject behaviors, and even hook into live WebRTC sessions without modifying production code.</p><p>You can simulate real peers, automate tests, or create proxy layers for transformation or monitoring. MockRTC's hook functions make integration seamless, and its assertion capabilities help verify edge-case behaviors with confidence. It's a must-have for teams working on real-time communication platforms.</p><div><hr></div><p>And that's it for the fortieth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Apple WWDC 2025's biggest updates, Oxlint is finally stable, pnpm's newest update, and more - Week #39]]></title><description><![CDATA[Today, we'll be talking about the biggest developer updates to Safari 26 from WWDC 2025, Oxlint's (finally) stable release, and pnpm's most important update in a long time.]]></description><link>https://thisweekinjavascript.com/p/apple-wwdc-2025s-biggest-updates</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/apple-wwdc-2025s-biggest-updates</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 15 Jun 2025 17:01:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0bc7b138-9276-4895-ad2e-5ed4ec834eef_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;re unpacking Safari 26 Beta&#8217;s game-changing WebKit updates, pnpm 10.12&#8217;s performance leaps, and Oxlint 1.0&#8217;s blazing-fast linting. As always, we&#8217;ll also talk about some powerful tools to elevate your development workflow.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a7a5aa169a22a09ce8c156b79&quot;,&quot;title&quot;:&quot;Apple WWDC 2025's biggest updates, Oxlint is finally stable, pnpm's newest update, and more EP39 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/5cmQivSTX0TSuChZgiXhnJ&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/5cmQivSTX0TSuChZgiXhnJ" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>WWDC 2025 &amp; Safari 26 Beta: WebKit in SwiftUI, WebGPU, and CSS Anchor Positioning</strong></h3><p><strong><a href="https://webkit.org/blog/16993/news-from-wwdc25-web-technology-coming-this-fall-in-safari-26-beta/">Apple&#8217;s Safari 26 Beta</a></strong>, released this week, introduces 67 new features and 107 improvements, with WebKit stealing the show. The star is a brand-new WebKit API tailored for Swift and SwiftUI, making it seamless to integrate web content into apps across iOS, iPadOS, macOS, and visionOS. Let&#8217;s break down the key additions.</p><h4><strong>WebView and WebPage: A New Era for Web Integration</strong></h4><ul><li><p>The WebView type, a native SwiftUI View, simplifies displaying web content. With just a URL, you can embed a webpage in your app:</p><pre><code>struct ContentView: View {

var body: some View {

WebView(url: URL(string: "https://www.webkit.org"))

}

}</code></pre></li><li><p>WebView supports a suite of view modifiers like webViewScrollPosition, webViewMagnificationGestures, and findNavigator, allowing fine-grained control over the user experience. For advanced use cases, connect WebView to WebPage, a new Observable class designed to manage web content. WebPage enables loading, controlling, and communicating with web content, even without displaying it directly. Its observable properties and functions make reacting to changes effortless, especially in SwiftUI&#8217;s reactive paradigm.<br><br>For example, you can build a dynamic article viewer:</p><pre><code>struct ArticleView: View {

@Environment(ArticleViewModel.self) private var model

var body: some View {

WebView(model.page)

navigationTitle(model.page.title)

}

}</code></pre></li></ul><ul><li><p>The URLSchemeHandler protocol leverages Swift Concurrency to handle custom schemes, enabling local resource loading with an AsyncSequence. Meanwhile, WebPage.NavigationDeciding and WebPage.DialogPresenting protocols let you customize navigation policies and JavaScript dialog presentations, offering unparalleled control over web interactions in your app.</p></li><li><p>This API empowers web developers to leverage their JavaScript and HTML skills to create native Apple apps, bridging the gap between web and native development. Whether you&#8217;re building a news reader or a web-enhanced dashboard, these tools make integration smoother than ever.</p></li></ul><h4><strong>WebGPU: GPU-Powered Computing on the Web</strong></h4><ul><li><p>Safari 26 Beta introduces WebGPU, a JavaScript API that revolutionizes GPU programming. Unlike WebGL, which was built on OpenGL and required heavy translation to modern GPUs, WebGPU maps directly to Apple&#8217;s Metal framework, reducing overhead and boosting performance. It supports graphics rendering and introduces compute shaders for general-purpose GPU computations&#8212;a first for the web.</p></li><li><p>WebGPU uses the WebGPU Shading Language (WGSL, pronounced &#8220;wig-sill&#8221;), a safe, verifiable language designed for the web. WGSL avoids risks like unchecked bounds accesses, ensuring security without sacrificing power. After over a year in Safari Technology Preview, WebGPU is now stable in Safari 26 Beta across Apple platforms.</p></li><li><p>Frameworks like Babylon.js, Three.js, Unity, and Transformers.js already support WebGPU, delivering stunning visuals and complex computations in the browser. For developers, WebGPU&#8217;s streamlined validation minimizes performance hits, approaching native app speeds.</p></li></ul><h4><strong>CSS Anchor Positioning: Smarter Layouts</strong></h4><ul><li><p>Anchor positioning, a new CSS layout mechanism, simplifies anchoring elements to one another. Paired with the popover attribute (introduced in Safari 17.0), it&#8217;s perfect for responsive menus, tooltips, and overlays. The position-area syntax makes layouts intuitive:</p><pre><code>.thing-that-gets-anchored-to {

anchor-name: --profile-button;

}

.item-that-pops-up {

position-anchor: --profile-button;

position: absolute;

top: anchor(bottom);

left: anchor(left);

}</code></pre></li><li><p>The anchor() function, combined with absolute positioning, offers pixel-perfect control, ideal for animated anchors or multi-anchor layouts. This feature enhances the web&#8217;s layout capabilities, making complex designs more accessible. Safari 26 Beta&#8217;s CSS improvements cement its position as a developer-friendly browser.</p></li></ul><div><hr></div><h2><strong>pnpm 10.12: Near-Instant Installs and Enhanced Catalogs</strong></h2><ul><li><p><strong><a href="https://socket.dev/blog/pnpm-introduces-global-virtual-store-and-expanded-version-catalogs">pnpm 10.12.1</a></strong>, released this week, supercharges JavaScript package management with an experimental global virtual store and a revamped version catalog system. These updates make pnpm a top choice for developers managing monorepos or large projects.</p></li><li><p>The global virtual store slashes install times by linking dependencies to a shared &lt;store-path&gt;/links directory, where packages are stored in folders named after their dependency graph hashes. This NixOS-inspired approach lets multiple projects reuse dependencies without redownloading, delivering near-instant installs on warm caches. Enable it with:</p><pre><code>pnpm config -g set enable-global-virtual-store true

Or add to pnpm-workspace.yaml:

enableGlobalVirtualStore: true</code></pre></li><li><p>pnpm auto-disables this in CI environments to avoid slowdowns on cold caches. A YouTube demo shows the speed, and PR #8190 details the tech. Zoltan Kochan, pnpm&#8217;s maintainer, highlights its graph-based isolation for robust performance.</p></li><li><p>The version catalog system gains flexibility with catalogMode settings: strict enforces catalog versions, prefer allows fallbacks, and manual (default) skips auto-additions. New CLI options --save-catalog and --save-catalog-name=&lt;name&gt; save dependencies to pnpm-workspace.yaml and package.json with catalog: specifiers (PR #9425). The pnpm update command now supports catalog protocols, streamlining dependency updates.</p></li><li><p>Minor tweaks include semantic version sorting for pnpm patch, clearer error messages for mismatched specifiers (PR #9598), and a ci setting to flag CI environments. A semi-breaking change updates side-effects cache keys, requiring a new cache (PR #9605). Check the release notes for more.</p></li></ul><div><hr></div><h3><strong>Oxlint 1.0: Redefining Linting Performance</strong></h3><ul><li><p><strong><a href="https://voidzero.dev/posts/announcing-oxlint-1-stable">Oxlint 1.0</a></strong><a href="https://voidzero.dev/posts/announcing-oxlint-1-stable">,</a> the first stable release of the Rust-powered JavaScript and TypeScript linter, delivers 50&#8211;100x faster performance than ESLint. Supporting over 500 rules with zero-config setup, it&#8217;s adopted by Shopify, Airbnb, and Mercedes-Benz, transforming linting workflows.</p></li><li><p>Oxlint processes 10,000 files per second, linting 264,925 files in 22.5 seconds on 10 threads. Airbnb lints 126,000+ files in 7 seconds with rules like no-barrel-file, where ESLint fails. Mercedes-Benz cut lint times by 71&#8211;97%, and Shopify uses it in its admin console. Benchmarks show Oxlint at 615.3ms (multi-thread) versus ESLint&#8217;s 33.481s. Open-source projects like Bun and Preact also benefit.<br><br>Start linting with:</p><pre><code>npx oxlint@latest</code></pre></li><li><p>Customize via .oxlintrc.json, based on ESLint v8&#8217;s flat config. The oxlint-migrate tool converts ESLint configs, and eslint-plugin-oxlint supports hybrid setups. Rules include ESLint, TypeScript-ESLint, and plugins like eslint-plugin-react, plus unique Oxlint rules like bad-comparison-sequence. Editor support covers VS Code, IntelliJ, and Zed. See the installation guide.</p></li><li><p>Oxlint&#8217;s semantic versioning ensures stability, with minor releases adding rules that may affect CI. Review the versioning guide. With maintainer Cameron and a growing team, Oxlint is set to evolve rapidly.</p></li></ul><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><h4><strong>Jest 30: Faster, Leaner, Better</strong></h4><p><strong><a href="https://jestjs.io/blog/2025/06/04/jest-30">Jest 30</a></strong> brings faster test runs and lower memory usage, with up to 37% speed improvements and 77% less memory in large projects. It drops Node 14/16/19/21 support, upgrades jsdom to v26, and requires TypeScript 5.4+. New features include expect.arrayOf for array validation, test.each with a %$ placeholder, and jest.advanceTimersToNextFrame() for animation testing. Configurable retries and jest.unstable_unmockModule() enhance control. Check the migration guide for breaking changes.</p><h4><strong>Orange ORM: Seamless Database Integration</strong></h4><p><strong><a href="https://orange-orm.io/">Orange ORM</a></strong> is a powerful Object-Relational Mapper for Node.js, Bun, and Deno, supporting TypeScript and JavaScript. Its intuitive querying and Active Record pattern simplify database interactions without code generation. It works in browsers via an Express.js plugin, ensuring secure credential handling. Ideal for developers needing flexible, typed database solutions.</p><h4><strong>Vue Equipment: Frontend Toolkit</strong></h4><p><strong><a href="https://www.vue.equipment/">Vue Equipment</a></strong> offers unstyled, typed plugins and composables for Vue and Nuxt apps. With a clean API, it reduces complexity using CSS variables, grouped options, and exposed state via data attributes. It&#8217;s perfect for developers building modern web apps without reinventing common solutions.</p><h4><strong>darkmodejs: Easy Dark Mode</strong></h4><p><strong><a href="https://github.com/Assortment/darkmodejs">darkmodejs</a></strong> simplifies dark mode on the web using the prefers-color-scheme media query and matchMedia API. It supports macOS 10.14+, iOS 13+, and Windows 10+, with v2+ using addEventListener for modern compatibility. A lightweight utility for theme-aware sites.</p><div><hr></div><p>And that's it for the thirty-ninth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Forget VS Code, Cursor 1.0 is here, This JavaScript bundler is FAST AF, new JavaScript features, and more - Week #38]]></title><description><![CDATA[Today, we'll be talking about Cursor 1.0, the finally stable version of the AI code editor, A really fast JavaScript bundler called Rolldown, and new JavaScript features from TC39.]]></description><link>https://thisweekinjavascript.com/p/forget-vs-code-cursor-10-is-here</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/forget-vs-code-cursor-10-is-here</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 08 Jun 2025 17:23:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/39d4fece-55de-4a5f-9184-c012fa344046_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;re hyped about Cursor 1.0&#8217;s release and how it might make VS Code obsolete, Rolldown&#8217;s lightning-fast Vite builds, TC39&#8217;s bold JavaScript advancements, and WebStatus.dev&#8217;s game-changing web insights. As always, we&#8217;ll also talk about some powerful tools to elevate your development workflow.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a9464594896bb37d8aa3ab050&quot;,&quot;title&quot;:&quot;Forget VS Code, Cursor 1.0 is here, This JavaScript bundler is FAST AF, new JavaScript features, and more EP38 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/5dYkLXvrnemb7j5dlq8QVK&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/5dYkLXvrnemb7j5dlq8QVK" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Forget VS Code, Cursor 1.0 Is Finally Here</strong></h3><p><strong><a href="https://www.cursor.com/changelog">Cursor 1.0</a></strong> has landed, bringing AI-driven coding to new heights with BugBot for automated pull request reviews, Background Agent for remote coding tasks, Memories for contextual intelligence, Jupyter Notebook integration, and one-click MCP setup. It&#8217;s a must-have for JavaScript devs looking to automate and accelerate their workflows.</p><ul><li><p>BugBot enhances code quality by automatically reviewing pull requests on GitHub, identifying bugs and potential issues, and providing detailed comments. It includes a &#8220;Fix in Cursor&#8221; button that directs you to your editor with a pre-filled prompt to address the issue.</p></li><li><p>Background Agent enables developers to execute remote coding tasks efficiently. You can activate it using Cmd/Ctrl+E or the cloud icon in the chat interface. If you enable privacy mode, Cursor will soon provide full support to ensure secure workflows. Developers who adopted Background Agent early praised its efficiency, and now all users can utilize it to generate React components or optimize Node.js APIs.</p></li><li><p>Memories, currently in beta, transforms how Cursor understands your projects by storing project-specific facts for each user and project. You can manage these facts through Settings &#8594; Rules, allowing Cursor to recall details like your preferred state management approach, which results in more accurate suggestions.</p></li><li><p>For data science professionals, Cursor&#8217;s Jupyter Notebook support allows the Agent to create and edit multiple cells directly, significantly improving productivity. This feature, available only with Sonnet models, makes Cursor ideal for crafting JavaScript-driven data visualizations or machine learning pipelines.</p></li><li><p>Cursor simplifies server authentication with one-click MCP installations and OAuth support. A curated list of official MCP servers is available at <a href="http://docs.cursor.com">docs.cursor.com</a>. The chat interface now supports richer responses, the redesigned Settings and Dashboard provide a polished user experience, offering analytics on tool and model usage, which helps teams optimize their workflows.</p></li></ul><div><hr></div><h2><strong>This JavaScript Bundler Is FAST AF</strong></h2><p><strong><a href="https://voidzero.dev/posts/announcing-rolldown-vite">Rolldown, a next-generation bundler built in Rust</a></strong>, is revolutionizing the core of Vite. The rolldown-vite package serves as a drop-in replacement for Vite, delivering exceptional performance improvements for JavaScript applications. As a technical preview, Rolldown leverages Oxc, a high-performance JavaScript toolkit that handles parsing, transforming, resolving, and minifying, setting new benchmarks for speed and efficiency.</p><ul><li><p>By replacing Vite&#8217;s dependency on esbuild with Oxc, Rolldown achieves build time reductions ranging from 3 to 16 times faster and reduces memory usage by up to one hundred times. For example GitLab&#8217;s build time decreased from 2.5 minutes to 40 seconds, Excalidraw&#8217;s from 22.9 seconds to 1.4 seconds, Appwrite&#8217;s from over 12 minutes to 3 minutes, and Particl&#8217;s from over a minute to 6 seconds, outperforming Vite by nearly ten times and Next.js by twenty-nine times. Even this blog post, built using VitePress with Rolldown Vite, completed in just 1.8 seconds on Netlify. To integrate Rolldown Vite, you can alias Vite in your package.json:</p></li></ul><pre><code>{

"dependencies": {

"vite": "npm:rolldown-vite@latest"

}

}</code></pre><ul><li><p>For projects using VitePress or meta-frameworks, you can use overrides to replace vite with rolldown-vite. Most Vite plugins and frameworks are compatible, though some incompatibilities exist, which you can review in the migration guide. As a standalone package, rolldown-vite allows rapid iteration, though patch versions may introduce breaking changes, which are documented in its changelog. Once stabilized, Rolldown will integrate into Vite&#8217;s main codebase, phasing out the separate package.</p></li><li><p>Rolldown Vite is a must-try for developers building performance-critical JavaScript applications.</p></li></ul><div><hr></div><h2><strong>Upcoming JavaScript Features From TC39</strong></h2><p><strong><a href="https://socket.dev/blog/tc39-advances-9-proposals">The 108th TC39 meeting advanced nine JavaScript proposals</a></strong>, with three,Array.fromAsync, Error.isError, and Explicit Resource Management,reaching Stage 4, positioning them for inclusion in the ECMAScript specification. These developments enhance JavaScript&#8217;s capabilities for asynchronous workflows and resource management.</p><ul><li><p>The Array.fromAsync proposal, simplifies the handling of asynchronous iterables, eliminating the need for manual for await...of loops. It serves as a native alternative to libraries like it-all, which sees 50,000 weekly downloads, and supports asynchronous iterables, synchronous iterables with promises, and array-like objects. </p><p></p><p>For example:</p></li></ul><pre><code>async function* asyncGen(n) { for (let i = 0; i &lt; n; i++) yield i * 2; }

const arr = await Array.fromAsync(asyncGen(4)); // [0, 2, 4, 6]</code></pre><p>This feature is particularly valuable for unit tests, command-line applications, or streaming data processing in Node.js, offering optional mapfn and thisArg parameters for added flexibility.</p><ul><li><p>The Error.isError proposal, introduces a reliable method for detecting errors across different realms, resolving inconsistencies with instanceof Error in environments like iframes or Node.js virtual machines. This improvement is crucial for debugging, serialization tasks in platforms like RunKit, or structured cloning operations.</p></li><li><p>The Explicit Resource Management proposal, introduces using and await using declarations, supported by DisposableStack and AsyncDisposableStack, to ensure deterministic cleanup of resources such as file handles, streams, or locks. Inspired by C#&#8217;s using and Python&#8217;s with statements, it reduces boilerplate code significantly.</p><p></p><p>For instance:</p></li></ul><pre><code>using handle = acquireFileHandle(); // Automatically disposes at block end

const stack = new DisposableStack(); // Manages multiple resources

stack.use(resource1); stack.use(resource2); // Ensures reverse-order cleanup</code></pre><ul><li><p>This approach mitigates common errors, such as omitting try/finally blocks or mismanaging multiple resources, in Node.js applications that handle files or streams. These advancements collectively empower JavaScript developers to build robust asynchronous APIs and resource-intensive systems.</p></li></ul><div><hr></div><h2><strong>The Ultimate Web Platform Dashboard</strong></h2><p><strong><a href="https://webstatus.dev/">WebStatus.dev</a></strong> has undergone a massive evolution, now tracking over 1000 web platform features,nearly 100% coverage,with mobile browser data, usage timelines, and deep insights to guide JavaScript apps toward Baseline interoperability. It&#8217;s an indispensable tool for front-end developers.</p><ul><li><p>Sourced from the W3C&#8217;s web-features project, involving all major browser vendors, WebStatus.dev provides Chrome usage data since 2012, complete with adoption timelines for nearly all features.</p></li><li><p>Mobile browser support highlights Baseline gaps, enabling smarter progressive enhancement strategies for React or Vue apps. Powerful sorting and filtering let you query specific scenarios, like API landing in Safari in the last 12 months that were already in Chrome and Firefox, sorted by usage. Shareable dashboards streamline team workflows, letting you create custom views for Web UI APIs or project-specific needs.</p></li><li><p>This helps devs like you plan adoption of cutting-edge APIs. WebStatus is a must for building cross-browser JavaScript apps with confidence.</p></li></ul><div><hr></div><h2><strong>Tools &amp; Releases You Should Know About</strong></h2><ul><li><p><strong><a href="https://blog.platformatic.dev/seamlessly-blend-php-with-nodejs">@platformatic/php-node</a></strong>: This innovative Node.js runtime seamlessly integrates PHP into your Node.js applications, allowing PHP to function as a high-performance request processor. Developed using Rust and napi.rs, it employs a language-agnostic lang_handler system to route requests to multi-threaded PHP workers within Node.js&#8217;s worker pool, significantly reducing latency by eliminating network calls.This tool is perfect for developers who seek a unified development environment for JavaScript and PHP, simplifying workflows and boosting application performance.</p></li><li><p><strong><a href="https://github.com/wooorm/starry-night">Starry Night v3.8</a></strong>: This open-source syntax highlighter replicates the functionality of GitHub&#8217;s closed-source PrettyLights, supporting over 600 programming languages with TextMate grammars, which deliver exceptional quality, as used in editors like VS Code, SublimeText, and Atom. Starry Night generates abstract syntax trees (ASTs) for versatile rendering, such as ANSI sequences for command-line interfaces or React/Preact for virtual DOM applications, and supports CSS-driven themes for effortless dark mode integration. Unlike shiki, which uses inline styles, Starry Night&#8217;s CSS class-based approach simplifies theming, making it a top choice for developers building code-rich platforms.</p></li><li><p><strong><a href="https://www.ngx-vflow.org/getting-started/what-is-ngx-vflow">ngx-vflow</a></strong>: This Angular library empowers developers to create node-based applications, ranging from static diagrams to fully interactive visual editors. Built on Angular signals for outstanding performance, ngx-vflow simplifies complex interactions like dragging, zooming, and curve rendering through an intuitive API. Whether you are visualizing JavaScript application architectures or debugging Angular-based pipelines, ngx-vflow provides robust, scalable solutions for building interactive development tools.</p></li><li><p><strong><a href="https://docusaurus.io/blog/releases/3.8">Docusaurus 3.8</a></strong><a href="https://docusaurus.io/blog/releases/3.8">:</a> This powerful React-based documentation platform boosts build performance with Docusaurus Faster, leveraging Rspack&#8217;s persistent cache and Node.js worker threads for 2&#8211;5x faster rebuilds and 2x quicker static site generation. New Future Flags prepare your site for Docusaurus 4, while optimizations like SVG sprites and macOS startup tweaks enhance efficiency. Perfect for JavaScript devs crafting sleek, high-performance documentation sites for React or Node.js projects.</p></li></ul><div><hr></div><p>And that's it for the thirty-eighth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Angular v20 is 35% faster, Remix v3 is breaking up with React, and the future of JavaScript - Week #37]]></title><description><![CDATA[Today, we'll be talking about the newest Angular v20 features in detail, Remix v3 finally ditching React, and more.]]></description><link>https://thisweekinjavascript.com/p/angular-v20-is-35-faster-remix-v3</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/angular-v20-is-35-faster-remix-v3</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 01 Jun 2025 17:00:57 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7291e2d3-b000-487d-840b-57db1235d0c4_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;re hyped about Angular v20&#8217;s lightning-fast features, Remix&#8217;s game-changing framework overhaul, and the future of JavaScript. We&#8217;ve also got an updated list of tools supercharge your development workflow, as always</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a9324c5d4009fc1d242894585&quot;,&quot;title&quot;:&quot;Angular v20 is 35% faster, Remix v3 is breaking up with React, and more EP37 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/4dtzBQhUCTDB7zDqphaPZ4&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/4dtzBQhUCTDB7zDqphaPZ4" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Angular v20 Is Now 35% Faster</strong></h3><p>At Google I/O on May 21, 2025, the Angular team announced <strong><a href="https://blog.angular.dev/announcing-angular-v20-b5c9c06cf301">Angular v20</a></strong>, scheduled for release on May 29. This version significantly enhances server-side rendering (SSR), signals, and authoring capabilities, providing an improved developer experience and optimized application performance.</p><h4><strong>Zoneless Angular (Developer Preview)</strong></h4><ul><li><p><strong>Zone.js is now optional:</strong> Angular supports running without Zone.js by leveraging signals for precise change detection.</p></li><li><p><strong>Efficient UI updates:</strong> Developers can use markForChange or signal state awareness to trigger targeted change detection.</p></li><li><p><strong>Example of enabling zoneless mode:</strong></p><pre><code>typescript

bootstrapApplication(App, {

zoneless: true

});

Manual change detection invocation:

typescript

import { markForChange } from '@angular/core';

markForChange();</code></pre></li></ul><div><hr></div><h4><strong>Signal Ecosystem Enhancements</strong></h4><ul><li><p><strong>Signals and Computed are stable:</strong> Recommended for reactive state management.</p></li><li><p><strong>LinkedSignal (stable in v20):</strong> Supports writable signals with access to previous state values.</p><pre><code>typescript

const count = signal(0);

const double = computed(() =&gt; count() * 2);

const history = linkedSignal([], (prev, next) =&gt; [...prev, next]);</code></pre></li></ul><ul><li><p><strong>Resource and HTTPResource:</strong> Simplify asynchronous data fetching; StreamingResource supports real-time UI updates.</p><pre><code>typescript

const user = resource(async () =&gt; await fetchUser());

const posts = httpResource('/api/posts');</code></pre></li></ul><h4><strong>Server-Side Rendering (SSR) Improvements</strong></h4><ul><li><p><strong>Route-level render mode APIs:</strong> Enable hybrid rendering strategies, allowing SSR, static site generation, and client-side rendering on a per-route basis.</p><pre><code>typescript

export const routes: Routes = [

{ path: '', component: HomeComponent, renderMode: 'ssr' },

{ path: 'about', component: AboutComponent, renderMode: 'client' }

];</code></pre></li></ul><ul><li><p><strong>Incremental hydration:</strong> Allows deferring component hydration using Angular&#8217;s defer block, reducing initial JavaScript bundle size.</p></li><li><p><strong>Event replay:</strong> Captures and replays user interactions during JavaScript loading to prevent missed events.</p></li></ul><h4><strong>Authoring Experience Improvements</strong></h4><ul><li><p><strong>Standalone components as the default: </strong>Simplifies development by reducing reliance on NgModules.</p></li><li><p><strong>Introduction of let syntax:</strong> Provides a cleaner way to declare template variables.</p><pre><code>xml

&lt;ng-container *let="user of userSignal()"&gt;

{{ user.name }}

&lt;/ng-container&gt;</code></pre></li></ul><ul><li><p><strong>Untagged literals for dynamic styling:</strong> Enables direct binding of dynamic class and style objects.</p><pre><code>xml

&lt;div [class]="{ active: isActive }"&gt;&lt;/div&gt;</code></pre></li><li><p><strong>Hot Module Replacement (HMR):</strong> Maintains application state during development reloads, enhancing developer productivity.</p></li></ul><h4><strong>New Integrations and Tooling</strong></h4><ul><li><p><strong>Experimental Vite support for testing:</strong> Offers faster and modernized development workflows.</p></li><li><p><strong>Custom Angular track in Chrome DevTools:</strong> Flame charts now include color-coded frames for Angular change detection and TypeScript execution.</p></li><li><p><strong>Firebase App Hosting:</strong> Provides streamlined deployment for SSR applications.</p></li></ul><h4><strong>Additional Highlights</strong></h4><ul><li><p><strong>AI portal launch:</strong> <strong><a href="https://angular.dev/ai">angular.dev/ai</a></strong> introduces AI-driven workflows to assist Angular developers.</p></li></ul><p>Angular v20 delivers substantial improvements across SSR, reactive programming with signals, authoring, and developer tooling, reinforcing its position as a robust framework for enterprise-grade applications.</p><div><hr></div><h2><strong>Remix v3 And The Breakup With React</strong></h2><p><strong><a href="https://remix.run/blog/wake-up-remix">Remix v2</a></strong> powers React Router v7 with robust server-side rendering capabilities, enabling fast, scalable applications used by Shopify, GitHub, and over 11 million projects worldwide<a href="https://remix.run/blog/wake-up-remix">.</a> Its architecture is well suited for e-commerce platforms, blogs, and other content-driven sites, providing a reliable full-stack React framework experience.</p><p>Following the close integration and eventual merging of Remix into React Router v7, as detailed in the <strong><a href="https://remix.run/blog/merging-remix-and-react-router">merging announcement</a></strong>, Remix v2 had become a thin wrapper around React Router. This consolidation allowed React Router to inherit many of Remix&#8217;s strengths, including server-side rendering and React Server Components (RSC) support, creating a stable, battle-tested platform with long-term support.</p><p>Remix v3 marks a significant departure from this model. It replaces React with the lightweight Preact library and embraces a model-first, low-dependency, web API-centric approach. This reimagining minimizes reliance on heavy build tools by favoring runtime execution, making it ideal for AI-driven applications, lightweight websites, and modern web development workflows.</p><h4><strong>Key features of Remix v3</strong></h4><ul><li><p><strong>Web API-Centric Design:</strong> Leveraging web standards and native browser APIs reduces complexity and shortens the learning curve, allowing developers to focus on building rather than framework-specific abstractions.</p></li><li><p><strong>Minimal Dependencies:</strong> Adhering to a &#8220;no dependencies&#8221; philosophy, Remix v3 frees developers from external package roadmaps and increases project control.</p></li><li><p><strong>Modular Architecture:</strong> Bundled components such as database connectors and a revived Reach UI library simplify setup and customization. Single-purpose modules enable easy swapping or upgrading of parts.</p></li><li><p><strong>Composability and Flexibility:</strong> The framework encourages mixing and matching tools, providing a scalable developer experience suitable for both small and large projects.</p></li><li><p><strong>Performance and Reliability:</strong> Google&#8217;s use of Preact underscores the framework&#8217;s stability and efficiency. Runtime optimizations and reduced bundle sizes contribute to faster load times and smoother user experiences.</p></li><li><p><strong>Developer Experience:</strong> Drawing from years of web-building expertise, Remix v3 focuses on simplicity, clarity, and productivity, aiming to make development intuitive and enjoyable.</p></li></ul><p>Overall, Remix v3 represents a bold evolution toward leaner, faster web applications by reimagining the framework&#8217;s foundations around modern web standards and minimalism. It is poised to reshape how developers build scalable, high-performance web apps with a fresh, streamlined approach.</p><div><hr></div><h2><strong>The BIGGEST JavaScript Change?</strong></h2><p>The Temporal API, a modern replacement for JavaScript&#8217;s legacy Date object, has been in development for several years and is now enabled by default in Firefox 139, with broader runtime support expected soon. This API addresses long-standing issues with date and time handling, offering a more reliable, precise, and developer-friendly approach.</p><h4><strong>Key improvements and features</strong></h4><ul><li><p><strong>Comprehensive Time Zone Support:</strong> Unlike the traditional Date object, Temporal supports full IANA time zones, enabling accurate handling of local times worldwide.</p></li><li><p><strong>Immutability: </strong>All Temporal objects are immutable, preventing unintended side effects and making date/time manipulation safer.</p></li><li><p><strong>Consistent Parsing and Formatting:</strong> Strict adherence to ISO 8601 standards ensures reliable parsing and serialization across environments.</p></li><li><p><strong>Fine Precision and Extended Range:</strong> Supports nanosecond precision and a wider range of dates, suitable for high-precision and historical applications.</p></li><li><p><strong>Clear Separation of Date/Time Concepts:</strong> Multiple specialized classes such as PlainDate, PlainTime, PlainDateTime, ZonedDateTime, and Duration allow developers to work precisely with the data they need without confusion.</p></li></ul><h4><strong>Example</strong></h4><pre><code>typescript

const date = Temporal.PlainDate.from("2025-05-23");

const oneWeekLater = date.add({ days: 7 }); // 2025-05-30

const dt = Temporal.PlainDateTime.from("2025-12-31T23:30");

const nextHour = dt.add({ hours: 1 }); // 2026-01-01T00:30</code></pre><p>The Temporal API&#8217;s introduction marks a significant evolution in JavaScript date/time handling, eliminating many pitfalls of the old Date object such as DST bugs, mutability, and inconsistent parsing. Its rollout in Firefox 139 signals readiness for wider adoption, promising developers a robust, standardized toolset for all date and time needs in modern web applications.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let&#8217;s speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://reactjust.dev/">ReactJust.dev</a></strong> is a minimal, zero-config React starter kit focused on simplicity and performance. It provides a clean, lightweight foundation with minimal dependencies, enabling fast project setup without complex tooling. Designed for developers who want to quickly bootstrap React apps, it supports modern React features and best practices out of the box. Ideal for prototypes, small projects, or learning React fundamentals, ReactJust.dev streamlines development by eliminating boilerplate and unnecessary complexity, helping you focus on building your app efficiently.</p></li><li><p><strong><a href="https://bun.sh/blog/bun-v1.2.15">Bun v1.2.15</a></strong>: Delivers bun audit to catch dependency risks and bun pm view for package insights, fixing 11 issues with 261 upvotes. New BUN_OPTIONS and node:vm support enhance Node.js compatibility, ideal for secure APIs or microservices.</p></li><li><p><strong><a href="https://github.com/vadimdemedes/ink">Ink 6.0</a></strong>: Brings React-style UI building to command-line apps with Flexbox layouts, using Yoga for CSS-like designs. It&#8217;s perfect for crafting interactive CLI tools or scripts, with full React feature support.</p></li><li><p><strong><a href="https://jspm.org/jspm-4.0-release">JSPM 4.0</a></strong>: Simplifies ESM workflows with import maps, TypeScript stripping, and zero-config builds for web-standard apps. Its focus on native modules makes debugging easy and keeps projects future-proof.</p></li><li><p><strong><a href="https://github.com/faker-js/faker">Faker 9.8</a></strong>: Creates realistic fake data like names, addresses, and crypto details across 70+ locales for testing or prototyping. From job titles to product names, it&#8217;s a quick way to mock up robust datasets.</p></li></ul><div><hr></div><p>And that's it for the thirty-seventh issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Angular v20's big launch at Google I/O 2025, Claude Sonnet and Opus 4, TypeScript’s 10x Speed Boost, and more - Week #36]]></title><description><![CDATA[Today, we'll be talking about the newest Angular v20 release from Google I/O 2025, Claude Sonnet and Opus 4's coding capabilities, and TypeScript's new compiler.]]></description><link>https://thisweekinjavascript.com/p/angular-v20s-big-launch-at-google</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/angular-v20s-big-launch-at-google</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 25 May 2025 17:01:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ecd48431-19f2-4228-9556-f62446b0f0b8_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;re buzzing about Angular v20&#8217;s blockbuster reveal at Google I/O, Anthropic&#8217;s Claude 4 revolutionizing coding, TypeScript&#8217;s lightning-fast native compiler, and ESLint&#8217;s v9.0 milestone reflections. Plus, a killer lineup of tools, including Astra and Defuddle, to supercharge your development workflow.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a3e992642bb799ab5bed7c585&quot;,&quot;title&quot;:&quot;This Week in JavaScript&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Podcast&quot;,&quot;url&quot;:&quot;https://open.spotify.com/show/0ntx5KaC3k76TyOxP2V8EW&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/show/0ntx5KaC3k76TyOxP2V8EW" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Angular v20 Previewed at Google I/O 2025</strong></h2><p><strong><a href="https://youtu.be/eIeJmYdYMQo?si=6KsvJG8P-ylxLpbU">At Google I/O on May 21, 2025, the Angular team dropped a bombshell</a></strong>, unveiling Angular v20, set to launch May 29. This release turbocharges server-side rendering (SSR), signals, and authoring, delivering a slicker developer experience and blazing-fast apps.</p><ul><li><p><strong>Zoneless Angular (Developer Preview)</strong>: Ditches Zone.js for precise change detection using signals, slashing unnecessary DOM checks. Use markForChange or signals&#8217; state awareness for targeted updates.</p></li><li><p><strong>Signal Ecosystem Overhaul</strong>: Signal and Computed are now stable, with LinkedSignal (stable in v20) enabling writable, state-dependent signals that access prior states. Resource and HTTPResource streamline async data fetching, with StreamingResource for real-time UI updates.</p></li><li><p><strong>SSR Enhancements</strong>: Route-level render mode APIs allow hybrid rendering (SSR, static site generation, client-side). Incremental hydration defers component hydration via defer blocks, reducing initial bundle sizes. Event replay captures user interactions during JS loading, ensuring no missed clicks.</p></li><li><p><strong>Authoring Improvements</strong>: Standalone components are default, with let syntax for template variables and untagged literals for dynamic class/styling. Hot module replacement (HMR) preserves app state during dev.</p></li><li><p><strong>New Integrations</strong>: Experimental Vite support for testing, a custom Angular track in Chrome DevTools&#8217; flame chart (color-coded for change detection, TypeScript), and Firebase App Hosting for seamless SSR deployments.</p></li></ul><p>Angular v20 is a powerhouse for enterprise apps, with a new AI portal (angular.dev/ai) for LLM-driven workflows. Tune in to the v20 event on May 29 at 9 AM Pacific on YouTube!</p><div><hr></div><h2><strong>Anthropic&#8217;s Claude 4: A Coding Revolution</strong></h2><p><strong><a href="https://www.anthropic.com/news/claude-4">Anthropic unveiled Claude 4 (Opus 4 and Sonnet 4)</a></strong> on May 23, 2025, setting a new bar for coding AI. With 72.5% (Opus) and 72.7% (Sonnet) on SWE-bench, these models power Claude Code and top-tier coding agents, transforming JavaScript workflows.</p><ul><li><p><strong>Opus 4&#8217;s Coding Edge</strong>: Leads with 43.2% on Terminal-bench, excelling in long-running tasks (e.g., 7-hour open-source refactors). Creates &#8220;memory files&#8221; for local file access, boosting task coherence (e.g., generating a Pok&#233;mon &#8220;Navigation Guide&#8221;).</p></li><li><p><strong>Sonnet 4&#8217;s Efficiency</strong>: Balances performance and cost, with enhanced steerability for precise implementations. Reduces navigation errors from 20% to near zero, ideal for multi-file edits and autonomous app development.</p></li><li><p><strong>Agentic Improvements</strong>: 65% less shortcut behavior, with parallel tool execution and memory enhancements. Thinking summaries (using a smaller model) condense long thought processes, with full chains available via Developer Mode.</p></li><li><p><strong>Claude Code SDK</strong>: Now generally available, integrates into VS Code/JetBrains (beta extensions) for inline edits. The SDK enables custom agents, with a GitHub beta for PR feedback and CI error fixes.</p></li><li><p><strong>Use Cases</strong>: Cursor praises Opus 4&#8217;s codebase understanding, Replit lauds multi-file precision, and GitHub integrates Sonnet 4 into Copilot for agentic scenarios.</p></li></ul><p>Claude 4 is a JavaScript developer&#8217;s dream, automating complex tasks with surgical precision.</p><div><hr></div><h2><strong>ECMAScript 2026: The Future of JavaScript</strong></h2><p><strong><a href="https://tc39.es/ecma262/">The ECMAScript 2026 Language Specification</a></strong>, the 17th edition, is shaping up to evolve JavaScript further. Building on ECMAScript 2025&#8217;s pattern matching and JSON module imports, it&#8217;s set to enhance web, server, and embedded apps.</p><ul><li><p><strong>Proposed Features</strong>: New Set methods (union, intersection, difference) for robust data manipulation. Enhanced regex with potential duplicate named capturing groups.</p></li><li><p><strong>Performance Focus</strong>: Optimizations for reactive systems and async operations, building on Promise.try and RegExp.escape from 2025.</p></li><li><p><strong>Ecosystem Impact</strong>: Aims to streamline state management and improve interoperability with frameworks like React and Angular.</p></li></ul><p>ECMAScript 2026 keeps JavaScript at the cutting edge, powering tomorrow&#8217;s apps.</p><div><hr></div><h2><strong>ESLint v9.0.0: Lessons from a Landmark Release</strong></h2><p>On May 21, 2025, Nicholas C. Zakas reflected on <strong><a href="https://eslint.org/blog/2025/05/eslint-v9.0.0-retrospective/">ESLint v9.0&#8217;s April 2024</a></strong> release, which introduced the flat-config system, streamlining linting for JavaScript developers.</p><ul><li><p><strong>Flat-Config System</strong>: Replaces eslintrc with a single eslint.config.js, simplifying rule setups. Supports ESLint#calculateConfigForFile for dynamic configs.</p></li><li><p><strong>New Features</strong>: Config inspector (--inspect-config) visualizes rule setups. Enhanced Node.js version handling for better compatibility.</p></li><li><p><strong>Challenges</strong>: Breaking changes caused migration hurdles, with lessons for smoother transitions in v10.</p></li></ul><p>Trusted by Microsoft and Netflix, ESLint v9.0.0 remains a code quality cornerstone.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let&#8217;s speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://github.com/astracompiler/cli">Astra</a></strong>: This CLI tool compiles JavaScript into standalone Windows executables, bundling Node.js apps into single .exe files without external dependencies. Supports custom icons and metadata for branded apps. Ideal for desktop utilities or distributing CLI tools, with a lightweight footprint and fast startup. Perfect for developers targeting Windows users with zero-hassle installs.</p></li><li><p><strong><a href="https://github.com/kepano/defuddle">Defuddle</a></strong>: A JavaScript library for extracting clean, readable content from web pages by stripping clutter like ads and sidebars. Uses heuristic parsing and DOM traversal to isolate main content, with options to customize extraction rules. Great for scraping, content aggregation, or building reader modes, with minimal setup and high accuracy on complex sites.</p></li><li><p><strong><a href="https://github.com/humanwhocodes/crosspost/">Crosspost</a></strong>: A CLI tool for cross-posting content from one blogging platform to another, built with Node.js. Supports platforms like Dev.to, Hashnode, and Medium, with configurable mappings for markdown, frontmatter, and metadata. Handles authentication via API tokens and batch processing for bulk posts. Perfect for JavaScript developers managing multiple blogs, saving time on content syndication.</p></li><li><p><strong><a href="https://peggyjs.org/">Peggy</a></strong>: A parser generator for JavaScript that creates fast, customizable parsers from PEG (Parsing Expression Grammar) definitions. Generates standalone or module-based parsers with zero dependencies, supporting complex grammars for DSLs, compilers, or data formats. Features error reporting, tracing, and TypeScript compatibility. Ideal for devs building language tools or processing structured data in JavaScript.</p></li></ul><div><hr></div><p>And that's it for the thirty-sixth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Fully agentic coding with OpenAI Codex, JavaScript’s new superpower, Deno’s updated next-gen web framework, and more - Week #35]]></title><description><![CDATA[Today, we'll be talking about OpenAI Codex, their latest fully agentic coder, a new update to Deno's Fresh Framework, and a new JavaScript superpower no one knows about.]]></description><link>https://thisweekinjavascript.com/p/fully-agentic-coding-with-openai</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/fully-agentic-coding-with-openai</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 18 May 2025 17:01:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/65f5b65b-7fe2-43ce-92b1-ecd5e410ab10_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>Today, we're exploring OpenAI's groundbreaking Codex system, JavaScript's new resource management capabilities, and Basecoat's framework-agnostic UI components, plus five exciting new tools to code and develop faster!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8aaedf91f961ecdff4dd89f2d8&quot;,&quot;title&quot;:&quot;Fully agentic coding with OpenAI Codex, JavaScript&#8217;s new superpower, Deno&#8217;s updated next-gen web framework, and more EP35 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/54Hnz8L4611nA1AcDIZIDo&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/54Hnz8L4611nA1AcDIZIDo" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>OpenAI Codex is Finally Here</strong></h2><p><strong><a href="https://openai.com/index/introducing-codex/">Codex</a></strong> is OpenAI&#8217;s software engineering agent that helps developers, especially web and JavaScript developers-automate coding tasks, boost productivity, and handle multiple tasks securely. Each task runs in its own cloud sandbox environment, preloaded with your repository.</p><p><strong>Built for developers:</strong><br>Codex excels in JavaScript and frameworks like React, Node.js, and TypeScript. It can generate, refactor, debug code, write tests, and help understand codebases for both frontend and backend projects.</p><p><strong>Technical details:</strong><br>Powered by the codex-1 model and trained via reinforcement learning on millions of coding tasks, Codex runs in secure, isolated cloud containers. It takes natural language or code prompts, generates code, and runs tests and linters automatically until passing.</p><p><strong>Parallel task handling:</strong><br>Codex can manage multiple tasks at once, such as adding features, fixing bugs, and running tests, speeding up development and reducing interruptions.</p><p><strong>Use cases:</strong></p><ul><li><p>Prototyping React components with accessibility</p></li><li><p>Migrating JavaScript to TypeScript</p></li><li><p>Automating Node.js CI/CD pipelines</p></li><li><p>Enhancing test coverage and debugging</p></li><li><p>Helping non-developers with small fixes</p></li><li><p>Supporting large refactors in companies like Cisco</p></li></ul><p><strong>Security and compliance:</strong><br>Runs in sandboxed environments without internet access, protecting sensitive data and including automatic vulnerability scanning.</p><p><strong>Limitations &amp; future plans:<br></strong>Some tasks take up to 30 minutes; no visual design or real-time collaboration yet. Future updates include browser-based execution, Figma integration, and multi-agent coordination.</p><div><hr></div><h2><strong>JavaScript&#8217;s New Superpower: Explicit Resource Management in V8 v13.8</strong></h2><p><strong><a href="https://v8.dev/features/explicit-resource-management">The V8 engine</a></strong> now introduces Explicit Resource Management (ERM) &#8212; a feature long requested by developers seeking more control over resource cleanup. Traditionally, JavaScript relied on garbage collection, making resource disposal non-deterministic. ERM changes that.</p><ul><li><p><strong>using Blocks</strong>: Wrap resources like file handles or streams in using/await using blocks for automatic cleanup.</p></li><li><p><strong>Custom Disposable Protocol:</strong> Objects can implement a [Symbol.dispose]() or [Symbol.asyncDispose]() method to define how they release external resources.</p></li><li><p><strong>Synchronous + Async Support:</strong> This covers both sync and async resource management needs.</p></li></ul><p>This gives developers more deterministic control &#8212; especially for scenarios involving file handles, streams, sockets, or GPU resources &#8212; all without waiting for GC to catch up.</p><div><hr></div><h2><strong>Deno Fresh is (Still) Here, with a v2 Upgrade</strong></h2><p><strong><a href="https://deno.com/blog/an-update-on-fresh">The Deno team just dropped a major update on Fresh</a></strong>, their edge-first full-stack web framework built for performance and simplicity. With V1.6 and beyond, Fresh is moving into a more mature phase of development.</p><ul><li><p><strong>New Build System</strong>: Fresh now uses a faster Rust-based builder (Island Builder) to speed up dev experience and production builds.</p></li><li><p><strong>Improved DX</strong>: A simplified CLI, better error messages, and smarter routing improve developer onboarding and iteration speed.</p></li><li><p><strong>New Plugin Architecture</strong>: Official support for plugins and integrations, starting with Tailwind and Deno KV.</p></li></ul><p>Focused on "island-based" rendering, Fresh delivers fast pages by sending minimal JavaScript to the client &#8212; ideal for edge environments like Deno Deploy. Fresh is increasingly becoming a strong choice for those who want performance without giving up on Developer Experience.</p><div><hr></div><h2><strong>Node.js Released Critical Security Updates</strong></h2><p>Heads up, Node.js developers! <strong><a href="https://nodejs.org/en/blog/vulnerability/may-2025-security-releases">Critical security patches</a></strong> are out for multiple versions &#8212; including v24.0.2, v23.11.1, v22.15.1, and v20.19.2. If you&#8217;re running on Node, this one&#8217;s important.</p><ul><li><p><strong>Cryptographic Fix</strong>: Resolves crashes during TLS and encryption operations, essential for secure data handling.</p></li><li><p><strong>HTTP Header Bug</strong>: Prevents request manipulation and protects against accidental data leaks.</p></li><li><p><strong>Memory Leak Patch</strong>: Improves performance for long-running servers and background services.</p></li></ul><p>If you&#8217;re on an LTS version, this is a must-do update. Don&#8217;t skip it!</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let&#8217;s speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://www.npmjs.com/package/diff">diff v8.0.1</a></strong>: The popular text diffing library now offers improved performance for large datasets, better error handling, and an updated online demo&#8212;perfect for JavaScript-based CLIs or code editors.</p></li><li><p><strong><a href="https://www.npmjs.com/package/react-aria-components/v/1.3.3">React Aria Components v1.3</a></strong>: Enhanced accessibility for React apps with new components for modals and tooltips, plus better keyboard navigation&#8212;ideal for building inclusive user experiences.</p></li><li><p><strong><a href="https://github.com/nitrojs/nitro/releases">UnJS Nitro v2.9</a></strong><a href="https://github.com/nitrojs/nitro/releases">:</a> This server toolkit now offers even faster cold starts, enhanced TypeScript support for stricter type safety, and improved middleware handling&#8212;perfect for JavaScript server-side projects.</p></li><li><p><strong><a href="https://www.npmjs.com/package/tamagui?activeTab=versions">Tamagui v1.126.13</a></strong>: A UI library for React Native and web, now with improved performance for complex layouts, new adaptive components for responsive design, and enhanced theming options&#8212;your cross-platform UI just got even better.</p></li></ul><div><hr></div><p>And that's it for the thirty-fifth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Node.js 24 is here, VS Code now has better OpenAI and Anthropic support, a new JavaScript load testing tool, and more - Week #34]]></title><description><![CDATA[Today, we'll be talking about Node.js 24, VS Code's new update and a new JavaScript load testing tool.]]></description><link>https://thisweekinjavascript.com/p/nodejs-24-is-here-vs-code-now-has</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/nodejs-24-is-here-vs-code-now-has</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 11 May 2025 17:01:29 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/51949d59-fbcb-4f9e-9a4e-c9f7d0cc3f80_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>Today, we're covering major VSCode improvements, the long-awaited k6 1.0 release, Node.js 24 features, and a roundup of essential tools you should know about!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a7a7531c782ee424c8dd9adcf&quot;,&quot;title&quot;:&quot;Node.js 24 is here, VS Code now has better OpenAI and Anthropic support, a new JavaScript load testing tool, and more EP34 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/7nXSVQg3Kz3xigew1OMjXv&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/7nXSVQg3Kz3xigew1OMjXv" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Node.js 24: More Power, More Features</strong></h2><p><strong><a href="https://nodejs.org/en/blog/release/v24.0.0">Node.js 24 has landed with significant improvements</a></strong> across the board:</p><p><strong>Major Updates:</strong></p><ul><li><p><strong>V8 13.6:</strong> Adds support for Float16Array, explicit resource management, and RegExp.escape.</p></li><li><p><strong>npm 11:</strong> Improved performance and enhanced security features.</p></li><li><p>AsyncLocalStorage Overhaul: Now uses AsyncContextFrame by default for more efficient context tracking.</p></li><li><p><strong>URLPattern Goes Global:</strong> Available without explicit imports.</p></li><li><p><strong>Permission Model Improvements:</strong> Flag simplified from --experimental-permission to just --permission.</p></li><li><p><strong>Test Runner Enhancements:</strong> Automatically waits for subtests to finish.</p></li></ul><p>This release will enter long-term support in October, offering a solid foundation for your production applications.</p><div><hr></div><h3><strong>Visual Studio Code 1.100: AI Gets Personal</strong></h3><p><strong><a href="https://code.visualstudio.com/updates/v1_100">Visual Studio Code just hit version 1.100</a></strong>, and it's a game-changer for AI-assisted coding:</p><p><strong>Key Highlights:</strong></p><ul><li><p><strong>Custom Instructions:</strong> Create .instructions.md files to set personal guidelines for the AI model &#8211; think code style preferences and framework choices.</p></li><li><p><strong>Reusable Prompts:</strong> Save common chat requests with .prompt.md files for repetitive tasks.</p></li><li><p><strong>Faster Agent Mode: </strong>Dramatic speed improvements for large files with new editing formats from both OpenAI and Anthropic.</p></li><li><p><strong>Multi-Window Support:</strong> Enhanced experience when working with chat and editors across multiple windows.</p></li></ul><p>This release transforms how the AI assistant understands your coding style, making it feel like it's truly part of your development team.</p><div><hr></div><h2><strong>k6 Hits 1.0: JavaScript Load Testing Grows Up</strong></h2><p>After years of development, <strong><a href="https://github.com/grafana/k6">k6 has officially reached version 1.0</a></strong>, offering a mature solution for realistic load testing:</p><p><strong>What Makes It Special:</strong></p><ul><li><p><strong>Tests as Code:</strong> Write load tests in JavaScript that can be version-controlled and integrated with CI pipelines.</p></li><li><p><strong>Powerful Performance:</strong> Built on Go for efficiency, but with a familiar JavaScript API for web developers.</p></li><li><p><strong>Multi-Protocol Support:</strong> Works with HTTP, WebSockets, gRPC, Browser interactions, and more.</p></li><li><p><strong>Realistic Traffic Simulation:</strong> Generate significant load even on modest hardware.</p></li></ul><p>Perfect for ensuring your applications can handle real-world traffic patterns before issues arise in production.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://eslint.org/blog/2025/05/eslint-v9.26.0-released/">ESLint v9.26.0:</a></strong> Your linter just got superintelligent with AI integration! The new Model Context Protocol server lets GitHub Copilot run linting commands directly in your workflow, while new protection against globalThis shadowing eliminates those weekend-ruining bugs that plague JavaScript developers.</p></li></ul><ul><li><p><strong><a href="https://github.com/mapbox/mapbox-gl-js/releases/tag/v3.12.0">Mapbox GL JS 3.12:</a></strong> Transform boring maps into breathtaking 3D masterpieces with experimental road intersections and shadow rendering for elevated lines. With butter-smooth pattern transitions and performance improvements, your users might spend more time admiring your maps than using your app!</p></li><li><p><strong><a href="https://github.com/facebook/relay/releases/tag/v19.0.0">Relay v19:</a></strong> The GraphQL type-safety guardian angel you never knew you needed! Required @alias directives on conditional fragments save you from mysterious runtime errors, while the included codemod automatically fixes your existing code while you grab coffee.</p></li><li><p><strong><a href="https://www.electronjs.org/blog/electron-36-0">Electron 36:</a></strong> Making web devs feel like native app wizards with Chromium 136, V8 13.6, and Node 22.14.0 in one powerful package. The showstopper? macOS Writing Tools integration that gives your desktop apps spell-checking capabilities that would make Grammarly jealous.</p></li><li><p><strong><a href="https://mantine.dev/changelog/8-0-0/">Mantine 8.0:</a></strong> The React UI library that finally fixed time zones! Featuring deeply nested menu submenus, a TimePicker component that makes dealing with time actually enjoyable, and string-based date values that finally end those timezone headaches that had you considering a career change.</p></li></ul><div><hr></div><p>And that's it for the thirty-fourth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Google Chrome feature makes JavaScript 10X faster, GSAP is now free, UNKNOWN JavaScript hack, and more - Week #33]]></title><description><![CDATA[Today, we'll be talking about a Google Chrome feature that'll make JavaScript run faster, Webflow just acquired GSAP, the popular JavaScript animation library, an unknown JavaScript hack, and more.]]></description><link>https://thisweekinjavascript.com/p/google-chrome-feature-makes-javascript</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/google-chrome-feature-makes-javascript</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 04 May 2025 17:00:31 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/216bac0b-9af6-4629-a7cc-d375a1dc8c2a_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we've witnessed a seismic legal victory that changed the app development landscape forever, groundbreaking performance boosters for JavaScript engines, and incredible tools going completely free.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a69f54a1f0989c35851828851&quot;,&quot;title&quot;:&quot;Google Chrome feature makes JavaScript 10X faster, GSAP is now free, UNKNOWN JavaScript hack, and more EP33 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/40XEWyQaSSHB9pgACWwoJb&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/40XEWyQaSSHB9pgACWwoJb" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>This Google Chrome Feature Makes JavaScript Run Faster</strong></h2><p><strong><a href="https://v8.dev/blog/explicit-compile-hints">Chrome's V8 team just dropped a game-changing feature</a></strong> that makes JavaScript blazingly fast!</p><p><strong>Key Features:</strong></p><ul><li><p>Explicit Compile Hints let developers control which functions compile at startup</p></li><li><p>Simple magic comment <code>(//# allFunctionsCalledOnLoad)</code> tells V8 what to prioritize</p></li><li><p>Average load time improvements of 630 milliseconds across major websites</p></li><li><p>Zero refactoring required - just add comments and watch performance soar</p></li></ul><p>This isn't just an incremental update&#8212;it's a turbo boost for web applications with minimal developer effort.</p><div><hr></div><h3><strong>GSAP is now Free</strong></h3><p>In a stunning move, <strong><a href="https://gsap.com/blog/3-13/">Webflow has acquired GSAP</a></strong> and made EVERYTHING completely free!</p><p><strong>What's Included:</strong></p><ul><li><p>All premium plugins <code>(SplitText, MorphSVG)</code> now available to everyone</p></li><li><p>SplitText 3.13 completely rewritten: 50% smaller with 14 new features</p></li><li><p>Perfect accessibility, responsive layouts, and emoji support</p></li><li><p>New feature: animate TO CSS variables for dynamic theming</p></li></ul><p>The animation ecosystem just democratized overnight, putting professional-grade tools in every developer's hands.</p><div><hr></div><h2><strong>The JavaScript Hack No One Talks About</strong></h2><p><strong><a href="https://2ality.com/2025/04/stringification-javascript.html">Converting values to a string in JavaScript</a></strong> might sound like a small task, but it is surely very complicated. Here's the developer lifesaver you didn't know you needed!</p><p><strong>The Problem:</strong></p><ul><li><p>Most string conversion methods fail on symbols and null-prototype objects</p></li><li><p>Different approaches crash on different types</p></li><li><p>Your code randomly explodes with certain values</p></li></ul><p><strong>The Solution:</strong></p><ul><li><p>Object.prototype.toString.call(value) handles everything perfectly</p></li><li><p>Works with symbols, null-prototypes, and all edge cases</p></li><li><p>It's like having a universal translator for JavaScript values</p></li></ul><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://deno.com/blog/v2.3">Deno 2.3:</a></strong> Compile your apps into single files with everything included, install packages 2x faster, and automatically clean up memory leaks with the new &#8216;using&#8217; keyword. Perfect for building standalone executables that work anywhere without requiring users to install Deno or dependencies.</p></li><li><p><strong><a href="https://github.com/prisma/prisma/releases/tag/">Prisma 6.7:</a></strong> Ditched Rust for TypeScript to run faster, split your database models into separate files for better organization, and now supports JavaScript-native SQLite out of the box. The new architecture makes Prisma feel like a native JavaScript library, eliminating the binary overhead that slowed down previous versions.</p></li><li><p><strong><a href="https://github.com/electron/electron/releases/tag/v36.0.0">Electron 36:</a></strong> Upgraded browser engine and Node.js, Windows apps now have rounded corners that look native, code signing is built-in so Microsoft trusts your apps, and smooth animations without performance caps. The new ServiceWorkerMain API lets you control background workers from the main process, opening up new possibilities for desktop app architecture.</p></li><li><p><strong><a href="https://koajs.com/">Koa 3.0:</a></strong> A tiny web framework (under 3MB) from the Express team that handles caching, errors, and content negotiation automatically - perfect for building lightweight APIs. Unlike heavier frameworks, Koa gives you just what you need without bloat, making it ideal for microservices and serverless deployments.</p></li><li><p><strong><a href="https://pglite.dev/docs/about">PGlite 0.3:</a></strong> Run a full PostgreSQL database in your browser (3MB size), works offline with IndexedDB storage, supports AI vector search, and ideal for testing or edge computing apps. Now upgraded to PostgreSQL 17.4, bringing all the latest database features to client-side applications without external dependencies.</p></li></ul><div><hr></div><p>And that's it for the thirty-third issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Make JavaScript Art with p5.js 2.0, new React 19 Features, Solid.js just turned 10, and more - Week #32]]></title><description><![CDATA[Today, we'll be talking about some p5.js 2.0's latest update and overhaul, new experimental React 19 features, and 10 years of Solid.js and the revolutions that came along with it.]]></description><link>https://thisweekinjavascript.com/p/make-javascript-art-with-p5js-20</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/make-javascript-art-with-p5js-20</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 27 Apr 2025 17:01:23 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/a547368c-886b-41f9-a549-08b29be0baa6_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>This week, we&#8217;ve got a major release for creative coders, groundbreaking React experimental features, and reflections on a decade of SolidJS&#8212;plus exciting new tools you won't want to miss!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8acf62ef66baf645b27002a1c4&quot;,&quot;title&quot;:&quot;Make JavaScript Art with p5.js 2.0, new React 19 Features, Solid.js just turned 10, and more EP32 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/11Doly3Nr8vgqcbG8gXgGz&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/11Doly3Nr8vgqcbG8gXgGz" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>P5.js 2.0: JavaScript Takes Art to the Next Level</strong></h3><p><strong><a href="https://p5js.org/">P5.js, the beloved creative coding library</a></strong>, has reached version 2.0 with impressive upgrades for artists and developers alike!</p><p><strong>Key Improvements:</strong></p><p><strong>Variable Fonts &amp; Advanced Typography: </strong>Animate font weight, width, and slant with full variable font support. New utilities like textToContours() and faster textToPoints() (3.5x speed boost) make text manipulation smoother.</p><p><strong>JavaScript Shaders (No GLSL Needed): </strong>Apply GPU-accelerated shaders directly in JavaScript to strokes, fills, and images using simple functions like strokeShader(). No GLSL knowledge required.</p><p><strong>Expanded Color Spaces &amp; HDR Canvases: </strong>Work with LAB, LCH, OKLab color spaces, and HDR outputs like Display P3&#8212;perfect for richer color workflows and modern displays.</p><p><strong>Unified Pointer Events: </strong>Handle <strong>mouse</strong>, <strong>touch</strong>, and <strong>pen</strong> inputs with a single event system for seamless interactivity across devices.</p><p><strong>Performance Boosts:</strong></p><ul><li><p>Faster text rendering</p></li><li><p>Efficient 3D line drawing with linesMode(SIMPLE)</p></li><li><p>Asynchronous asset loading via async setup()</p></li></ul><p><strong>Modular &amp; Modern:</strong></p><ul><li><p>Full ES Module support</p></li><li><p>Improved npm package with modern tooling</p></li></ul><p>This update solidifies p5.js as the premier tool for anyone wanting to blend art with code. Whether you're a seasoned creative coder or a beginner looking to start, p5.js 2.0 offers an accessible entry point into generative art and interactive visualizations.</p><div><hr></div><h3><strong>React Labs: View Transitions and Activity Component</strong></h3><p>React Compiler may have hit Release Candidate status, but that's not even the most exciting <strong><a href="https://react.dev/blog/2025/04/23/react-labs-view-transitions-activity-and-more">React news this week!</a></strong></p><p>Some amazing updates in React:</p><p><strong>View Transitions:</strong> A new experimental component that makes UI animations dramatically simpler</p><ul><li><p>Easily animate between page navigations, expanding elements, and UI state changes</p></li><li><p>Leverages browser's native capabilities for better performance</p></li><li><p>Available now in react@experimental</p></li></ul><p><strong>Activity Component:</strong> Revolutionary approach to UI state management</p><ul><li><p>Hide and show UI elements while intelligently preserving their state</p></li><li><p>Perfect for tabbed interfaces, modals, and complex navigational flows</p></li><li><p>Reduces performance costs compared to traditional unmounting</p></li></ul><p>These features represent significant advancements in how React applications can handle animations and state management, making previously complex implementations straightforward.</p><div><hr></div><h2><strong>A Decade of SolidJS: Reactive Revolution</strong></h2><p><strong><a href="https://dev.to/this-is-learning/a-decade-of-solidjs-32f4">SolidJS creator Ryan Carniato has shared thoughtful reflections</a></strong> on a decade of developing the project, four years after reaching version 1.0.</p><p><strong>Key Highlights:</strong></p><ul><li><p><strong>Fine-grained reactivity goes mainstream:</strong> SolidJS pioneered a signal-based reactivity model that minimizes runtime overhead and maximizes performance. This model has reshaped frontend architecture and been adopted by major frameworks like Angular (Signals), Vue (Vapor), and Svelte (Runes).</p></li><li><p><strong>From niche to standard:</strong> What started as a side project inspired by Knockout.js evolved into a blueprint for how modern frameworks handle state updates efficiently&#8212;without the need for virtual DOM diffing.</p></li><li><p><strong>Industry-wide impact:</strong> The signal-based approach has become the de facto standard for reactive programming in frontend development, with SolidJS playing a key role in sparking this shift.</p></li></ul><p>Carniato's persistence has transformed how front-end frameworks approach reactivity, demonstrating the long-term impact of innovative architectural thinking in JavaScript.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://github.com/GoogleChromeLabs/jsvu">jsvu 3.0:</a></strong> Install modern JS engines without compilation headaches, now with improved Node.js v18+ compatibility and support for V8, SpiderMonkey, JavaScriptCore across major operating systems.</p></li><li><p><strong><a href="https://small-js.org/News/News.html">SmallJS 1.6:</a></strong> Smalltalk-inspired library now with multi-provider AI support for OpenAI, Deepseek, Google AI, and Anthropic, featuring a new demo chat app and improved compiler performance.</p></li><li><p><strong><a href="https://www.scala-js.org/news/2025/04/21/announcing-scalajs-1.19.0/">Scala.js 1.19.0:</a></strong> WebAssembly output now runs 15% faster than JavaScript for computation-heavy code, with native async/await support and compatibility with Firefox 131+ and Safari 18.4+ without flags.</p></li><li><p><strong><a href="https://eslint.org/blog/2025/04/eslint-v9.25.1-released/">ESLint v9.25.1:</a></strong> Fixes directive detection in no-unused-expressions rule to support projects publishing code for both ES3 and ES5+ environments, along with other important bug fixes.</p></li><li><p><strong><a href="https://nearform.com/open-source/spectacle/">Spectacle:</a></strong> Create React-powered presentations with JSX syntax, featuring live code demos, clickable elements, and polished visual effects for standout technical presentations.</p></li></ul><div><hr></div><p>And that's it for the thirty-second issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[GPT 4.1, o3 and o4-mini are OpenAI's smartest, RIP JavaScript Records and Tuples, a new 800KB JavaScript runtime, and more - Week #31]]></title><description><![CDATA[Today, we'll be talking about some OpenAI's newest GPT 4.1, o3 and o4-mini models, their Codex CLI Programming AI Agent, Updates from the TC39 Conference, and Hako, a new 800KB JavaScript runtime.]]></description><link>https://thisweekinjavascript.com/p/gpt-41-o3-and-o4-mini-are-openais</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/gpt-41-o3-and-o4-mini-are-openais</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 20 Apr 2025 17:01:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/06fbe4d6-e3c4-444f-9ddd-8e42066a2ab4_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of &#8220;<strong>This Week in JavaScript</strong>&#8221;!</p><p>Today, we're exploring OpenAI's groundbreaking new models, important TC39 decisions, and a new high-performance JavaScript engine&#8212;plus exciting tool updates you won't want to miss!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8a5e03c3dfbaf3453ca3a2bc1c&quot;,&quot;title&quot;:&quot;GPT 4.1, o3 and o4-mini are OpenAI's smartest, RIP JavaScript Records and Tuples, a new 800KB JavaScript Runtime, and more EP31 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/3CFzFPRFfLv8I2ACBDeAKr&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/3CFzFPRFfLv8I2ACBDeAKr" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>GPT-4.1, o3 and o4-mini, and Codex CLI: OpenAI&#8217;s Smartest Developer Tools</strong></h3><p>Together, these models and tools mark a shift from passive code suggestions to active, tool-using AI assistants that understand codebases, generate clean diffs, analyze logs, and even operate within the terminal.</p><p>For JavaScript, full-stack, and backend developers, the implications are huge.</p><p><strong>GPT-4.1: Smarter, more precise, and built for real codebases</strong></p><p><strong><a href="https://openai.com/index/gpt-4-1/">GPT-4.1</a></strong> introduces major upgrades that solve long-standing pain points in coding workflows:</p><ul><li><p>A <strong>1 million token context window</strong> allows the model to work with entire codebases, multi-file apps, or full project documentation in a single go.</p></li><li><p>On the <strong>SWE-bench benchmark</strong>, GPT-4.1 hits <strong>54.6% accuracy</strong>&#8212;a jump from GPT-4&#8217;s 33%. That means it solves far more real-world engineering tasks out of the box.</p></li><li><p>The model is trained for <strong>diff-style editing</strong>, which means instead of rewriting entire files, it returns clean, minimal code changes that can be reviewed or merged directly.</p></li></ul><p><strong>o3 and o4-mini: Agents that Think, Plan, and Act</strong></p><p><strong><a href="https://openai.com/index/introducing-o3-and-o4-mini/">The o-series models</a></strong> add a layer of intelligent behavior that goes beyond code generation.</p><p><strong>These models can:</strong></p><ul><li><p>Browse the web to fetch documentation or troubleshoot errors</p></li><li><p>Analyze uploaded files, logs, or datasets using Python</p></li><li><p>Understand screenshots and generate matching code or visuals</p></li><li><p>Create and manipulate images using DALL&#183;E&#8212;all within the same conversation</p></li></ul><p>What makes them stand out is <strong>agentic behavior</strong>: the ability to reason through a problem, choose the right tools, and take action across multiple steps.</p><p><strong>For development use cases, this means:</strong></p><ul><li><p>Generating a custom Express backend with route logic and middleware</p></li><li><p>Analyzing error logs from production and returning structured insights</p></li><li><p>Translating hand-drawn wireframes into deployable front-end layouts</p></li></ul><p>This level of coordination turns the models into powerful assistants across the full software workflow.</p><p><strong>Codex CLI: AI Agent in the Terminal</strong></p><p><strong><a href="https://github.com/openai/codex">Codex CLI</a></strong> is a lightweight coding agent that runs locally in the terminal and connects to the user&#8217;s file system. It uses GPT-4.1 or o3 to interact with files, execute commands, and edit code through natural language instructions.</p><p><strong>Key capabilities include:</strong></p><ul><li><p>Writing new features with natural prompts</p></li><li><p>Searching and summarizing code across large projects</p></li><li><p>Running scripts and interpreting outputs</p></li><li><p>Generating tests, documentation, and config files with minimal input</p></li></ul><p>Codex CLI is fully open-source, and OpenAI is supporting its growth with a <strong>$1 million fund</strong> for projects built on top of it.</p><p><strong>Why This Matters</strong></p><p>This launch moves AI tools from reactive helpers to active collaborators. Instead of suggesting code in isolation, the models now understand context, plan across multiple steps, and even execute tasks locally via Codex CLI.</p><p>The improvements in <strong>accuracy</strong>, <strong>reasoning</strong>, and <strong>usability</strong> make it possible to:</p><ul><li><p>Build faster</p></li><li><p>Debug with fewer mistakes</p></li><li><p>Create more consistent, production-ready outputs</p></li></ul><p>For developers working in JavaScript, TypeScript, Python, or mixed stacks, this release offers a toolkit that integrates directly into existing workflows&#8212;and makes AI a far more practical part of daily development.</p><div><hr></div><h3><strong>JavaScript Records and Tuples are Dead</strong></h3><p>At this month&#8217;s TC39 meeting, a major proposal was officially withdrawn: <strong><a href="https://github.com/tc39/proposal-record-tuple/issues/394">Records and Tuples</a></strong><a href="https://github.com/tc39/proposal-record-tuple/issues/394">,</a> a long-running effort to bring deeply immutable data structures to JavaScript, has been shelved after several years of exploration.</p><p>But while one door closes, several new ones open.</p><p><strong>Records and Tuples: Proposal Withdrawn After Stalling at Stage 2</strong></p><p>The Records and Tuples proposal aimed to introduce new primitive types for immutable values using special syntax like <code>#{ x: 1 }</code> and <code>#[1, 2, 3 ]</code>. It promised value-based equality and structural sharing&#8212;features developers often reach for when modeling data.</p><p>But the core idea faced growing concerns:</p><ul><li><p>It introduced <em>new primitive types</em> to the language</p></li><li><p>It required <em>new syntax</em> that many found awkward</p></li><li><p>It posed challenges for developer tooling and interop</p></li></ul><p>Despite years of refinement, the proposal failed to gain enough support to progress beyond Stage 2. As a result, it&#8217;s been withdrawn entirely.</p><p>The functionality it aimed to deliver may return in a different form through <strong>Composite Keys</strong>, which offer value-based equality using regular JavaScript objects.</p><p><strong>Enums: TypeScript-Style Enums Enter Stage 1</strong></p><p>A new <strong>Enum proposal</strong> has entered Stage 1, with the goal of bringing built-in enum support to JavaScript. The idea is to introduce a native enum syntax that aligns closely with TypeScript&#8217;s existing enum feature.</p><p>This could mean:</p><ul><li><p>Cleaner declaration of constant sets</p></li><li><p>Better runtime compatibility with TypeScript enums</p></li><li><p>Easier modeling of state machines, role types, or status codes</p></li></ul><p>While the exact design is still evolving, the proposal advancing to Stage 1 signals serious interest in making enums part of the language natively.</p><p><strong>Deferred Re-exports: More Efficient Module Loading</strong></p><p>JavaScript modules may soon get a performance upgrade. The <strong>Deferred Re-exports</strong> proposal has reached Stage 2 and introduces the ability to selectively lazy-load re-exports.</p><p>This means developers could write:</p><pre><code>export defer { heavyTool } from './expensive.js';

export { fastTool } from './light.js';</code></pre><p>With this syntax, expensive.js will only load if heavyTool is actually imported. This opens the door to better <strong>tree-shaking</strong>, faster startup times, and smarter bundling strategies, especially in large libraries and frameworks.</p><p><strong>Map Upsert: Cleaner and Faster Key Management</strong></p><p>The <strong>Upsert proposal</strong> is nearing Stage 3 and would give developers a long-awaited method:</p><pre><code><code>Map.prototype.getOrInsert</code></code></pre><p>This pattern:</p><pre><code>if (!map.has(key)) {

map.set(key, defaultValue);

}

return map.get(key);</code></pre><p>Could become a single line:</p><pre><code>map.getOrInsert(key, () =&gt; defaultValue);</code></pre><p>It&#8217;s more concise, avoids repeated lookups, and mirrors behavior found in other languages like Python and Rust. Great for caches, counters, and any scenario where maps are used as dynamic stores.</p><p><strong>Composite Keys: Value-Based Equality Without New Primitives</strong></p><p>Stepping in as a spiritual successor to Records and Tuples, <strong>Composite Keys</strong> have now entered Stage 1. They offer a new way to create objects that behave like value types&#8212;meaning two objects with the same structure and values will be considered equal.</p><pre><code>const one = Composite({ x: 1, y: 2 });

const two = Composite({ x: 1, y: 2 });

Composite.equal(one, two); // true</code></pre><p>These can be used as <strong>Map or Set keys</strong> with value-based comparison, something that&#8217;s currently impossible with standard objects. If successful, this proposal could finally give JavaScript a clean and efficient way to model compound keys without resorting to stringification hacks.</p><p><strong>What This Means for Developers</strong></p><p>The withdrawal of Records and Tuples may seem like a setback, but the momentum around Enums, Upsert, Composites, and smarter module loading shows TC39 is still actively evolving JavaScript toward more ergonomic, high-performance patterns.</p><p>Many of these changes align closely with TypeScript workflows, making the future of JavaScript feel more familiar, more efficient, and more expressive.</p><p>Keep an eye on these proposals. If they hit Stage 3 or 4 in the coming months, they could soon land in browsers, Node, or your next bundler release.<strong>Battle-Tested Node.js Testing Playbook</strong></p><p><strong><a href="https://github.com/goldbergyoni/nodejs-testing-best-practices#readme">Backend testing doesn&#8217;t have to be painful</a></strong>&#8212;and this GitHub repo proves it. Written like a no-fluff manual, it compiles over 50 hands-on strategies from real-world consulting work into one actionable playbook.</p><p><strong>What&#8217;s inside:</strong></p><ul><li><p>Reliable patterns for mocking, Dockerized databases, flaky queue simulations, and message brokers</p></li><li><p>Test structures built around API routes and behavior-driven outcomes</p></li><li><p>A showcase Node.js app with 40+ tests (yes, including the DB) that all run in under five seconds</p></li></ul><p>If you're tired of flaky test suites and want a setup that runs fast and scales cleanly, this guide is gold.</p><div><hr></div><h3><strong>Hako: A High-Performance JavaScript Engine in a 800KB Box</strong></h3><p><strong><a href="https://andrews.substack.com/p/hako">Hako</a></strong> is a new JavaScript engine focused on portability, performance, and security. Forked from <strong>PrimJS</strong> (an optimized QuickJS), it&#8217;s designed for embedding into any application with minimal overhead and maximum control.</p><p><strong>Key highlights:</strong></p><ul><li><p><strong>WebAssembly-first architecture</strong>: Hako compiles to <strong>WASM</strong>, making it platform-agnostic and embeddable in any environment that supports WebAssembly. No need for native builds or complex bindings.</p></li><li><p><strong>Built-in sandboxing and resource control</strong>: Runs securely within a WASM sandbox, with support for <strong>memory limits</strong>, <strong>execution quotas</strong>, and <strong>fail-fast controls</strong> to prevent abuse or denial-of-service scenarios.</p></li><li><p><strong>Compact and fast</strong>: Weighs in at just <strong>~800KB</strong>, starts quickly, and supports spinning up hundreds of lightweight VM instances. Ideal for plugins, serverless functions, and edge runtimes.</p></li><li><p><strong>28% faster than QuickJS</strong>: Thanks to an improved interpreter and true garbage collection, Hako outperforms QuickJS in key benchmarks while retaining similar language coverage.</p></li><li><p><strong>Modern JavaScript support</strong>: Supports ES2019+ features like modules, async/await, generators, BigInt, and more. Runs most modern JS code without issues.</p></li><li><p><strong>Built-in debugging tools</strong>: Offers <strong>Chrome DevTools Protocol (CDP)</strong> support, allowing remote debugging via Chrome or VS Code. Rare among lightweight JS engines.</p></li></ul><p>Hako is best suited for developers building plugin systems, secure code sandboxes, lightweight REPLs, or cross-platform applications where running modern JS safely and efficiently is essential, and is faster than QuickJS, safer than Duktape, far lighter than V8, and more portable than Hermes.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://astro.build/blog/astro-570/">Astro 5.7:</a></strong> Introduces an experimental Fonts API supporting Google, Fontsource, and local files, plus a now-stable Sessions API for server-side data storage without cookies. SVG files can now be used directly as components.</p></li><li><p><strong><a href="https://blog.jetbrains.com/webstorm/2025/04/webstorm-2025-1/">WebStorm 2025.1:</a></strong> JetBrains' first major release of the year brings Claude model support to their AI Assistant, local model connections through Ollama, and improved Angular 17.2 signal query support.</p></li><li><p><strong><a href="https://github.com/remusao/tldts">tldts 7.0:</a></strong> This URL parsing utility now processes domains in microseconds with full Unicode compatibility, while adding email parsing and IPv6 detection.</p></li><li><p><strong><a href="https://github.com/reduxjs/redux-toolkit/releases/tag/v2.7.0">Redux Toolkit 2.7:</a></strong> Adds Standard Schema validation support for RTK Query endpoints and fixes several bugs with infinite queries.</p></li><li><p><strong><a href="https://github.com/BabylonJS/Babylon.js/releases/tag/8.3.0">Babylon.js 8.3:</a></strong> Graphics improvements include native copy texture protocol and new post-processes like FXAA and film grain.</p></li><li><p><strong><a href="https://bun.sh/blog/bun-v1.2.10">Bun v1.2.10:</a></strong> A mind-blowing performance boost for setImmediate (74 seconds &#8594; 4 milliseconds) makes Next.js builds 10% faster on macOS.</p></li></ul><div><hr></div><p>And that's it for the thirty-first issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[MUST KNOW JavaScript features in 2025, Google Firebase Studio, amazing Node.js playbook, and more - Week #30]]></title><description><![CDATA[Today, we'll be talking about some must-know JavaScript features in 2025, Google's vibe coding platform, Firebase Studio, and more!]]></description><link>https://thisweekinjavascript.com/p/must-know-javascript-features-in</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/must-know-javascript-features-in</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 13 Apr 2025 17:01:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/727ce87a-e8d1-4299-845f-72c6a97a6c78_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of &#8220;<strong>This Week in JavaScript</strong>&#8221;!</p><p>From Google's ambitious new AI workspace to Microsoft clamping down on VS Code forks, plus serious upgrades to JavaScript itself, there's a lot to unpack.</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8aea2ed6ec98d2a7c24ec404cb&quot;,&quot;title&quot;:&quot;MUST KNOW JavaScript features in 2025, Google Firebase Studio, amazing Node.js playbook, and more EP30 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/2XCz8UtwgEEoNv4q6W8hQ8&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/2XCz8UtwgEEoNv4q6W8hQ8" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>JavaScript in 2025: New Features You Should Know</strong></h3><p>JavaScript in 2025 is more powerful, expressive, and efficient than ever.</p><p><strong><a href="https://waspdev.com/articles/2025-04-06/features-that-every-js-developer-must-know-in-2025">Here&#8217;s what&#8217;s worth learning</a></strong>:</p><ul><li><p><strong>Iterator Helpers</strong> give you map, filter, and flatMap on iterables&#8212;great for transforming large streams or datasets efficiently</p></li><li><p><strong>structuredClone</strong> offers native deep-copying for objects with circular references or complex types</p></li><li><p><strong>Promise.withResolver</strong>s lets you create externally controlled promises, making async flow less clunky</p></li><li><p><strong>Array .at(-1)</strong> makes grabbing the last element easier and cleaner</p></li><li><p><strong>Set operations</strong> now support union, intersection, and difference natively&#8212;no more third-party libs</p></li><li><p><strong>Tagged Templates</strong> let you intercept and manipulate strings dynamically, useful for sanitization or internationalization</p></li></ul><p>If you're still relying on old patterns, now&#8217;s the time to upgrade.</p><div><hr></div><h3><strong>Google Launches Firebase Studio</strong></h3><p><strong><a href="https://firebase.studio/">Google is coming in hot with Firebase Studio</a></strong>&#8212;a fully AI-powered dev environment that runs entirely in the browser. Gemini is baked in from the start, helping with debugging, testing, documentation, and refactoring.</p><p><strong>Highlights:</strong></p><ul><li><p>Import projects from GitHub, GitLab, Bitbucket, or local machines</p></li><li><p>Prototyping agents convert sketches and plain English into runnable code</p></li><li><p>Real-time previews, Android emulators, and one-click deploys to Firebase or Cloud Run</p></li></ul><p>Think of it as Google&#8217;s answer to Cursor or v0, but natively integrated into the Firebase ecosystem.</p><div><hr></div><h3><strong>Battle-Tested Node.js Testing Playbook</strong></h3><p><strong><a href="https://github.com/goldbergyoni/nodejs-testing-best-practices#readme">Backend testing doesn&#8217;t have to be painful</a></strong>&#8212;and this GitHub repo proves it. Written like a no-fluff manual, it compiles over 50 hands-on strategies from real-world consulting work into one actionable playbook.</p><p><strong>What&#8217;s inside:</strong></p><ul><li><p>Reliable patterns for mocking, Dockerized databases, flaky queue simulations, and message brokers</p></li><li><p>Test structures built around API routes and behavior-driven outcomes</p></li><li><p>A showcase Node.js app with 40+ tests (yes, including the DB) that all run in under five seconds</p></li></ul><p>If you're tired of flaky test suites and want a setup that runs fast and scales cleanly, this guide is gold.</p><div><hr></div><h3><strong>Microsoft's Lockdown on VS Code Forks</strong></h3><p>Microsoft quietly enforced licensing restrictions on popular language extensions (C++, Python, .NET), <strong><a href="https://www.youtube.com/watch?v=vEQ07-p8ZDE">blocking their use in editors like Cursor and Windsurf</a></strong>.</p><p><strong>What&#8217;s changing:</strong></p><ul><li><p>Extensions are now restricted to official environments (VS Code, Visual Studio, Azure DevOps)</p></li><li><p>Cursor is pivoting to Open VSX and OSS alternatives</p></li><li><p>Comes amid Microsoft&#8217;s expansion of Agent Mode and MCP in VS Code</p></li></ul><p>The developer ecosystem is splintering. This move might redefine the editor landscape in the age of AI-first tooling.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://typespec.io/blog/2025-03-31-typespec-1-0-release/">TypeSpec 1.0-RC:</a></strong> Design your API once, and TypeSpec generates OpenAPI specs, JSON Schema, server code, and client libraries across languages. It's a language for API contracts, letting you build API-first with less drift, more consistency, and scalable architecture baked in from day one.</p></li><li><p><strong><a href="https://www.prisma.io/blog/prisma-orm-6-6-0-esm-support-d1-migrations-and-prisma-mcp-server">Prisma ORM 6.6</a></strong>: Adds ESM support via a new client generator, Early Access migrations for Cloudflare D1 and Turso, and a new MCP server that connects to AI tools. Developers can now spin up Postgres workflows via AI prompts like "make a DB for a habit tracker."</p></li><li><p><strong><a href="https://reactnative.dev/blog/2025/04/08/react-native-0.79">React Native 0.79:</a></strong> Boosts Android startup by avoiding JS bundle compression and brings major Metro bundler improvements. Swift-native module registration on iOS is now possible, and Remote JS Debugging has officially been removed for good.</p></li><li><p><strong><a href="https://tailwindcss.com/blog/tailwindcss-v4-1">Tailwind CSS 4.1:</a></strong> Text-shadow utilities finally arrive, along with powerful new masking features, pointer-aware variants, and legacy browser fallbacks. The update makes layouts more expressive while improving accessibility and responsiveness across devices.</p></li><li><p><strong><a href="https://nextjs.org/blog/next-15-3">Next.js 15.3:</a></strong> Turbopack enters alpha for production builds, offering up to 83% faster performance. Adds new routing hooks, instrumentation APIs, and support for Rspack as a community bundler, pushing forward Next.js as the go-to meta-framework.</p></li></ul><div><hr></div><p>And that's it for the thirtieth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[React 19.1 is out, new JavaScript runtime better than Node.js, Safari 18.4 brings new WebKit features, and more - Week #29]]></title><description><![CDATA[Today, we'll be talking about the React 19.1 update, Bare, a new JavaScript runtime, Safari's 18.4 update, and more.]]></description><link>https://thisweekinjavascript.com/p/react-191-is-out-new-javascript-runtime</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/react-191-is-out-new-javascript-runtime</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 06 Apr 2025 17:01:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/99d09d8b-a990-428d-a5f2-fe9507f9c912_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to this week's edition of "<strong>This Week in JavaScript</strong>"!</p><p>Today, we're covering React's powerful new debugging tools, a revolutionary JavaScript runtime, the legal battle for the JavaScript name, and Safari's most impressive update yet&#8212;plus exciting new tools you won't want to miss!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8ac75532b29c9b553ae572b115&quot;,&quot;title&quot;:&quot;React 19.1 is out, new JavaScript runtime better than Node.js, Safari 18.4 brings new WebKit features, and more EP29 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/3pA7BlFySitMZO5SmhZOyP&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/3pA7BlFySitMZO5SmhZOyP" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>React 19.1: Debug Smarter, Render Smoother</strong></h3><p><strong><a href="https://github.com/facebook/react/releases/tag/v19.1.0">React 19.1 is here</a></strong> with some powerful dev-focused additions and performance polish.</p><ul><li><p><strong>Owner Stacks:</strong> A dev-only tool to trace which components rendered what. It gives you more visibility than Component Stacks and is super useful for debugging complex trees.</p></li><li><p><strong>Suspense Upgrades:</strong> Boundaries now play nicer across the client, server, and hydration stages&#8212;plus better GC handling and fewer unnecessary renders.</p></li><li><p><strong>React Server Components:</strong> A new experimental unstable_prerender API plus streaming support in edge environments.</p></li><li><p><strong>React DOM Fixes:</strong> Toggle events, better image preloading, and weird DOM edge cases got cleaned up too.</p></li></ul><p>React 19.1 isn&#8217;t flashy&#8212;but it&#8217;s smooth, powerful, and developer-first.</p><div><hr></div><h3><strong>Bare: A Minimalist Runtime for Max Flexibility</strong></h3><p>Think Node.js, but leaner. <strong><a href="https://bare.pears.com/">Bare is a new JavaScript runtime</a></strong> built on V8 and libuv, but without a standard library. You assemble your own runtime from modular userland packages.</p><p><strong>Highlights:</strong></p><ul><li><p>Full ESM + CommonJS support</p></li><li><p>Native addon and multithreaded mobile support</p></li><li><p>Works with multiple JS engines (V8, QuickJS, JavaScriptCore)</p></li><li><p>Built for mobile, embedded, peer-to-peer, and experimental environments</p></li></ul><p>If you're tired of bloated runtimes or want complete control over your runtime stack, Bare might be what you&#8217;re looking for.</p><div><hr></div><h3><strong>Deno vs Oracle: The Battle for "JavaScript"</strong></h3><p>Yes, <strong><a href="https://deno.com/blog/deno-v-oracle3">Oracle still owns the trademark for &#8220;JavaScript.&#8221;</a></strong> And no, they haven&#8217;t built or maintained it in years.</p><p><strong>Here&#8217;s what&#8217;s happening:</strong></p><ul><li><p>Deno filed a petition to cancel the trademark, arguing the term is now generic and that Oracle hasn&#8217;t used it in commerce.</p></li><li><p>Oracle responded... by submitting a Node.js screenshot (which they don&#8217;t own) as proof of use.</p></li><li><p>The next few weeks are key. If the fraud claim is allowed, Oracle may have to explain that submission.</p></li></ul><p>The outcome could impact how we use the word &#8220;JavaScript&#8221; publicly&#8212;whether in conferences, products, or dev tools. Deno&#8217;s pushing to #FreeJavaScript, and the industry is watching closely.</p><div><hr></div><h3><strong>Safari 18.4: WebKit Gets Wild</strong></h3><p>This might be <strong><a href="https://webkit.org/blog/16574/webkit-features-in-safari-18-4/">Safari&#8217;s most packed update ever</a></strong>. Here&#8217;s the highlight:</p><ul><li><p><strong>Declarative Web Push:</strong> Notifications without Service Workers. It&#8217;s simpler, faster, and more battery-friendly.</p></li><li><p><strong>Iterator Helpers:</strong> map, filter, some, reduce, and more are now native in JS.</p></li><li><p><strong>Faster JSON Parsing:</strong> Thanks to SIMD, JSON.parse and stringify just got snappier.</p></li><li><p><strong>Error.isError:</strong> Better native error detection.</p></li><li><p><strong>CSS Goodies:</strong> shape(), text-autospace, sideways writing modes, scroll-linked animations for &lt;details&gt;, and responsive design tools.</p></li><li><p><strong>Media &amp; Web APIs:</strong> WebM, Opus, AV1, WASM JIT fallback, and CHIPS for cookie partitioning.</p></li><li><p><strong>Also,</strong> Web Extensions get a massive update, and WebKit's dev tools just got a lot more capable across iOS, macOS, and visionOS.</p></li></ul><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://expressjs.com/2025/03/31/v5-1-latest-release.html">Express v5.1</a></strong>: JavaScript's classic server framework is back as the default on npm after years of modernization. It brings a migration codemod from v4, updated docs, a clear LTS strategy, and support for Uint8Array in res.send(). This is Express's biggest refresh in over a decade.</p></li></ul><ul><li><p><strong><a href="https://resend.com/blog/react-email-4">React Email 4.0</a></strong>: Your email's new personal assistant with a built-in linter for links and images, SpamAssassin-powered spam scoring, and compatibility checking across email clients. With responsive previews and eight new components, building marketing-ready emails with React just got dramatically easier.</p></li><li><p><strong><a href="https://github.com/google/zx/releases/tag/8.5.0">zx 8.5</a></strong>: Now fully modular with a lightweight @lite version that's 7x smaller. Available everywhere&#8212;npm, GitHub, Docker, and JSR&#8212;with support for fetch().pipe(), enhanced globbing, better CLI flags, and cleaner stack traces. Perfect for scripting across Deno, Docker, or Node environments.</p></li><li><p><strong><a href="https://animejs.com/">Anime.js 4.0</a></strong>: Transform your browser into a motion design playground with this all-in-one animation engine. Now supports scroll observers, shape morphing, draggable elements, and timeline orchestration through a clean API. Perfect for animating anything from DOM elements to SVGs with buttery smooth performance.</p></li><li><p><strong><a href="https://tinybase.org/guides/releases/#v6-0">TinyBase 6.0</a></strong>: Future-proofs your stack by going fully ESM-only and dropping CommonJS and UMD. Adds support for React 19, modernizes testing, and updates demos to use import maps and esm.sh. The CLI is gone, but the core is leaner and more aligned with where frontend development is heading.</p></li></ul><div><hr></div><p>And that's it for the twenty-ninth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Your Next.js website might be hacked, ChatGPT-4o Image Generation, State of Vue.js 2025, and more - Week #28]]></title><description><![CDATA[Today, we'll be talking about Next.js' security vulnerability, ChatGPT-4o's game-changing image generation features and how it can be used in JavaScript apps, and The State of Vue.js Report 2025!]]></description><link>https://thisweekinjavascript.com/p/your-nextjs-website-might-be-hacked</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/your-nextjs-website-might-be-hacked</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 30 Mar 2025 17:01:38 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7e6315cd-b324-4398-9941-e7fd24f9f082_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>Today, we're covering a critical Next.js security patch you can't afford to miss, OpenAI's revolutionary 4o Image Generation, and Vue.js's impressive growth stats&#8212;plus exciting new tools that'll supercharge your development workflow!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8ab47e9775b9b2464b95b780d5&quot;,&quot;title&quot;:&quot;Your Next.js website might be hacked, ChatGPT-4o Image Generation, State of Vue.js 2025, and more EP28 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/6qsfko7XkeVBfFnfeDvSjP&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/6qsfko7XkeVBfFnfeDvSjP" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Next.js Middleware Security Vulnerability</strong></h3><p><strong><a href="https://socket.dev/blog/next-js-patches-critical-middleware-vulnerability">Next.js just patched a critical vulnerability</a></strong> (CVE-2025-29927) affecting all self-hosted applications with output: 'standalone'.</p><p><strong>Why It Matters:</strong></p><ul><li><p><strong>Authentication Bypass:</strong> Attackers could completely skip middleware-based authorization checks</p></li><li><p><strong>All Versions Affected:</strong> Every major version prior to the patches requires updates</p></li><li><p><strong>Simple Exploit:</strong> Using a spoofed header allows bypassing all security middleware</p></li></ul><p>If you're running a self-hosted Next.js app, update immediately to the patched versions:</p><ul><li><p><strong>15.x:</strong> fixed in 15.2.3</p></li><li><p><strong>14.x:</strong> fixed in 14.2.25</p></li><li><p><strong>13.x:</strong> fixed in 13.5.9</p></li><li><p><strong>12.x:</strong> fixed in 12.3.5</p></li></ul><div><hr></div><h3><strong>OpenAI's 4o Image Generation</strong></h3><p>OpenAI has integrated their <strong><a href="https://openai.com/index/introducing-4o-image-generation/">most advanced image generator</a></strong> directly into the GPT-4o language model. However, as of now, this feature is not publicly available through the API but is expected to be rolled out gradually in the near future.</p><p><strong>Key Features:</strong></p><ul><li><p><strong>Native Integration:</strong> Built directly into the language model, not a separate tool</p></li><li><p><strong>Text Rendering:</strong> Perfect for creating diagrams, charts, and text-heavy visuals</p></li><li><p><strong>Multi-turn Refinement:</strong> Natural conversation to improve images incrementally</p></li><li><p><strong>Knowledge-Backed Generation:</strong> Leverages the model's understanding for accurate visuals</p></li></ul><p>This isn't just about pretty pictures&#8212;it's about creating useful visuals that communicate meaning effectively through simple conversation.</p><p><strong>Use Cases in JavaScript &amp; Web Development:</strong></p><ul><li><p><strong>AI-Generated Assets in Web Apps:</strong> React/Vue-based UIs can dynamically generate images based on user input.</p></li><li><p><strong>Game Development &amp; WebGL:</strong> AI-powered textures and procedural assets for Three.js, Babylon.js, and PlayCanvas.</p></li><li><p><strong>Generative Art &amp; Design:</strong> AI-assisted image manipulation in p5.js or Processing.js.</p></li><li><p><strong>AI-Powered E-commerce &amp; Marketing:</strong> Dynamic product visuals and personalized ads.</p></li><li><p><strong>Automated Data Visualization:</strong> AI-generated infographics and reports in D3.js or Chart.js.</p></li><li><p><strong>Web-Based Image Editing Tools:</strong> AI-enhanced photo editing and filters using the Canvas API &amp; TensorFlow.js.</p></li><li><p><strong>Interactive Learning Platforms:</strong> AI-created diagrams and illustrations for educational web apps.</p></li></ul><div><hr></div><h3><strong>State of Vue.js Report 2025</strong></h3><p>The <strong><a href="https://www.monterail.com/stateofvue">latest Vue.js report</a></strong> shows impressive growth and ecosystem shifts that every frontend developer should know about.</p><p><strong>Striking Statistics:</strong></p><ul><li><p><strong>93.4% Developer Loyalty:</strong> Up from 90% in 2021 planning to use Vue for their next project</p></li><li><p><strong>80% Pinia Dominance:</strong> The state management landscape has completely transformed</p></li><li><p><strong>38.4% Vuex Usage:</strong> The former champion has seen a dramatic decline</p></li><li><p><strong>TypeScript Explosion:</strong> Usage surged from 38% (third place) to 82% (first place)</p></li></ul><p>This dramatic shift shows Vue's continued momentum and the JavaScript community's growing embrace of type safety.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://bun.sh/blog/bun-v1.2.7">Bun v1.2.7:</a></strong> Introduces a new CookieMap API for simplified cookie handling, improved TypeScript declarations removing Node.js/DOM conflicts, and includes 35 bug fixes improving stability and compatibility.</p></li><li><p><strong><a href="https://github.com/pnpm/pnpm/releases/tag/v10.7.0">pnpm 10.7:</a></strong> Now lets you patch dependencies by version ranges for granular control, adds environment variables support in workspace config, and enhances configuration visibility across workspace files.</p></li><li><p><strong><a href="https://babeljs.io/blog/2025/03/24/7.27.0">Babel 7.27.0:</a></strong> Brings default support for correct import attributes syntax, better alignment with standard JavaScript and tooling, and improved TypeScript preset behavior.</p></li><li><p><strong><a href="https://blogs.windows.com/windowsdeveloper/2025/03/27/announcing-babylon-js-8-0/">Babylon.js 8.0:</a></strong> Delivers Image-Based Lighting shadows for realistic rendering, Area Lights for movie-set style lighting effects, a Node Render Graph for complete pipeline customization, and a Lightweight Viewer for minimal 3D embedding.</p></li><li><p><strong><a href="https://lexical.dev/">Lexical 0.29:</a></strong> Meta's extensible text editor framework featuring accessible, cross-platform design (web and iOS) and a minimalist approach with plugin-based expansion.</p></li></ul><div><hr></div><p>And that's it for the twenty-eighth issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Next.js vs. TanStack, rsdoctor for rspack, OpenAI o1's pricing problem, and more - Week #27]]></title><description><![CDATA[Today, we'll be talking about the the Next.js vs. TanStack debate, and how TanStack might just be better and more pocket-friendly, rsdoctor for rspack and webpack, and OpenAI o1's huge pricing problem.]]></description><link>https://thisweekinjavascript.com/p/nextjs-vs-tanstack-rsdoctor-for-rspack</link><guid isPermaLink="false">https://thisweekinjavascript.com/p/nextjs-vs-tanstack-rsdoctor-for-rspack</guid><dc:creator><![CDATA[Jam.dev]]></dc:creator><pubDate>Sun, 23 Mar 2025 17:01:54 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8d5fc3fe-c531-401f-974a-447817884c71_4000x2857.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello JavaScript Enthusiasts!</p><p>Welcome to a new edition of "<strong>This Week in JavaScript</strong>"!</p><p>Today, we're covering OpenAI's controversial pricing model, the heated Next.js vs TanStack debate, and game-changing tool releases- plus optimization techniques you won't want to miss!</p><div><hr></div><p><strong>Can&#8217;t read the newsletter? Listen on the go!</strong></p><iframe class="spotify-wrap podcast" data-attrs="{&quot;image&quot;:&quot;https://i.scdn.co/image/ab6765630000ba8acb6e2d674fd8d521902e8bc2&quot;,&quot;title&quot;:&quot;Next.js vs. TanStack, rsdoctor for rspack, OpenAI o1's pricing problem, and more EP27 JavaScript News&quot;,&quot;subtitle&quot;:&quot;Jam.dev&quot;,&quot;description&quot;:&quot;Episode&quot;,&quot;url&quot;:&quot;https://open.spotify.com/episode/24GmOLFRJodaExTO4f23Df&quot;,&quot;belowTheFold&quot;:false,&quot;noScroll&quot;:false}" src="https://open.spotify.com/embed/episode/24GmOLFRJodaExTO4f23Df" frameborder="0" gesture="media" allowfullscreen="true" allow="encrypted-media" data-component-name="Spotify2ToDOM"></iframe><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h3><strong>Next.js vs TanStack: The Framework Showdown</strong></h3><p>Kyle Gill recently shared <a href="https://www.kylegill.com/essays/next-vs-tanstack/">why he's abandoning Next.js for TanStack</a>, and many developers are following suit.</p><p><strong>Why Developers Are Switching:</strong></p><ul><li><p><strong>Simplicity vs. Complexity:</strong> Next.js offers high-scale optimization but with a steeper learning curve</p></li><li><p><strong>Practical Abstractions:</strong> TanStack provides cleaner APIs that feel more intuitive</p></li><li><p><strong>Framework Fatigue:</strong> Do you really need SSR, ISR, PPR, and other acronyms for most projects?</p></li><li><p><strong>Development Experience:</strong> TanStack paired with Vite delivers faster compile times</p></li></ul><p>The tradeoff? You lose some of Next.js's built-in performance optimizations, but gain code that's easier to reason about.</p><div><hr></div><h3><strong>Rsdoctor 1.0: Build Analysis Reimagined</strong></h3><p><a href="https://rsdoctor.dev/blog/release/release-note-1_0">Rsdoctor 1.0 has officially launched</a>, revolutionizing build analysis for Rspack and Webpack users.</p><p><strong>Standout Features:</strong></p><ul><li><p><strong>Full Transparency:</strong> Visualize your entire build process with detailed breakdowns</p></li><li><p><strong>Deep Inspection:</strong> See exactly what each loader is doing to your files</p></li><li><p><strong>Performance Boost:</strong> New Rust integration makes analysis up to 20% faster</p></li><li><p><strong>Smart Scanning:</strong> Automatically detect duplicate packages and compatibility issues</p></li></ul><p>If you've ever been frustrated by webpack slowdowns or mysterious build issues, this tool is your new best friend.</p><div><hr></div><h3><strong>OpenAI's o1 Pro: Powerful But Pricey</strong></h3><p><strong><a href="https://youtu.be/Dxq223X0kxM?si=i5y7GgqQlROY-IK2">OpenAI's o1 Pro model is making waves</a></strong> in the JavaScript community, but at what cost?</p><p><strong>Key Points:</strong></p><ul><li><p><strong>Astronomical Pricing:</strong> 136 times more expensive than other AI options</p></li><li><p><strong>Problem-Solving Beast:</strong> Can tackle complex coding challenges that stump other models</p></li><li><p><strong>User Experience Issues:</strong> Random failures and UI quirks plague the experience</p></li><li><p><strong>Better Alternatives: </strong>For most everyday tasks, the cheaper o3 mini delivers superior results</p></li></ul><p>Is the hefty price tag justified? For most developers, probably not &#8211; unless you're tackling those one-in-a-million programming puzzles.</p><div><hr></div><h3><strong>CKEditor Case Study: Lightning-Fast Loading</strong></h3><p>The team behind CKEditor shares <strong><a href="https://ckeditor.com/blog/how-we-made-our-rich-text-editor-load-faster-part-1/https://ckeditor.com/blog/how-we-made-our-rich-text-editor-load-faster-part-1/">how they achieved remarkable performance improvements</a></strong>:</p><p><strong>How They Did It:</strong></p><ul><li><p><strong>80-95% Faster:</strong> Loading times reduced dramatically without major architecture changes</p></li><li><p><strong>Smart Optimization:</strong> Improved model-view conversion process eliminated redundant operations</p></li><li><p><strong>Large Document Handling:</strong> Specialized approach for content with excessive formatting</p></li></ul><p>For anyone working with rich text editors, their methodology offers valuable lessons in optimization.</p><div><hr></div><h3><strong>Tools &amp; Releases You Should Know About</strong></h3><p>Let's speed-run through some of the other big tool updates this week!</p><ul><li><p><strong><a href="https://parceljs.org/blog/v2-14-0/">Parcel v2.14.0</a></strong>: Beta support for React Server Components, new CLI for scaffolding projects, native HTML import maps for better browser caching, and first-class MDX support built in Rust. Includes an automated migration script for Create React App users.</p></li><li><p><strong><a href="https://ionic.io/blog/announcing-ionic-8-5">Ionic 8.5</a></strong>: Enhanced form controls with helper text and error messaging, new expandToScroll property for sheet modals, full React 19 support, and improved RTL language handling for seamless cross-platform development.</p></li><li><p><strong><a href="https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v740">React Router 7.4</a></strong>: Refined routing with better type generation for server builds, improved loader behavior, and a more robust middleware system with cleaner error handling and better context typing.</p></li><li><p><strong><a href="https://revealjs.com/">Reveal.js 5.2</a></strong>: Upgraded presentation experience with a new lightbox feature for images and videos. Continues to be the go-to choice for developers who want to create stunning slides using web technologies.</p></li><li><p><strong><a href="https://peanoscript.mjgrzymek.com/tutorial">PeanoScript</a></strong>: Brings formal verification to TypeScript syntax, allowing mathematical proof of code correctness. A fascinating bridge between programming and mathematical logic, perfect for critical applications where correctness is non-negotiable.</p></li></ul><div><hr></div><p>And that's it for the twenty-seventh issue of "<strong>This Week in JavaScript</strong>", brought to you by <strong><a href="https://jam.dev/">jam.dev</a></strong>&#8212;the tool that makes it impossible for your team to send you bad bug reports.</p><p>Feel free to share this newsletter with a fellow developer, and make sure you're subscribed to get notified about the next issue.</p><p>Until next time, happy coding!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thisweekinjavascript.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading This Week in JavaScript! Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item></channel></rss>