<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>JavaScript Weekly</title>
    <description>A newsletter of JavaScript articles, news and cool projects</description>
    <link>https://javascriptweekly.com/</link>
    <item>
      <title>Create videos with HTML and JavaScript via HyperFrames</title>
      <link>https://javascriptweekly.com/issues/782</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​782 — April 21, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184040/rss" style=" color: #3366aa;"&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;JavaScript Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/184042/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/i3uvkia0thzscb525tjz.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184042/rss" title="hyperframes.heygen.com" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;HyperFrames: Write HTML and JavaScript to Create Videos&lt;/a&gt;&lt;/span&gt; — An open-source framework for creating and rendering videos with HTML and JavaScript. Essentially a simpler non-React alternative to &lt;a href="https://javascriptweekly.com/link/184043/rss" style=" color: #3366aa;   "&gt;Remotion&lt;/a&gt;. It includes a variety of &lt;a href="https://javascriptweekly.com/link/184044/rss" style=" color: #3366aa;   "&gt;built-in blocks/components&lt;/a&gt; for common video effects and elements, and can also &lt;a href="https://javascriptweekly.com/link/184045/rss" style=" color: #3366aa;   "&gt;composite existing video&lt;/a&gt; and audio clips. &lt;a href="https://javascriptweekly.com/link/184046/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;HeyGen &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/184041/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/2908056a.png" width="110" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184041/rss" title="www.meticulous.ai" style=" color: #3366aa;    font-size: 1.05em;"&gt;Still Writing Tests Manually? Meticulous AI Is Here&lt;/a&gt;&lt;/span&gt; — Notion, Dropbox, Wiz and LaunchDarkly now use a testing paradigm they can’t work without. Built by former Palantir engineers, Meticulous automatically creates an evolving suite of E2E UI tests, delivering exhaustive coverage with no developer effort.&lt;/p&gt;
  &lt;p&gt;Meticulous &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184047/rss" title="vercel.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Vercel Breach That Started with a Roblox Cheat&lt;/a&gt;&lt;/span&gt; — An employee of an AI tool provider used by a Vercel employee was compromised by malware (&lt;a href="https://javascriptweekly.com/link/184048/rss" style=" color: #3366aa;   "&gt;bundled with a Roblox cheat!&lt;/a&gt;) and the attacker used that foothold, by way of Google Workspace, to reach a subset of Vercel customers’ environment variables.&lt;/p&gt;
  &lt;p&gt;Vercel &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 Vercel users should &lt;a href="https://javascriptweekly.com/link/184050/rss" style=" color: #3366aa; font-weight: 600;"&gt;follow these steps&lt;/a&gt;, but even if you're not one, the weak link was an OAuth grant to a third-party tool, and that pattern is nearly universal.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184051/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js is moving to support the Temporal API by default&lt;/a&gt;, most likely in Node v26 which is &lt;a href="https://javascriptweekly.com/link/184052/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;expected next week.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Salesforce&lt;/em&gt; ecosystem devs are used to using specific frameworks within its walled garden; now &lt;a href="https://javascriptweekly.com/link/184053/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;you can build native React apps on Salesforce&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rust's official package/crate registry, &lt;a href="https://javascriptweekly.com/link/184054/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;crates.io&lt;/a&gt;, is &lt;a href="https://javascriptweekly.com/link/184055/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;migrating from Ember.js to Svelte 5.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184056/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js 24.15.0 (LTS)&lt;/a&gt; – &lt;code&gt;require(esm)&lt;/code&gt; and the module compile cache are marked as stable, and &lt;code&gt;--max-heap-size&lt;/code&gt; has been added.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184057/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Fable 5.0&lt;/a&gt; – A mature F# transpiler that targets JavaScript (plus other languages). &lt;a href="https://javascriptweekly.com/link/184058/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;v5.0&lt;/a&gt; adds .NET 10 and F# 10 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184059/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;uuid 14.0&lt;/a&gt; – Create RFC9562-compliant UUIDs (v1 through v7).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📖  Articles and Videos&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/184060/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eglbcnbm5bn0ebwia2vv.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://javascriptweekly.com/link/184060/rss" title="www.youtube.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Evan You's &lt;em&gt;State of Vue 2026&lt;/em&gt; Talk&lt;/a&gt;&lt;/span&gt; — A month ago, Evan You (of Vue.js and VoidZero fame) gave his annual address. Less Vue-focused than usual (though &lt;em&gt;&lt;a href="https://javascriptweekly.com/link/184061/rss" style=" color: #3366aa;   "&gt;Vapor Mode&lt;/a&gt;&lt;/em&gt; is “almost ready”), the talk focuses on Vite-ecosystem updates covering &lt;a href="https://javascriptweekly.com/link/184062/rss" style=" color: #3366aa;   "&gt;Vite 8&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/184063/rss" style=" color: #3366aa;   "&gt;Vite+&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/184064/rss" style=" color: #3366aa;   "&gt;Void.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Evan You / Vue.js Amsterdam &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184065/rss" title="stefanhaas.xyz" style=" color: #3366aa;    font-size: 1.05em;"&gt;How I Resolved 15K Circular Dependencies&lt;/a&gt;&lt;/span&gt; — &lt;s&gt;A senior Microsoft engineer’s retrospective of clearing ~15,000 project-level circular dependencies from a 7 million line(!) TypeScript monorepo, with reusable ideas for anyone wrangling a large TS workspace.&lt;/s&gt; &lt;strong&gt;For some reason this article no longer exists as of April 24.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;Stefan Haas &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184066/rss" title="ghost.build" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your Agent Ships 10 Ideas a Day. You Get 2 Databases?&lt;/a&gt;&lt;/span&gt; — Your agent builds faster than a 2-project free tier allows. &lt;i&gt;ghost&lt;/i&gt; gives it unlimited Postgres. 1TB storage. &lt;a href="https://javascriptweekly.com/link/184066/rss" style=" color: #3366aa;   "&gt;Try free&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;ghost &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184067/rss" title="tkdodo.eu" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Vertical Codebase&lt;/a&gt;&lt;/span&gt; — Structuring an app with folders like &lt;code&gt;components/&lt;/code&gt;, &lt;code&gt;hooks/&lt;/code&gt;, and &lt;code&gt;utils/&lt;/code&gt; feels tidy at first, but gets harder to live with over time. Dominik makes the case for a vertical, domain-first approach.&lt;/p&gt;
  &lt;p&gt;Dominik Dorfmeister &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🔒&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/184068/rss" title="cheatsheetseries.owasp.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;The OWASP NPM Security Best Practices Cheat Sheet&lt;/a&gt;&lt;/span&gt; — A useful, long-standing checklist that continues to be updated with recent updates tackling disabling lifecycle scripts, typosquatting, trusted publishing, and dependency confusion.&lt;/p&gt;
  &lt;p&gt;OWASP Cheat Sheet Series &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184069/rss" title="voidzero.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;How We Made the Angular Compiler Faster Using AI&lt;/a&gt;&lt;/span&gt; — Two of VoidZero’s developers wanted to see how fast an Angular compiler they could make. Very fast, it turns out.&lt;/p&gt;
  &lt;p&gt;Brooklyn and Michael Dong (VoidZero) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/184070/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Why I Don't Chain Everything in JavaScript Anymore&lt;/a&gt; – Long chains of methods vs. an easier-to-read sequence. &lt;cite&gt;Matt Smith&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/184071/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;The Scope of Type Guards and Assertion Functions&lt;/a&gt;  &lt;cite&gt;Stefan Judis&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/184072/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lesj0wvqnelzhexrgm9o.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184072/rss" title="bun.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Bun v1.3.13: Smarter Testing, Streaming Installs, and Less Memory&lt;/a&gt;&lt;/span&gt; — The &lt;a href="https://javascriptweekly.com/link/184073/rss" style=" color: #3366aa;   "&gt;Bun&lt;/a&gt; runtime has had a great run of releases, including last week’s &lt;a href="https://javascriptweekly.com/link/184074/rss" style=" color: #3366aa;   "&gt;v1.3.12&lt;/a&gt; with built-in browser automation. Now, &lt;code&gt;bun test&lt;/code&gt; gets numerous enhancements with &lt;code&gt;--isolate&lt;/code&gt;, &lt;code&gt;--parallel&lt;/code&gt;, &lt;code&gt;--shard&lt;/code&gt; and &lt;code&gt;--changed&lt;/code&gt; options for test env isolation, parallelization, and to run only test files affected by recent changes. The runtime &lt;a href="https://javascriptweekly.com/link/184075/rss" style=" color: #3366aa;   "&gt;now uses 5% less memory&lt;/a&gt;, &lt;code&gt;bun install&lt;/code&gt; gets faster, and more.&lt;/p&gt;
  &lt;p&gt;Jarred Sumner &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184076/rss" title="go.clerk.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Introducing B2B Authentication&lt;/a&gt;&lt;/span&gt; — Clerk combines Organizations, SCIM, SSO, RBAC, invites, and billing to build enterprise-ready apps.&lt;/p&gt;
  &lt;p&gt;Clerk &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/184077/rss" title="animata.design" style=" color: #3366aa;    font-size: 1.05em;"&gt;Animata: Over 100 Animated React Components&lt;/a&gt;&lt;/span&gt; — A suite of novel animation-focused React components you don't often see elsewhere, including &lt;a href="https://javascriptweekly.com/link/184078/rss" style=" color: #3366aa;   "&gt;animated beams&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/184079/rss" style=" color: #3366aa;   "&gt;spreading cards&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/184080/rss" style=" color: #3366aa;   "&gt;a Slack-style intro screen&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Codse &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📄&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/184081/rss" title="officeparser.harshankur.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;officeParser: A Library to Parse Common Office-Related Formats&lt;/a&gt;&lt;/span&gt; — Work with formats like &lt;code&gt;docx&lt;/code&gt;, &lt;code&gt;pptx&lt;/code&gt;, &lt;code&gt;xlsx&lt;/code&gt;, &lt;code&gt;odt&lt;/code&gt; and others used by office suites, both in the browser and server-side. &lt;a href="https://javascriptweekly.com/link/184082/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Harsh Ankur &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🎵&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/184083/rss" title="rexa-developer.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;tiks: Procedural UI Sounds for the Web&lt;/a&gt;&lt;/span&gt; — Clicks, pops and pings synthesized with the Web Audio API (so it’s tiny).&lt;/p&gt;
  &lt;p&gt;Rexa &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184084/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TypeGPU 0.11&lt;/a&gt; – TypeScript WebGPU toolkit with advanced type inference and the ability to write shaders in TypeScript.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/184085/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Shaka Player 5.1&lt;/a&gt; – JavaScript library for adaptive media playback supporting DASH and HLS. (&lt;a href="https://javascriptweekly.com/link/184086/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Demos.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184087/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TiddlyWiki 5.4&lt;/a&gt; – Self-contained JavaScript wiki for personal use. (&lt;a href="https://javascriptweekly.com/link/184088/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Repo.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;✂️ &lt;a href="https://javascriptweekly.com/link/184089/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Knip 6.6&lt;/a&gt; – Popular tool for finding and removing unused files, dependencies and exports.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184090/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;wasm-xlsxwriter 0.13&lt;/a&gt; – Generate Excel files in the browser or Node.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184091/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Three Fiber 9.6&lt;/a&gt; – The React renderer for Three.js.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184092/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;np 11.2&lt;/a&gt; – A better &lt;code&gt;npm publish&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184093/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;HyperFormula AI SDK&lt;/a&gt;: Give LLMs a deterministic engine to safely read, write, and calculate spreadsheet formulas. No hallucinated math.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184094/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Gauntlet AI Night School&lt;/a&gt; | RAG that holds up in production requires evaluation built in from the start. Learn how. (Virtual — 4/22)&lt;/p&gt;
 
&lt;p&gt;Builders Learn from Builders. From one builder to another: Join Mark Rober at Twilio SIGNAL, May 6–7 in San Francisco. &lt;a href="https://javascriptweekly.com/link/184095/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Register for a discounted developer ticket here!&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/184096/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sl7wvgh8y8crdmg99axs.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184096/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Git 2.54 has been released&lt;/a&gt; with a couple of headline features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;git history&lt;/code&gt; offers a new, easy way to edit commit messages or interactively split a commit into two.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can now define hooks in config files (whether in a repo, at user level, or even system level) rather than just in &lt;code&gt;.git/hooks&lt;/code&gt;. You can also run multiple hooks for the same event in this way.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you ever work with &lt;em&gt;Ruby on Rails&lt;/em&gt;, &lt;a href="https://javascriptweekly.com/link/184097/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;you might find &lt;code&gt;rails_vite&lt;/code&gt; interesting.&lt;/a&gt; It's a new tool that seamlessly brings the power of &lt;a href="https://javascriptweekly.com/link/184098/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Vite&lt;/a&gt; into Rails' pipeline.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💥 Anyone who's analyzed GitHub projects for a while knows this already, but &lt;a href="https://javascriptweekly.com/link/184099/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;there's a huge 'fake star' economy&lt;/a&gt; where people pay to make their projects look more popular than they are.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Isa Yeter explains &lt;a href="https://javascriptweekly.com/link/184100/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;how he migrated from DigitalOcean to Hetzner&lt;/a&gt; slashing his hosting bill by 84% in the process.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cloudflare has released &lt;a href="https://javascriptweekly.com/link/184101/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a preview of its new &lt;code&gt;cf&lt;/code&gt; CLI tool&lt;/a&gt; for working with its various services.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/782/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/782</guid>
    </item>
    <item>
      <title>MDN ditches React for web components in frontend rebuild</title>
      <link>https://javascriptweekly.com/issues/781</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​781 — April 14, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183753/rss" style=" color: #3366aa;"&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;JavaScript Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183680/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/gm0i5twsmyfutkc1xygg.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183680/rss" title="developer.mozilla.org" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Under the Hood of MDN's New Frontend&lt;/a&gt;&lt;/span&gt; — The hugely useful &lt;a href="https://javascriptweekly.com/link/183681/rss" style=" color: #3366aa;   "&gt;MDN&lt;/a&gt; has rebuilt its frontend stack from the ground up, ditching React for web components and a homegrown server component system. A great read on building a modern, content-heavy site without shipping unnecessary JavaScript on every page.&lt;/p&gt;
  &lt;p&gt;Leo McArdle (MDN) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/183679/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/865de20e.png" width="160" height="84" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183679/rss" title="try.expo.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Ship Mobile Apps The Way You Ship Websites&lt;/a&gt;&lt;/span&gt; — Expo gives JavaScript developers a web-like workflow for native mobile. Hot reload on device. OTA updates that skip app store review. Cloud builds that work like Vercel. Start with npx create-expo-app.&lt;/p&gt;
  &lt;p&gt;Expo &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🕹️&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183682/rss" title="phaser.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Phaser 4.0: The 2D WebGL and Canvas-Based Game Framework&lt;/a&gt;&lt;/span&gt; — The widely used game framework celebrates its 13th birthday with &lt;a href="https://javascriptweekly.com/link/183683/rss" style=" color: #3366aa;   "&gt;a major release&lt;/a&gt; focused on perf/efficiency improvements, and includes &lt;a href="https://javascriptweekly.com/link/183684/rss" style=" color: #3366aa;   "&gt;skills files&lt;/a&gt; so AI agents can build Phaser 4.0 apps well. There are &lt;a href="https://javascriptweekly.com/link/183685/rss" style=" color: #3366aa;   "&gt;lots of demos&lt;/a&gt;, including &lt;a href="https://javascriptweekly.com/link/183686/rss" style=" color: #3366aa;   "&gt;these games&lt;/a&gt;, and existing users get a &lt;a href="https://javascriptweekly.com/link/183687/rss" style=" color: #3366aa;   "&gt;v3 to v4 migration guide.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Phaser Studio Inc. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Google will &lt;a href="https://javascriptweekly.com/link/183688/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;penalize sites that 'hijack' the back button&lt;/a&gt; in its search results from June. &lt;em&gt;"Ensure you are not doing anything to interfere with a user's ability to navigate their browser history,"&lt;/em&gt; says Chris Nelson.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183689/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TanStack Start&lt;/a&gt; now has &lt;a href="https://javascriptweekly.com/link/183690/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;(experimental) React Server Components support.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇫🇷 &lt;a href="https://javascriptweekly.com/link/183691/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;dotJS&lt;/a&gt; returns to Paris, France this September 18 – &lt;a href="https://javascriptweekly.com/link/183692/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;its CFP&lt;/a&gt; is open for two more weeks if you'd like to speak.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇷🇴 The &lt;a href="https://javascriptweekly.com/link/183693/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;&lt;em&gt;JSHeroes&lt;/em&gt; conference&lt;/a&gt; is back this May 14-15 in Romania.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183694/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Bun v1.3.12&lt;/a&gt; – The JS runtime now ships with native, headless browser automation built in, and &lt;a href="https://javascriptweekly.com/link/183695/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;&lt;code&gt;Bun.cron&lt;/code&gt;&lt;/a&gt; provides an in-process task scheduler.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;⚠️ &lt;a href="https://javascriptweekly.com/link/183696/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React 19.2.5&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183697/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;19.1.6&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/183698/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;19.0.5&lt;/a&gt; have been released to deploy a fix for a React Server Components vulnerability.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183699/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Native 0.85&lt;/a&gt; – New animation backend and devtools improvements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183701/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;pnpm v11.0 RC 0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183702/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Three Fiber 9.6&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183703/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Electron 41.2&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183704/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;DOMPurify 3.4&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📖  Articles and Videos&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183705/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ekaqzknctznkltb0sfzw.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183705/rss" title="jack.cab" style=" color: #3366aa;    font-size: 1.05em;"&gt;Installing Every Firefox Extension&lt;/a&gt;&lt;/span&gt; — One person’s entertaining and heroic tale of wielding JavaScript to explore the Firefox extension ecosystem. And what oddities there are within! I enjoyed this a lot, it’s like &lt;em&gt;Alice in Wonderland&lt;/em&gt; for developers. More spelunking like this please.&lt;/p&gt;
  &lt;p&gt;Jack Cab &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183706/rss" title="blog.jcoglan.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Uses for Nested Promises&lt;/a&gt;&lt;/span&gt; — James revisits 2013's &lt;a href="https://javascriptweekly.com/link/183707/rss" style=" color: #3366aa;   "&gt;Promises/A+&lt;/a&gt; monads &lt;a href="https://javascriptweekly.com/link/183708/rss" style=" color: #3366aa;   "&gt;debate&lt;/a&gt; and has changed his mind, thanks to a real concurrency problem he ran into. Demanding but rewarding.&lt;/p&gt;
  &lt;p&gt;James Coglan &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183709/rss" title="posetteconf.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;44 Postgres Talks To Choose From All in One Free, Virtual Event&lt;/a&gt;&lt;/span&gt; — Join POSETTE: An Event for Postgres 2026, a free &amp;amp; virtual Postgres developer event, 16–18 Jun. &lt;a href="https://javascriptweekly.com/link/183709/rss" style=" color: #3366aa;   "&gt;Check out the schedule&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Microsoft | AMD &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183710/rss" title="www.inngest.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;You Can't Cancel a Promise (Except Sometimes You Can)&lt;/a&gt;&lt;/span&gt; — You can’t cancel a promise, but you can halt an async function by making it &lt;code&gt;await&lt;/code&gt; a promise that never resolves. The function silently stops, and GC cleans up after it.&lt;/p&gt;
  &lt;p&gt;Aaron Harper (Inngest) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183711/rss" title="cekrem.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Parse, Don't Validate (In a Language That Doesn't Want You To)&lt;/a&gt;&lt;/span&gt; — Tired of writing the same defensive &lt;code&gt;if&lt;/code&gt; check in multiple files because you can’t trust that validation already happened? Branded types and discriminated unions can let TypeScript carry that proof for you.&lt;/p&gt;
  &lt;p&gt;Christian Ekrem &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🌐&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183712/rss" title="polypane.app" style=" color: #3366aa;    font-size: 1.05em;"&gt;The &lt;code&gt;Intl&lt;/code&gt; API: The Best Browser API You’re Not Using&lt;/a&gt;&lt;/span&gt; — A neat code-heavy primer to what you can do with &lt;code&gt;Intl&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Kilian Valkhof &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183713/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Making Our Frontend Unit Tests Much Faster with @swc/jest&lt;/a&gt; – From 15 seconds with Jest to 4 seconds with the compatible &lt;a href="https://javascriptweekly.com/link/183714/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;@swc/jest&lt;/a&gt;. &lt;cite&gt;Sebastian Herrmann&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183715/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Creating Custom Page Transitions in Astro with Barba.js and GSAP&lt;/a&gt;  &lt;cite&gt;Iqbal Muthahhary (Codrops)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183716/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;The Uphill Climb of Making Diff Lines Performant on GitHub&lt;/a&gt; &lt;cite&gt;Ghenco and Shwert (GitHub)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183717/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Building a JavaScript Runtime with QuickJS&lt;/a&gt;  &lt;cite&gt;Andrew Healey&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183718/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/afxlfwdqfincfdil92bq.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183718/rss" title="boneyard.vercel.app" style=" color: #3366aa;    font-size: 1.05em;"&gt;Boneyard: Auto-Generated Skeleton Screens for Your UI&lt;/a&gt;&lt;/span&gt; — Snapshots your real UI and captures a flat list of skeleton ‘bones’ which are positioned, sized rectangles that mirror the page exactly. Supports React, Preact, React Native, Vue, Svelte, and Angular.&lt;/p&gt;
  &lt;p&gt;0xGF &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📈&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183719/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Micro-ML: A Toolkit of Forecasting and Clustering Algorithms&lt;/a&gt;&lt;/span&gt; — A ~56KB WASM-powered library with algorithms for regression and smoothing. Cluster points, classify data, or predict the next value in a series without dragging in TensorFlow.js.&lt;/p&gt;
  &lt;p&gt;Adam Perliński &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183720/rss" title="wallabyjs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;AI Writes Code. Wallaby MCP Makes Sure It Actually Works&lt;/a&gt;&lt;/span&gt; — Give your AI agent live execution data, coverage, and real-time insights to generate tests and code with confidence.&lt;/p&gt;
  &lt;p&gt;Wallaby Team &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183722/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Ink 7.0: Use React to Build TUIs and Command Line Apps&lt;/a&gt;&lt;/span&gt; — Powering &lt;a href="https://javascriptweekly.com/link/183723/rss" style=" color: #3366aa;   "&gt;many popular terminal apps&lt;/a&gt;, v7.0 now leans on React 19.2, uses &lt;code&gt;useEffectEvent&lt;/code&gt; internally for added efficiency, and brings new hooks and settings.&lt;/p&gt;
  &lt;p&gt;Vadim Demedes &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🔊&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183725/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;web-audio-api: Use the Web Audio API from Node and Bun&lt;/a&gt;&lt;/span&gt; — Full &lt;a href="https://javascriptweekly.com/link/183726/rss" style=" color: #3366aa;   "&gt;Web Audio API&lt;/a&gt; support to either play audio on your machine/server or render it to file (and, yes, &lt;a href="https://javascriptweekly.com/link/183727/rss" style=" color: #3366aa;   "&gt;Tone.js&lt;/a&gt; works too). There are &lt;a href="https://javascriptweekly.com/link/183728/rss" style=" color: #3366aa;   "&gt;many examples&lt;/a&gt; to enjoy.&lt;/p&gt;
  &lt;p&gt;Sébastien Piquemal &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183729/rss" title="syncpack.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Syncpack: Consistent Dependency Versions in Large JS Monorepos&lt;/a&gt;&lt;/span&gt; — A CLI tool (used by Electron, Cloudflare, Vercel and others) that finds version mismatches across your entire monorepo, fixes them, and can enforce version policies in CI to avoid future drift.&lt;/p&gt;
  &lt;p&gt;Jamie Mason &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183730/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Mantine 9.0&lt;/a&gt; – The wildly popular React component suite now includes a complete set of calendar scheduling components.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183731/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;wa-sqlite 1.1&lt;/a&gt; – WebAssembly build of SQLite enabling JavaScript-based virtual filesystems and browser storage extensions. (&lt;a href="https://javascriptweekly.com/link/183732/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Demo.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183733/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;gridstack.js 12.6&lt;/a&gt; – Build responsive drag-and-drop multi-column dashboards.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183734/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Formula.js 4.6&lt;/a&gt; – Excel's formula functions, but for JavaScript.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183735/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Lexical 0.43&lt;/a&gt; – Facebook's extensible text editor framework.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/183736/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous&lt;/a&gt; gives engineers confidence to ship faster by autonomously testing every edge case of your web app.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183737/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Manage SAML and OIDC enterprise connections via Clerk's Backend API&lt;/a&gt;. One unified endpoint for both protocols.&lt;/p&gt;
 
&lt;p&gt;⚡&lt;a href="https://javascriptweekly.com/link/183738/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Nimbalyst&lt;/a&gt;: Visual workspace for building with Claude Code &amp;amp; Codex. Integrate and manage sessions, tasks &amp;amp; files. Visually edit markdown, mockups, diagrams, code.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183739/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Gauntlet AI Night School&lt;/a&gt; | Cursor, Claude Code, or agents — how AI-first engineers choose the right tool for production. (Virtual - 4/15)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183740/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lr3xjgxnr21effijce2j.jpg" width="640" style="        line-height: 100%;     "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183740/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Windows 95 as an Electron App&lt;/a&gt;&lt;/span&gt; — A full Windows 95 experience as an app on macOS, Linux, and Windows, built upon the &lt;a href="https://javascriptweekly.com/link/183741/rss" style=" color: #3366aa;   "&gt;v86&lt;/a&gt; JavaScript + WASM emulator. &lt;a href="https://javascriptweekly.com/link/183742/rss" style=" color: #3366aa;   "&gt;v5.0&lt;/a&gt; is a big release as you can mount a folder from your machine into it as a Z: drive, mount ISOs as CD-ROMs, there’s a shared clipboard, and Internet access has been improved. I’m &lt;em&gt;so&lt;/em&gt; trying to get &lt;em&gt;Microsoft Encarta&lt;/em&gt;’s &lt;a href="https://javascriptweekly.com/link/183743/rss" style=" color: #3366aa;   "&gt;Mindmaze&lt;/a&gt; running on this…&lt;/p&gt;
  &lt;p&gt;Felix Rieseberg &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🎨 Sticking to the retro theme, a new release of &lt;a href="https://javascriptweekly.com/link/183744/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;JSPaint&lt;/a&gt; has landed too, so you can relive the joy of using &lt;em&gt;MS Paint&lt;/em&gt;. &lt;a href="https://javascriptweekly.com/link/183745/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Try it here.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It's ten years since Domenic Denicola &lt;a href="https://javascriptweekly.com/link/183746/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;posted about adding JavaScript modules to the web platform&lt;/a&gt; – how far we've come since!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub has &lt;a href="https://javascriptweekly.com/link/183747/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a private preview of 'stacked PRs'&lt;/a&gt;, a feature to break large changes into smaller, dependent parts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TanStack Router, Start, and Query have gained &lt;a href="https://javascriptweekly.com/link/183748/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;beta support for Solid 2.0.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎤 &lt;a href="https://javascriptweekly.com/link/183749/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;A 50-minute chat&lt;/a&gt; (with transcript) from two of the developers behind the &lt;a href="https://javascriptweekly.com/link/183750/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;npmx project&lt;/a&gt; — an increasingly popular way to browse the npm registry.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183751/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;JSON Alexander&lt;/a&gt; is a new JSON viewer extension for Chrome and Firefox from Wes Bos, complete with a snazzy George Costanza logo.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/781/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/781</guid>
    </item>
    <item>
      <title>What to know about JavaScript in 2026</title>
      <link>https://javascriptweekly.com/issues/780</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​780 — April 7, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183301/rss" style=" color: #3366aa;"&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;JavaScript Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183303/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/clia2za7y4fbmgwelaod.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183303/rss" title="discourse.llvm.org" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;JSIR: A High-Level IR for JavaScript from Google&lt;/a&gt;&lt;/span&gt; — Google has open sourced a new tool (&lt;a href="https://javascriptweekly.com/link/183304/rss" style=" color: #3366aa;   "&gt;JSIR&lt;/a&gt;) and proposed an industry-standard IR (&lt;a href="https://javascriptweekly.com/link/183305/rss" style=" color: #3366aa;   "&gt;Intermediate Representation&lt;/a&gt; – if an AST tells you what the code &lt;em&gt;looks like&lt;/em&gt;, an IR tells you what it &lt;em&gt;does&lt;/em&gt;) for JavaScript. Already used at Google for analysis and code transformation, the underlying idea could form a foundation for a new generation of tooling.&lt;/p&gt;
  &lt;p&gt;Zhixun Tan (Google) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 Most devs won't feel the impact for a while, but this is the kind of groundwork that can lead to better linters, smarter bundlers, better refactoring tools, and so forth.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/183302/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8534bab8.jpg" width="110" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183302/rss" title="www.addevent.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Free Workshop: Claude Code Deep Dive — April 21&lt;/a&gt;&lt;/span&gt; — Lydia Hallie from Anthropic teaches a full-day Claude Code workshop at Frontend Masters on April 21. Free to attend. No subscription required.&lt;/p&gt;
  &lt;p&gt;Frontend Masters &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183306/rss" title="frontendmasters.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;What to Know in JavaScript (2026 Edition)&lt;/a&gt;&lt;/span&gt; — An up-to-date overview of the JS landscape, including the latest ECMAScript additions, frameworks to keep tabs on, runtimes, build tools, and more. A good way to catch up.&lt;/p&gt;
  &lt;p&gt;Chris Coyier &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🔓 The Axios team has published &lt;a href="https://javascriptweekly.com/link/183363/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a postmortem of last week's npm supply chain compromise&lt;/a&gt;. There's also a look into &lt;a href="https://javascriptweekly.com/link/183364/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;how the social engineering part worked.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 WebKit, Google and Mozilla have &lt;a href="https://javascriptweekly.com/link/183361/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;unveiled &lt;em&gt;JetStream 3&lt;/em&gt;&lt;/a&gt;, the latest version of a suite of popular browser-oriented JS and WASM performance benchmarks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183309/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Cloudflare has released &lt;em&gt;EmDash&lt;/em&gt;&lt;/a&gt;, a JavaScript-flavored &lt;em&gt;'spiritual successor to WordPress'&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183310/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;The Svelte team has published its latest monthly roundup.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183311/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ESLint v10.2.0&lt;/a&gt; – Adds support for language-aware rules through a new &lt;code&gt;meta.languages&lt;/code&gt; property. &lt;code&gt;Temporal&lt;/code&gt; is now also supported.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183312/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js 25.9.0 (Current)&lt;/a&gt; – Adds &lt;code&gt;--max-heap-size&lt;/code&gt; to set a max heap size for a process, and includes &lt;a href="https://javascriptweekly.com/link/183313/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;&lt;code&gt;stream/iter&lt;/code&gt;&lt;/a&gt;, a new experimental iterable streams API.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📖  Articles and Videos&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183315/rss" title="daniakash.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Minimum Release Age is an Underrated Supply Chain Defense&lt;/a&gt;&lt;/span&gt; — An increasingly common package manager feature is being able to specify a minimum ‘package age’. The idea is that if you wait, then maintainers, security tools, etc. will tackle the most nefarious supply chain attacks. It’s no silver bullet, but may suit your use case, and here’s how to set it up.&lt;/p&gt;
  &lt;p&gt;Dani Akash &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://javascriptweekly.com/link/183316/rss" title="www.youtube.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;TanStack Start: A Client-First Web Framework&lt;/a&gt;&lt;/span&gt; — A 30-minute talk from TanStack’s founder showcasing &lt;a href="https://javascriptweekly.com/link/183317/rss" style=" color: #3366aa;   "&gt;TanStack Start&lt;/a&gt;’s value proposition for both React and Solid developers looking for a complete SSR framework.&lt;/p&gt;
  &lt;p&gt;Tanner Linsley &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183318/rss" title="www.tigerdata.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;One Extension Replaces Your Entire Analytics Pipeline&lt;/a&gt;&lt;/span&gt; — TimescaleDB adds hypertables, 95% compression, and continuous aggregates to Postgres. Analytics on live data. Try for free.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183319/rss" title="openjsf.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Burnout is Real for Open Source Maintainers&lt;/a&gt;&lt;/span&gt; — A 40-minute audio interview (along with a nice write up) with John-David Dalton, the creator of &lt;a href="https://javascriptweekly.com/link/183320/rss" style=" color: #3366aa;   "&gt;Lodash&lt;/a&gt;, one of JavaScript's most popular projects.&lt;/p&gt;
  &lt;p&gt;The OpenJS Foundation &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183321/rss" title="blog.gitbutler.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Great CSS Expansion&lt;/a&gt;&lt;/span&gt; — A thorough review of Web-based tasks that were once JavaScript’s natural domain (e.g. tooltips, dialogs, scroll animations) but for which modern CSS now excels.&lt;/p&gt;
  &lt;p&gt;Pavel Laptev &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183322/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Building a Dual-Scene Fluid 'X-Ray Reveal' Effect in Three.js&lt;/a&gt;  &lt;cite&gt;Cullen Webber&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183323/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Quick Tip: &lt;code&gt;Intl&lt;/code&gt; Can Localize Units, Too&lt;/a&gt;  &lt;cite&gt;Stefan Judis&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183324/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Things Learned Migrating to Solid 2.0&lt;/a&gt;  &lt;cite&gt;Brenley Dueck&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183325/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qbelblco3qxogy63pwvv.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183325/rss" title="fusejs.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Fuse.js 7.3: Lightweight Fuzzy-Search&lt;/a&gt;&lt;/span&gt; — Want a search feature tolerant to ambiguous input &lt;em&gt;without&lt;/em&gt; a dedicated backend? &lt;a href="https://javascriptweekly.com/link/183326/rss" style=" color: #3366aa;   "&gt;v7.3&lt;/a&gt; adds per-term fuzzy matching and a static method for single string matching, while &lt;a href="https://javascriptweekly.com/link/183327/rss" style=" color: #3366aa;   "&gt;v7.4 beta&lt;/a&gt; adds &lt;a href="https://javascriptweekly.com/link/183328/rss" style=" color: #3366aa;   "&gt;worker-based distributed search&lt;/a&gt; for tackling huge datasets. &lt;a href="https://javascriptweekly.com/link/183329/rss" style=" color: #3366aa;   "&gt;A demo&lt;/a&gt; shows off the basics.&lt;/p&gt;
  &lt;p&gt;Kiro Risk &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183330/rss" title="fandf.co" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your CI doesn't have to be this slow&lt;/a&gt;&lt;/span&gt; — Depot CI: 2-3s job starts, parallel steps, SSH debugging. Run &lt;code&gt;depot ci migrate&lt;/code&gt; to move your GitHub Actions in minutes.&lt;/p&gt;
  &lt;p&gt;Depot &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183331/rss" title="blogs.windows.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Announcing Babylon.js 9.0&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/183332/rss" style=" color: #3366aa;   "&gt;Microsoft's popular rendering engine&lt;/a&gt; for building interactive, 3D web experiences now has a node-based particle editor, &lt;a href="https://javascriptweekly.com/link/183333/rss" style=" color: #3366aa;   "&gt;volumetric lighting&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183334/rss" style=" color: #3366aa;   "&gt;advanced Gaussian splatting&lt;/a&gt;, and more.&lt;/p&gt;
  &lt;p&gt;Carter &amp;amp; Lucchini (Microsoft) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183335/rss" title="marked.js.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Marked.js 18.0: A Fast Markdown Parser and Compiler&lt;/a&gt;&lt;/span&gt; — A low-level Markdown compiler built for speed. &lt;a href="https://javascriptweekly.com/link/183336/rss" style=" color: #3366aa;   "&gt;The demo&lt;/a&gt; shows off the basics. v18 is largely a bug fix release that also bumps it up to TypeScript 6. &lt;a href="https://javascriptweekly.com/link/183337/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Christopher Jeffrey &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183338/rss" title="tinybase.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;TinyBase v8.1: A Reactive Data Store for Local-First Apps&lt;/a&gt;&lt;/span&gt; — A reactive data store and sync engine that can be used as the entire backend for many types of app, &lt;strong&gt;now with native Svelte 5 support.&lt;/strong&gt;&lt;/p&gt;
  &lt;p&gt;James Pearce &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183339/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;xdk-typescript: The Official 'XDK' for the X API&lt;/a&gt;&lt;/span&gt; — The social media platform’s new official SDK for its API (good luck).&lt;/p&gt;
  &lt;p&gt;X Dev Platform &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183314/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;npm-check-updates v20.0.0&lt;/a&gt; – Upgrade &lt;code&gt;package.json&lt;/code&gt; dependencies to latest versions while preserving semantic versioning policies. Now supporting cooldowns.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183340/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Neutralinojs 6.7&lt;/a&gt; – The cross-platform desktop app framework adds an API for input device simulation and handling.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://javascriptweekly.com/link/183341/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;SVGInject 2.0&lt;/a&gt; – Inlines SVG files into the DOM at runtime (no build step) so you can style them with CSS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183342/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;vue-clamp 1.0&lt;/a&gt; – Primitives for clamping multiline text, inline strings, and wrapped items in Vue 3. (&lt;a href="https://javascriptweekly.com/link/183343/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Demo.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183344/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;vue-virtual-scroller 2.0&lt;/a&gt; – Fast virtual-scrolling for lists in Vue 3.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183345/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Verdaccio 6.4&lt;/a&gt; – Run your own local private npm registry.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183346/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Native Skia 2.6&lt;/a&gt; – Fast 2D graphics library for RN.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183347/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;SunEditor 3.0&lt;/a&gt; – Extensible, vanilla JS WYSIWYG editor.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183348/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;hucre 0.3&lt;/a&gt; – Zero-dependency spreadsheet engine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183349/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;bwip-js 4.9&lt;/a&gt; – Pure JavaScript barcode writer.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;Most engineers can't prove they're AI-first in an interview. &lt;a href="https://javascriptweekly.com/link/183350/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Gauntlet's&lt;/a&gt; CTO breaks down exactly what separates those who can.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/183351/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous&lt;/a&gt; gives engineers confidence to ship faster by autonomously testing every edge case of your web app.&lt;/p&gt;
 
&lt;p&gt;Every app needs a bit of spreadsheet in it. &lt;a href="https://javascriptweekly.com/link/183352/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Handsontable&lt;/a&gt; delivers Excel-like experiences fast, without the risk and complexity.&lt;/p&gt;
 
&lt;p&gt;Access Google Search, Maps, Shopping, and more real-time data with a simple API by &lt;a href="https://javascriptweekly.com/link/183353/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;SerpApi.&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183354/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/l6ibojqnoesy4fogc1ju.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In &lt;a href="https://javascriptweekly.com/link/183354/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;CSS is DOOMed&lt;/a&gt;, Niels Leenheer shows off how he implemented a version of 1993's &lt;em&gt;Doom&lt;/em&gt; using purely CSS rendering (with the game logic in JavaScript). &lt;a href="https://javascriptweekly.com/link/183355/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Play it for yourself&lt;/a&gt; or &lt;a href="https://javascriptweekly.com/link/183356/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;check out the code.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183357/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;QuickBEAM&lt;/a&gt; is a JavaScript runtime for Erlang's BEAM VM, as also used by &lt;a href="https://javascriptweekly.com/link/183358/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Elixir.&lt;/a&gt; It offers compatibility with core Node.js APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In &lt;a href="https://javascriptweekly.com/link/183359/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;CSS or BS?&lt;/a&gt; find out how good you are at telling real-life CSS properties from made up ones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;✉️ Spencer Mortensen &lt;a href="https://javascriptweekly.com/link/183360/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;put twenty-five email address obfuscation techniques to the test&lt;/a&gt; to see which &lt;em&gt;actually&lt;/em&gt; work in 2026.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/780/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 7 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/780</guid>
    </item>
    <item>
      <title>A new, major npm supply chain attack via Axios</title>
      <link>https://javascriptweekly.com/issues/779</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​779 — March 31, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183032/rss" style=" color: #3366aa;"&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;JavaScript Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183093/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/hscgioobwckiiyh4eyof.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183093/rss" title="www.stepsecurity.io" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;&lt;code&gt;axios&lt;/code&gt; Package Compromised; Malicious Versions Added a Trojan Dependency&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/183094/rss" style=" color: #3366aa;   "&gt;Axios&lt;/a&gt; is an HTTP library that gets 100M+ downloads a week, largely due to its legacy popularity. An attacker took advantage of that to roll out a version with a malicious dependency including a remote access trojan (though Axios' codebase &lt;em&gt;itself&lt;/em&gt; was fine). This is big, as even if &lt;em&gt;you&lt;/em&gt; don’t use Axios, your dependencies might. Here's &lt;a href="https://javascriptweekly.com/link/183095/rss" style=" color: #3366aa;   "&gt;how to see if you're affected.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Ashish Kurmi &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 &lt;b&gt;More:&lt;/b&gt; Socket offers &lt;a href="https://javascriptweekly.com/link/183096/rss" style=" color: #3366aa; font-weight: 600;"&gt;a more accessible breakdown&lt;/a&gt;. There's also &lt;a href="https://javascriptweekly.com/link/183097/rss" style=" color: #3366aa; font-weight: 600;"&gt;a GitHub issue&lt;/a&gt; discussing the matter. It's worth considering &lt;a href="https://javascriptweekly.com/link/183098/rss" style=" color: #3366aa; font-weight: 600;"&gt;pinning your dependencies&lt;/a&gt;, preventing post-install scripts from running (can be configured with &lt;code&gt;npm&lt;/code&gt; but is the default in pnpm and Bun) and/or using cooldowns for dependency updates (using &lt;a href="https://javascriptweekly.com/link/183099/rss" style=" color: #3366aa; font-weight: 600;"&gt;&lt;code&gt;minimumReleaseAge&lt;/code&gt;&lt;/a&gt; in npm or &lt;a href="https://javascriptweekly.com/link/183100/rss" style=" color: #3366aa; font-weight: 600;"&gt;pnpm's approach&lt;/a&gt;).&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/183033/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1f750717.png" width="130" height="130" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183033/rss" title="" style=" color: #3366aa;    font-size: 1.05em;"&gt;Still Writing Tests Manually? Meticulous AI Is Here&lt;/a&gt;&lt;/span&gt; — Notion, Dropbox, Wiz and LaunchDarkly now use a testing paradigm they can’t work without. Built by former Palantir engineers, Meticulous automatically creates an evolving suite of E2E UI tests, delivering exhaustive coverage with no developer effort.&lt;/p&gt;
  &lt;p&gt;Meticulous &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183034/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Transformers.js v4: Run AI Models in the Browser&lt;/a&gt;&lt;/span&gt; — Brings &lt;a href="https://javascriptweekly.com/link/183035/rss" style=" color: #3366aa;   "&gt;Hugging Face&lt;/a&gt;-hosted transformer models into JavaScript, so you can run NLP, vision, and audio models in-browser. v4 switches to a WebGPU runtime and is installable with npm. There are &lt;a href="https://javascriptweekly.com/link/183036/rss" style=" color: #3366aa;   "&gt;many live demos&lt;/a&gt; covering &lt;a href="https://javascriptweekly.com/link/183037/rss" style=" color: #3366aa;   "&gt;real-time speech transcription&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183038/rss" style=" color: #3366aa;   "&gt;using Qwen 3.5&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/183039/rss" style=" color: #3366aa;   "&gt;real-time video captioning.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Hugging Face &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183040/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Inertia.js 3.0&lt;/a&gt; – Glue between React, Vue and Svelte SPAs and non-JS server-side frameworks like Laravel, Rails and Django. &lt;a href="https://javascriptweekly.com/link/183041/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;More on v3 here.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183042/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js March 24, 2026 Security Releases&lt;/a&gt; - Including &lt;a href="https://javascriptweekly.com/link/183043/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js v25.8.2 (Current)&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183044/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;v24.14.1 (LTS)&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183045/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;v22.22.2 (LTS)&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/183046/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;v20.20.2 (LTS)&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183047/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TanStack DB 0.6&lt;/a&gt; – Now with persistence, offline support, and hierarchical data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183048/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Astro 6.1&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183049/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Mantine 9.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183050/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Ky 2.0 Prerelease&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183051/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;CKEditor 48.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183052/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;pnpm 10.33&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📖  Articles and Videos&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183053/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xiqo1c9nlcnj9gh3bhiz.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183053/rss" title="willybrauner.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Signals: The Push-Pull Based Algorithm&lt;/a&gt;&lt;/span&gt; — A well-diagrammed ground-up explanation of how &lt;a href="https://javascriptweekly.com/link/183054/rss" style=" color: #3366aa;   "&gt;signals&lt;/a&gt; work internally, focusing on the push-pull algorithm at the core of reactivity in frameworks like Solid, Vue, and Angular.&lt;/p&gt;
  &lt;p&gt;Willy Brauner &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🖼️&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183055/rss" title="macarthur.me" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your Options for Preloading Images with JavaScript&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;“There are a number of ways to preload an image on demand with JavaScript, each with their own strengths and drawbacks. Let's explore them.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Alex MacArthur &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://javascriptweekly.com/link/183056/rss" title="youtube.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Stop Guessing Where Your Next.js App Broke&lt;/a&gt;&lt;/span&gt; — 7 videos on error monitoring, replays, tracing, and alerts to debug across your Next.js stack. &lt;a href="https://javascriptweekly.com/link/183056/rss" style=" color: #3366aa;   "&gt;Watch now&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Sentry &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183057/rss" title="wasp.sh" style=" color: #3366aa;    font-size: 1.05em;"&gt;A Gentle Intro to npm Workspaces (With Visuals)&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/183058/rss" style=" color: #3366aa;   "&gt;Workspaces&lt;/a&gt; let you manage multiple packages in one repo and link local packages so they can import each other by name. npm may then hoist and deduplicate compatible dependencies during install.&lt;/p&gt;
  &lt;p&gt;Carlos Precioso &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183059/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;'I Decompiled the White House's New App'&lt;/a&gt; – Among the surprises in the React Native app are a cookie/paywall bypass injector and dynamic loading of JavaScript from a random user’s GitHub Pages... &lt;cite&gt;Thereallo&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183060/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Building a Scroll-Reactive 3D Gallery with Three.js, Velocity, and Mood-Based Backgrounds&lt;/a&gt;  &lt;cite&gt;Houmahani Kane&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/183061/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Why We Replaced Node.js with Bun for 5x Throughput&lt;/a&gt;  &lt;cite&gt;Nick at Trigger&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183087/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wr8dtkzww9icxfo8kpoi.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183087/rss" title="simonwillison.net" style=" color: #3366aa;    font-size: 1.05em;"&gt;Pretext: A Multiline Text Measurement and Layout Library&lt;/a&gt;&lt;/span&gt; — Cheng Lou, formerly a React core team member, caused a stir with &lt;a href="https://javascriptweekly.com/link/183088/rss" style=" color: #3366aa;   "&gt;this X post&lt;/a&gt; three days ago, racking up 22M impressions and getting 25k stars on &lt;a href="https://javascriptweekly.com/link/183089/rss" style=" color: #3366aa;   "&gt;this repo&lt;/a&gt; since. Why? People are &lt;em&gt;very&lt;/em&gt; excited about the potential for real time web layouts! There are &lt;a href="https://javascriptweekly.com/link/183090/rss" style=" color: #3366aa;   "&gt;demos here&lt;/a&gt; if you want to see what the excitement is about, although the library itself is reasonably straightforward.&lt;/p&gt;
  &lt;p&gt;Cheng Lou &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183062/rss" title="try.expo.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;GitHub Actions 🤝Expo CI/CD Workflows&lt;/a&gt;&lt;/span&gt; — Keep GitHub Actions. Add Expo Workflows for mobile: M4 Pro builds, E2E tests, OTA. Let each tool handle what it’s best at.&lt;/p&gt;
  &lt;p&gt;Expo &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183063/rss" title="knip.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Knip v6: The Tool to Declutter Your JS/TS Projects&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/183064/rss" style=" color: #3366aa;   "&gt;Knip&lt;/a&gt; is a &lt;em&gt;go-to&lt;/em&gt; tool for finding and removing unused files, exports, and dependencies in projects. v6 integrates &lt;em&gt;oxc&lt;/em&gt; for 2-4x performance gains (it tears through &lt;em&gt;Astro&lt;/em&gt; in two seconds) and is largely a drop-in upgrade.&lt;/p&gt;
  &lt;p&gt;Lars Kappert &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📺&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/183065/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;ArtPlayer: A Modern, Full-Featured HTML5 Video Player&lt;/a&gt;&lt;/span&gt; — A straightforward way to get your own heavily-customizable YouTube-style player experience. There’s &lt;a href="https://javascriptweekly.com/link/183066/rss" style=" color: #3366aa;   "&gt;a full, live demo/playground&lt;/a&gt; showing it off.&lt;/p&gt;
  &lt;p&gt;Harvey Zhao &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/183067/rss" title="semiotic.nteract.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Semiotic 3.0: React + D3 Data Visualization Framework&lt;/a&gt;&lt;/span&gt; — Does the basics well, but has some more unique offerings like &lt;a href="https://javascriptweekly.com/link/183068/rss" style=" color: #3366aa;   "&gt;choropleth maps&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183069/rss" style=" color: #3366aa;   "&gt;Sankey diagrams&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/183070/rss" style=" color: #3366aa;   "&gt;flow maps&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/183071/rss" style=" color: #3366aa;   "&gt;violin plots&lt;/a&gt;, plus streaming data support.&lt;/p&gt;
  &lt;p&gt;nteract &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183072/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wvpr78nmzpjjo73nyorf.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183072/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Heat.js 5.1&lt;/a&gt; &lt;em&gt;(above)&lt;/em&gt; – Generate heat maps, charts, and statistics to visualize date-based activity. Now with point/line chart support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183091/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;numpy-ts 1.2&lt;/a&gt; – NumPy implementation for TypeScript and JavaScript. Now at ~50% native performance and with Float16 support. (&lt;a href="https://javascriptweekly.com/link/183092/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Homepage&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183073/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ts-blank-space 0.8&lt;/a&gt; – Pure JavaScript type-stripper using the TypeScript 6 parser.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183074/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;RxDB 17.0&lt;/a&gt; – Reactive NoSQL database for JS apps with local-first capabilities.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183075/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;filesize.js 11.0.15&lt;/a&gt; – Converts byte counts into human-readable file size strings.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💳 &lt;a href="https://javascriptweekly.com/link/183076/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Stripe.js 6.0&lt;/a&gt; – Components for Stripe.js and Stripe Elements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183077/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;css-select 7.0&lt;/a&gt; – CSS selector compiler and engine. Now ESM.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183078/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ESLint Markdown Plugin 8.0&lt;/a&gt; – Lint Markdown with ESLint.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;⚡&lt;a href="https://javascriptweekly.com/link/183079/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Nimbalyst&lt;/a&gt;: Visual workspace for building with Claude Code &amp;amp; Codex. Manage sessions &amp;amp; tasks. Visually edit markdown, mockups, diagrams, code.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/183101/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Gauntlet AI Live Night School&lt;/a&gt; - Stop Shipping Slop: How to Verify AI Generated Code for Production Deployments (Virtual - 4/1)&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/183081/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xcilxcd2tfzp8xwakvba.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;JetBrains' Java/Kotlin IDE &lt;em&gt;IntelliJ IDEA&lt;/em&gt; now &lt;a href="https://javascriptweekly.com/link/183081/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;includes core JavaScript and TypeScript features for free&lt;/a&gt; (no &lt;em&gt;Ultimate&lt;/em&gt; subscription needed).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Vercel explains &lt;a href="https://javascriptweekly.com/link/183082/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the work going on to make Next.js work better across cloud platforms.&lt;/a&gt; The &lt;em&gt;Adapter API&lt;/em&gt; provides a way for platforms to adjust apps to suit their environment. OpenNext, Netlify, Cloudflare, AWS Amplify, and Google Cloud are all on board.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 GitHub has announced, starting late April, data (including inputs and snippets) from Free/Pro/Pro+ Copilot users &lt;a href="https://javascriptweekly.com/link/183083/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;will be used, by default, to help train future AI models&lt;/a&gt;. You can opt out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 A developer noticed &lt;a href="https://javascriptweekly.com/link/183084/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Copilot edited an 'ad' into one of his PRs!&lt;/a&gt; GitHub's Martin Woodward &lt;a href="https://javascriptweekly.com/link/183085/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;explained (on &lt;em&gt;X&lt;/em&gt;) why it happened&lt;/a&gt; and said the 'feature' has been disabled.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔠 Looking for a new IDE font option? &lt;a href="https://javascriptweekly.com/link/183086/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;CodingFont&lt;/a&gt; lets you find your ideal choice &lt;em&gt;visually&lt;/em&gt; using a bracket-style faceoff. &lt;em&gt;Noto Sans Mono&lt;/em&gt; won for me – not one I'd considered before!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/779/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/779</guid>
    </item>
  </channel>
</rss>
