<?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>npm and pnpm introduce staged publishing</title>
      <link>https://javascriptweekly.com/issues/787</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="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-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​787 — May 26, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185661/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-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-size: 15px; line-height: 1.48em; padding: 0 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185663/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kpiq6sqaxoik0wuhn14u.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-size: 15px; line-height: 1.48em; padding: 0px 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/185663/rss" title="lyra.horse" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;JS Crossword: All the Answers are JavaScript&lt;/a&gt;&lt;/span&gt; — This hand-crafted puzzle will seriously stretch your JavaScript knowledge. I’ve seen so many people on social media either cheering having finished it or cursing being stuck…&lt;/p&gt;
  &lt;p&gt;Lyra Rebane &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 I've put some (educational!) tips at the end of this issue.&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185662/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/20f71006.png" width="160" height="90" 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/185662/rss" title="try.expo.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Expo UI Hits Stable: Native iOS &amp;amp; Android from One Import&lt;/a&gt;&lt;/span&gt; — From a single import, @expo/ui ships SwiftUI on iOS and Jetpack Compose on Android with the real platform components underneath. SDK 56 also lands native drop-in replacements for seven common React Native community packages.&lt;/p&gt;
  &lt;p&gt;Expo &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185664/rss" title="docs.npmjs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Staged Publishing for npm Packages Goes Live&lt;/a&gt;&lt;/span&gt; — npm’s ‘staged publishing’ model provides a review period with approval required before packages go live on the npm registry. Both &lt;a href="https://javascriptweekly.com/link/185665/rss" style=" color: #3366aa;   "&gt;npm 11.15.0&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/185666/rss" style=" color: #3366aa;   "&gt;pnpm 11.3&lt;/a&gt; have added support.&lt;/p&gt;
  &lt;p&gt;The npm Project &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 &lt;a href="https://javascriptweekly.com/link/185667/rss" style=" color: #3366aa; font-weight: 500;"&gt;In this broader writeup&lt;/a&gt;, GitHub also introduced npm's new &lt;code&gt;--allow-*&lt;/code&gt; options to control over where npm is allowed to source packages from.&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-size: 15px; line-height: 1.48em; padding: 0px 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/185668/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Firefox has added Web Serial support in Firefox 151&lt;/a&gt; so you can connect to microcontrollers, 3D printers, and other serial-connected hardware from JS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mozilla's Ryan Hunt &lt;a href="https://javascriptweekly.com/link/185711/rss" style=" color: #3366aa; font-weight: 500;   "&gt;says goodbye to asm.js&lt;/a&gt; as Firefox's JS engine now disables optimizations for it by default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 &lt;a href="https://javascriptweekly.com/link/185669/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Modern Web Guidance&lt;/a&gt; is a suite of expert-vetted skills to guide agents in building modern web experiences, e.g. &lt;code&gt;"begin preloading pages when users hover over important links."&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185670/rss" style=" color: #3366aa; font-weight: 500;   "&gt;TC39 held its latest meeting last week&lt;/a&gt; – a roundup is due soon.&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-size: 15px; line-height: 1.48em; padding: 0px 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/185671/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Storybook 10.4&lt;/a&gt; – the frontend component workshop – has added first-class TanStack React support and the ability for agents to set up Storybook in complex apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185672/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node.js v26.2.0 (Current)&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/185673/rss" style=" color: #3366aa; font-weight: 500;   "&gt;v24.16.0 (LTS)&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185666/rss" style=" color: #3366aa; font-weight: 500;   "&gt;pnpm 11.3&lt;/a&gt; – Adds &lt;code&gt;pnpm stage&lt;/code&gt; for &lt;a href="https://javascriptweekly.com/link/185664/rss" style=" color: #3366aa; font-weight: 500;   "&gt;staged publishing&lt;/a&gt;, &lt;code&gt;trustLockfile&lt;/code&gt; for setting controls around application of trust policies, native &lt;code&gt;pkg&lt;/code&gt;, &lt;code&gt;repo&lt;/code&gt; and &lt;code&gt;set-script&lt;/code&gt; commands &amp;amp; more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185674/rss" style=" color: #3366aa; font-weight: 500;   "&gt;npm 12.0 Prerelease&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185675/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Apache ECharts 6.1&lt;/a&gt; (&lt;a href="https://javascriptweekly.com/link/185676/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Demos.&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em; padding: 0px 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/185677/rss" title="developer.chrome.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Chrome Previews &lt;em&gt;Declarative Partial Updates&lt;/em&gt;&lt;/a&gt;&lt;/span&gt; — Two new sets of APIs for working with HTML out-of-order, whether in the doc itself (via &lt;code&gt;&amp;lt;template for&amp;gt;&lt;/code&gt;) or through dynamic insertion (via &lt;code&gt;setHTML&lt;/code&gt;/&lt;code&gt;streamHTML&lt;/code&gt;). Experimental in Chrome 148 but &lt;a href="https://javascriptweekly.com/link/185678/rss" style=" color: #3366aa;   "&gt;polyfills&lt;/a&gt; &lt;a href="https://javascriptweekly.com/link/185679/rss" style=" color: #3366aa;   "&gt;exist&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Pollard and Rosenthal (Chrome) &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-size: 15px; line-height: 1.48em; padding: 0px 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/185680/rss" title="engineeringblog.yelp.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Optimizing Our Build Times by Migrating from Webpack to Rspack&lt;/a&gt;&lt;/span&gt; — How Yelp cut build times in half with &lt;a href="https://javascriptweekly.com/link/185681/rss" style=" color: #3366aa;   "&gt;Rspack&lt;/a&gt; (a Rust-powered drop-in replacement for webpack) and what they learned about barrel files and re-exports.&lt;/p&gt;
  &lt;p&gt;Benson Pan (Yelp) &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-size: 15px; line-height: 1.48em; padding: 0px 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/185682/rss" title="ghost.build" style=" color: #3366aa;    font-size: 1.05em;"&gt;Unlimited Postgres for Developers and Their Agents&lt;/a&gt;&lt;/span&gt; — &lt;i&gt;ghost&lt;/i&gt; gives your agent unlimited postgres forks. No project limits, no cleanup, 1TB storage, 100 hrs/mo free. &lt;a href="https://javascriptweekly.com/link/185682/rss" style=" color: #3366aa;   "&gt;Try for 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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185683/rss" title="www.microsoft.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Microsoft's Analysis of the Recent &lt;em&gt;Mini Shai-Hulud&lt;/em&gt; Compromise&lt;/a&gt;&lt;/span&gt; — A detailed post-mortem of last week’s &lt;a href="https://javascriptweekly.com/link/185684/rss" style=" color: #3366aa;   "&gt;‘Mini Shai-Hulud’&lt;/a&gt; npm security chain compromise.&lt;/p&gt;
  &lt;p&gt;Microsoft Defender Security Research Team &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🤖 &lt;a href="https://javascriptweekly.com/link/185685/rss" style=" color: #3366aa; font-weight: 500;   "&gt;AI-Assisted Engineers are Burning Out: Is This Fine?&lt;/a&gt; – A look at the negative effects of AI-assisted coding and how to avoid burning yourself out. &lt;cite&gt;Ivan Chepurin&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185686/rss" style=" color: #3366aa; font-weight: 500;   "&gt;A Simple Clustering Algorithm for Lists&lt;/a&gt; – Some algorithm fun. &lt;cite&gt;Cassidy Williams&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em; padding: 0px 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/185687/rss" title="deno.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Deno 2.8: The 'Biggest Minor Release' to Date&lt;/a&gt;&lt;/span&gt; — The headline is that Node.js compatibility has jumped from 42% in Deno 2.7 to 76.4% now (higher than Bun). Deno also gets &lt;a href="https://javascriptweekly.com/link/185688/rss" style=" color: #3366aa;   "&gt;huge perf gains&lt;/a&gt; across the board and drops the &lt;code&gt;npm:&lt;/code&gt; prefix requirement when adding/installing packages. Plus many other things, including:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New commands including: &lt;code&gt;audit fix&lt;/code&gt; to upgrade vulnerable dependencies, &lt;code&gt;pack&lt;/code&gt; to build a project into a npm-publishable tarball, and &lt;code&gt;why&lt;/code&gt; to see why a package has been installed.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://javascriptweekly.com/link/185689/rss" style=" color: #3366aa;   "&gt;Web API support&lt;/a&gt; improvements, including &lt;code&gt;OffscreenCanvas&lt;/code&gt; going stable.&lt;/li&gt;
&lt;li&gt;Node &lt;a href="https://javascriptweekly.com/link/185690/rss" style=" color: #3366aa;   "&gt;&lt;code&gt;module.registerHooks()&lt;/code&gt; support&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Chrome DevTools can now &lt;a href="https://javascriptweekly.com/link/185691/rss" style=" color: #3366aa;   "&gt;inspect Deno's network traffic&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A &lt;a href="https://javascriptweekly.com/link/185692/rss" style=" color: #3366aa;   "&gt;built-in CPU profiler&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://javascriptweekly.com/link/185693/rss" style=" color: #3366aa;   "&gt;import defer&lt;/a&gt; support.&lt;/li&gt;
&lt;li&gt;V8 14.9 and TypeScript 6.0.3.&lt;/li&gt;
&lt;/ul&gt;
  &lt;p&gt;Bartek Iwańczuk &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-size: 15px; line-height: 1.48em; padding: 0px 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/185694/rss" title="blog.sentry.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;10 Merged, 34 to Go: Fixing JS Observability Upstream&lt;/a&gt;&lt;/span&gt; — Every JS APM tool monkey-patches libraries. It breaks with ESM, bundlers, and non-Node runtimes. &lt;a href="https://javascriptweekly.com/link/185694/rss" style=" color: #3366aa;   "&gt;Here's how to fix it&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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185695/rss" title="docx.js.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;DOCX 9.7: Build Word &lt;code&gt;.docx&lt;/code&gt; Files in JavaScript&lt;/a&gt;&lt;/span&gt; — A mature, comprehensive library for generating &lt;code&gt;docx&lt;/code&gt; files both client and server side. There’s a &lt;a href="https://javascriptweekly.com/link/185696/rss" style=" color: #3366aa;   "&gt;CodePen-based example&lt;/a&gt; with the basics, plus &lt;a href="https://javascriptweekly.com/link/185697/rss" style=" color: #3366aa;   "&gt;over 100 example scripts&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Dolan Miu &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-size: 15px; line-height: 1.48em; padding: 0px 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/185698/rss" title="jamiebuilds.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;tinykeys 4.0: A Tiny, Modern Library for Keybindings&lt;/a&gt;&lt;/span&gt; — Has a very simple, straightforward API and the page includes live demos.&lt;/p&gt;
  &lt;p&gt;Jamie Kyle &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-size: 15px; line-height: 1.48em; padding: 0px 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/185699/rss" title="app.codemod.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;An Official Node.js Codemod to Migrate from Axios to &lt;code&gt;fetch&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — A &lt;a href="https://javascriptweekly.com/link/185700/rss" style=" color: #3366aa;   "&gt;codemod&lt;/a&gt; to transform code using Axios to using the Fetch API instead.&lt;/p&gt;
  &lt;p&gt;The Node.js Team &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-size: 15px; line-height: 1.48em; padding: 0px 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/185701/rss" title="hot-updater.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Hot Updater: Self-Hosted Over-the-Air Updates for React Native&lt;/a&gt;&lt;/span&gt; — A way to deploy updates to apps without app store submissions.&lt;/p&gt;
  &lt;p&gt;Sungyu Kang &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/185702/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Perspective 4.5&lt;/a&gt; – Analytics and data viz component for large and streaming datasets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185703/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Partytown 0.14.0&lt;/a&gt; – Relocate resource-intensive scripts into Web Workers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185704/rss" style=" color: #3366aa; font-weight: 500;   "&gt;atproto TypeScript SDK Upgrades&lt;/a&gt; – Every package in the &lt;code&gt;@atproto&lt;/code&gt; namespace has been rebuilt, and all are now shipped as ESM.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185705/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Kysely 0.29.0&lt;/a&gt; – Popular type-safe SQL query builder.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185706/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Svader 1.0&lt;/a&gt; – Create GPU-rendered Svelte components.&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-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" 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-size: 15px; line-height: 1.48em; padding: 0px 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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;🦊 &lt;a href="https://javascriptweekly.com/link/185707/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Foxit's open-source MCP server&lt;/a&gt; gives AI agents 30+ PDF tools — covering PDF conversion, OCR, merge, signing, and document workflows.&lt;/p&gt;
 
&lt;p&gt;⚙️ &lt;a href="https://javascriptweekly.com/link/185708/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Middleware, but for AI agents&lt;/a&gt;. Compose Claude Code, Codex &amp;amp; Gemini as one TypeScript harness — 100+ agent recipes. &lt;a href="https://javascriptweekly.com/link/185708/rss" style=" color: #3366aa; font-weight: 500;   "&gt;agentfield.ai/github&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/185709/rss" style=" color: #3366aa; font-weight: 500;   "&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;/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-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-size: 15px; line-height: 1.48em; padding: 0;"&gt;&lt;p&gt;👀  JS Crossword Tips&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;The &lt;a href="https://javascriptweekly.com/link/185663/rss" style=" color: #3366aa; font-weight: 500;   "&gt;JS Crossword&lt;/a&gt; &lt;em&gt;(featured at the top of the issue)&lt;/em&gt; is tough, so I have some educational tips and JS quirks to help you on your way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The crossword runs in the browser, so the &lt;code&gt;window&lt;/code&gt; global object is in play. For example: &lt;code&gt;find(0)&lt;/code&gt; and &lt;code&gt;name&lt;/code&gt; return things in the browser, but not in Node.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Look at the 'playground' beneath the puzzle. While a clue may say &lt;code&gt;object&lt;/code&gt;, the expected result may be more detailed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A number like 67 can be represented multiple ways. For example: &lt;code&gt;0103 == 67&lt;/code&gt; and &lt;code&gt;0x43 == 67&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;You can go further with prefixes and suffixes on numbers. For example: &lt;code&gt;123.&lt;/code&gt;, &lt;code&gt;+123&lt;/code&gt;, and &lt;code&gt;+123.&lt;/code&gt; all equal &lt;code&gt;123&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Assignments evaluate to the value that was assigned.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185710/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Tagged template literals&lt;/a&gt; offer a… &lt;em&gt;quirky&lt;/em&gt; way to call functions. Consider that this works in JS: &lt;code&gt;console.log`hi`&lt;/code&gt; (though this is &lt;em&gt;not&lt;/em&gt; equivalent to &lt;code&gt;console.log('hi')&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;'&lt;/code&gt; is not in the allowed character list.&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-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/787/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/787</guid>
    </item>
    <item>
      <title>Dr. Axel's blog is gone (for now)</title>
      <link>https://javascriptweekly.com/issues/786</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="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-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​786 — May 19, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185305/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-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-size: 15px; line-height: 1.48em; padding: 0 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185307/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ql3ejie7zibdm4rd25zh.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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;RFC:&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/185307/rss" title="github.com" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;It’s Time for &lt;code&gt;npm&lt;/code&gt; to Make Install Scripts Opt-In&lt;/a&gt;&lt;/span&gt; — npm is the only major package manager that runs dependency install scripts (e.g. &lt;code&gt;postinstall&lt;/code&gt;) by default, and they’ve become too much of a security weakness, says Jamie, who works for GitHub (maintainers of npm). This RFC features further discussion of the idea and the tradeoffs involved.&lt;/p&gt;
  &lt;p&gt;Jamie Magee &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 &lt;a href="https://javascriptweekly.com/link/185308/rss" style=" color: #3366aa; font-weight: 500;"&gt;npq&lt;/a&gt; is a tool that makes &lt;code&gt;npm install&lt;/code&gt;s safer. It stands in front of &lt;code&gt;npm&lt;/code&gt; and audits packages before installing them, including the presence of pre/post install scripts.&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185306/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/f5067c40.png" width="120" height="120" 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/185306/rss" title="fandf.co" style=" color: #3366aa;    font-size: 1.05em;"&gt;How Depot Built a CI Orchestrator on AWS Lambda&lt;/a&gt;&lt;/span&gt; — Long-running CI orchestration without long-lived servers. Depot rebuilt their CI engine using AWS Lambda durable functions — stateful, callback-driven, and crash-recoverable. A deep dive into the run-workflow-job hierarchy powering Depot CI.&lt;/p&gt;
  &lt;p&gt;Depot &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185309/rss" title="safedep.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;&lt;em&gt;Mini Shai-Hulud&lt;/em&gt; Hits: 300+ Malicious npm Packages Published&lt;/a&gt;&lt;/span&gt; — The &lt;em&gt;"&lt;a href="https://javascriptweekly.com/link/185310/rss" style=" color: #3366aa;   "&gt;Shai-Hulud&lt;/a&gt;"&lt;/em&gt; class of npm ecosystem attacks continues to rumble on. Today, &lt;a href="https://javascriptweekly.com/link/185311/rss" style=" color: #3366aa;   "&gt;hundreds more packages&lt;/a&gt; – including popular ones from the &lt;code&gt;antv&lt;/code&gt; family and &lt;code&gt;timeago.js&lt;/code&gt; – were hit.&lt;/p&gt;
  &lt;p&gt;SafeDep Team &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-size: 15px; line-height: 1.48em; padding: 0px 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;😱 Dr. Axel Rauschmayer (JavaScript legend and former JS Weekly editor) has &lt;a href="https://javascriptweekly.com/link/185312/rss" style=" color: #3366aa; font-weight: 500;   "&gt;taken his blog and JavaScript books off the Web&lt;/a&gt; due to being overwhelmed by AI crawlers. You can, however, still &lt;a href="https://javascriptweekly.com/link/185313/rss" style=" color: #3366aa; font-weight: 500;   "&gt;purchase his fantastic books here.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The Bun saga continues. Despite once &lt;a href="https://javascriptweekly.com/link/185314/rss" style=" color: #3366aa; font-weight: 500;   "&gt;playing down its significance&lt;/a&gt;, the &lt;a href="https://javascriptweekly.com/link/185315/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Rust-based rewrite of Bun has been merged&lt;/a&gt;, though there are &lt;a href="https://javascriptweekly.com/link/185316/rss" style=" color: #3366aa; font-weight: 500;   "&gt;questions over the quality&lt;/a&gt; of the AI-ported code. Much &lt;a href="https://javascriptweekly.com/link/185317/rss" style=" color: #3366aa; font-weight: 500;   "&gt;discussion ensued on Hacker News.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185318/rss" style=" color: #3366aa; font-weight: 500;   "&gt;The Deno team is teasing Deno 2.8&lt;/a&gt;, due to be released this week. Significant Node.js compatibility improvements, &lt;code&gt;import defer&lt;/code&gt;, and TypeScript 6.0.3 support await.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The Chrome and Edge teams are working on &lt;a href="https://javascriptweekly.com/link/185319/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a new &lt;code&gt;&amp;lt;install&amp;gt;&lt;/code&gt; HTML element&lt;/a&gt; for browsers to render a 'trusted install button' for PWAs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;em&gt;Express.js&lt;/em&gt; project has &lt;a href="https://javascriptweekly.com/link/185320/rss" style=" color: #3366aa; font-weight: 500;   "&gt;an all new look&lt;/a&gt;, including a new site, logo, and &lt;a href="https://javascriptweekly.com/link/185321/rss" style=" color: #3366aa; font-weight: 500;   "&gt;improved docs.&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-size: 15px; line-height: 1.48em; padding: 0px 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/185322/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Angular 22 Release Candidate&lt;/a&gt; – Final is due in early June. Expect &lt;a href="https://javascriptweekly.com/link/185323/rss" style=" color: #3366aa; font-weight: 500;   "&gt;signal-based forms&lt;/a&gt; and the &lt;a href="https://javascriptweekly.com/link/185324/rss" style=" color: #3366aa; font-weight: 500;   "&gt;OnPush&lt;/a&gt; change detection strategy becoming default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185325/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Bun 1.3.14&lt;/a&gt; – The alternative JS runtime gets &lt;code&gt;Bun.Image&lt;/code&gt;, more HTTP/2 and HTTP/3 support, and more Node compatibility improvements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185326/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint Config Inspector 3.0&lt;/a&gt; – A visual tool for inspecting and understanding your ESLint flat configs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185327/rss" style=" color: #3366aa; font-weight: 500;   "&gt;TypeORM 1.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185328/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint 10.4.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185329/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Relay 21.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185330/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Rolldown 1.0.1&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185331/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/echd5tqlridpzz6jd2bx.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-size: 15px; line-height: 1.48em; padding: 0px 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/185331/rss" title="blog.isquaredsoftware.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Mark Erikson's Agent Setup, Workflow, and Tools&lt;/a&gt;&lt;/span&gt; — Mark, well known for maintaining Redux and creating Redux Toolkit, goes deep into his daily development workflow, including his use of &lt;a href="https://javascriptweekly.com/link/185332/rss" style=" color: #3366aa;   "&gt;OpenCode&lt;/a&gt; (an open source JavaScript-powered coding agent), how he manages his knowledge base, tasks, and more.&lt;/p&gt;
  &lt;p&gt;Mark Erikson &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-size: 15px; line-height: 1.48em; padding: 0px 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/185333/rss" title="go.clerk.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Clerk API Keys Are Now Generally Available&lt;/a&gt;&lt;/span&gt; — Let your users create credentials that delegate access to your API. Verify server-side, revoke instantly — all via the Backend SDK.&lt;/p&gt;
  &lt;p&gt;Clerk &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185334/rss" title="www.thenodebook.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;NodeBook: An Advanced Guide to Node.js Internals&lt;/a&gt;&lt;/span&gt; — Eight in-depth chapters for understanding Node.js internals, covering topics like &lt;a href="https://javascriptweekly.com/link/185335/rss" style=" color: #3366aa;   "&gt;event loop internals&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185336/rss" style=" color: #3366aa;   "&gt;what V8 does&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185337/rss" style=" color: #3366aa;   "&gt;streams&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185338/rss" style=" color: #3366aa;   "&gt;module resolution&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/185339/rss" style=" color: #3366aa;   "&gt;async/await&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Ishtmeet Singh &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-size: 15px; line-height: 1.48em; padding: 0px 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/185340/rss" title="css-tricks.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Soon We Can Finally Banish JavaScript to the &lt;em&gt;ShadowRealm&lt;/em&gt;&lt;/a&gt;&lt;/span&gt; — A tour of the &lt;em&gt;in-progress&lt;/em&gt; &lt;a href="https://javascriptweekly.com/link/185341/rss" style=" color: #3366aa;   "&gt;TC39 proposal&lt;/a&gt; for running JavaScript in an isolated ‘pseudo-realm’ with its own globals and intrinsics. Handy for third-party code or anything you want to keep away from global scope.&lt;/p&gt;
  &lt;p&gt;Mat Marquis &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185342/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Hardening TanStack After the npm Compromise&lt;/a&gt; – What TanStack is doing to improve supply chain security after &lt;a href="https://javascriptweekly.com/link/185343/rss" style=" color: #3366aa; font-weight: 500;   "&gt;an attacker published&lt;/a&gt; malicious versions of TanStack packages last week. &lt;cite&gt;The TanStack Team&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/185344/rss" style=" color: #3366aa; font-weight: 500;   "&gt;The &lt;em&gt;TanStack Start&lt;/em&gt; Story: Tanner Linsley on Competing with Next.js&lt;/a&gt; – A candid 40-minute interview with TanStack’s founder. &lt;cite&gt;Nuno Maduro&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185345/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Cross-Document View Transitions: The Gotchas Nobody Mentions&lt;/a&gt; &lt;cite&gt;Durgesh Rajubhai Pawar (CSS Tricks)&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185346/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wbo5vpin96clokiyeke5.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-size: 15px; line-height: 1.48em; padding: 0px 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/185346/rss" title="orval.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Orval: Generate Type-Safe Clients from OpenAPI/Swagger Specs&lt;/a&gt;&lt;/span&gt; — Given a valid OpenAPI v3 or Swagger v2 spec, generate models, requests, hooks, and mocks for React, Vue, Svelte, Solid, and Hono apps, or even plain &lt;code&gt;fetch&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Victor Bury &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-size: 15px; line-height: 1.48em; padding: 0px 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/185347/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Brownies: Browser Storage as a Plain Object, With Change Events&lt;/a&gt;&lt;/span&gt; — One tiny API over cookies, localStorage, sessionStorage and IndexedDB. Typed values survive automatically, and you get &lt;code&gt;subscribe()&lt;/code&gt; for change events.&lt;/p&gt;
  &lt;p&gt;Francisco Presencia &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-size: 15px; line-height: 1.48em; padding: 0px 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/185348/rss" title="www.tigerdata.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Querying a Billion Rows Shouldn't Freeze Your API&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so analytics queries stay fast at scale. No pipeline, no drift. &lt;a href="https://javascriptweekly.com/link/185348/rss" style=" color: #3366aa;   "&gt;$1000 credit to start&lt;/a&gt;.&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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185349/rss" title="nodeca.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Pica 10.0: High Quality Image Resizing in the Browser&lt;/a&gt;&lt;/span&gt; — High quality in-browser image resizing that leans on WASM and Web Workers or falls back to pure JS as necessary. &lt;a href="https://javascriptweekly.com/link/185350/rss" style=" color: #3366aa;   "&gt;v10&lt;/a&gt; is a modernization build (the first since 2021) that adds ESM and split builds and migrates to TypeScript. &lt;a href="https://javascriptweekly.com/link/185351/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Vitaly Puzrin &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-size: 15px; line-height: 1.48em; padding: 0px 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/185352/rss" title="svar.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;SVAR Calendar: A Calendar Component for React, Svelte and Vue&lt;/a&gt;&lt;/span&gt; — A flexible calendar component with a MIT-licensed core and extended commercial version. &lt;a href="https://javascriptweekly.com/link/185353/rss" style=" color: #3366aa;   "&gt;Here’s a live demo&lt;/a&gt; of the open source version.&lt;/p&gt;
  &lt;p&gt;XB Software Sp. &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 &lt;a href="https://javascriptweekly.com/link/185354/rss" style=" color: #3366aa; font-weight: 500;"&gt;Schedule-X&lt;/a&gt; is another great option in this space and &lt;a href="https://javascriptweekly.com/link/185355/rss" style=" color: #3366aa; font-weight: 500;"&gt;v4.6&lt;/a&gt; just landed.&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-size: 15px; line-height: 1.48em; padding: 0px 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/185356/rss" title="fate.technology" style=" color: #3366aa;    font-size: 1.05em;"&gt;Fate 1.0: A Modern Data Framework for React&lt;/a&gt;&lt;/span&gt; — A new data framework from former Jest lead and ex-Meta engineer Christoph Nakazawa.&lt;/p&gt;
  &lt;p&gt;Christoph Nakazawa &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-size: 15px; line-height: 1.48em; padding: 0px 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/185357/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Alien Signals: 'The Lightest Signal Library'&lt;/a&gt;&lt;/span&gt; — Boils the best of Vue, Preact and Svelte’s approaches down into the lightest signal library going. A push-pull reactivity core so well-tuned it got merged back into Vue.&lt;/p&gt;
  &lt;p&gt;Johnson Chu &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185358/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Critical 8.0&lt;/a&gt; – Addy Osmani's library for extracting and inlining above-the-fold CSS into HTML.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185359/rss" style=" color: #3366aa; font-weight: 500;   "&gt;SQL Formatter 15.8&lt;/a&gt; – Pretty-printer for SQL queries. (&lt;a href="https://javascriptweekly.com/link/185360/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Demo&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185361/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Shiki 4.1&lt;/a&gt; – Popular, powerful syntax highlighter.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185362/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Redux Toolkit 2.12.0&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/185363/rss" style=" color: #3366aa; font-weight: 500;   "&gt;React Redux 9.3&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185364/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Vue.js Language Tools 3.3&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-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" 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-size: 15px; line-height: 1.48em; padding: 0px 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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185365/rss" style=" color: #3366aa; font-weight: 500;   "&gt;HyperFormula&lt;/a&gt;: The headless spreadsheet engine with 400+ Excel-compatible formulas. Run complex calculations at high speed.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/185366/rss" style=" color: #3366aa; font-weight: 500;   "&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/185367/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Middleware, but for AI agents&lt;/a&gt;. Compose Claude Code, Codex &amp;amp; Gemini as one TypeScript harness — 100+ agent recipes. &lt;a href="https://javascriptweekly.com/link/185367/rss" style=" color: #3366aa; font-weight: 500;   "&gt;agentfield.ai/github&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-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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185368/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/azx9afpomjipp3vdrpxi.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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Andrea Giammarchi &lt;a href="https://javascriptweekly.com/link/185368/rss" style=" color: #3366aa; font-weight: 500;   "&gt;proposes &lt;code&gt;JSONRegistry&lt;/code&gt;&lt;/a&gt; &lt;em&gt;(above)&lt;/em&gt;, an alternative to &lt;code&gt;JSON&lt;/code&gt; that lets you define a registry for serializing and reviving custom/branded types.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🐝 &lt;a href="https://javascriptweekly.com/link/185369/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Wasp&lt;/a&gt; is a Rails-like framework for Node, React and Prisma. It started life as a new programming language of its own before moving to JavaScript. Founder Matija Sosic tells the story in &lt;a href="https://javascriptweekly.com/link/185370/rss" style=" color: #3366aa; font-weight: 500;   "&gt;5 Years and $5M Later: Inventing a New Programming Language for Web Development Was a Mistake&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Did you know that &lt;a href="https://javascriptweekly.com/link/185371/rss" style=" color: #3366aa; font-weight: 500;   "&gt;some browsers render certain sites 'differently'&lt;/a&gt; on an ad hoc basis? Firefox and Safari ship with &lt;a href="https://javascriptweekly.com/link/185372/rss" style=" color: #3366aa; font-weight: 500;   "&gt;built-in 'tweaks' for popular sites&lt;/a&gt; to fix elements that don't render correctly by default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 Simon Willison shares &lt;a href="https://javascriptweekly.com/link/185373/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a quick look at the last six months in LLMs.&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-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/786/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/786</guid>
    </item>
    <item>
      <title>Cryptographically valid malware hits npm</title>
      <link>https://javascriptweekly.com/issues/785</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="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-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​785 — May 12, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185046/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-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-size: 15px; line-height: 1.48em; padding: 0 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185001/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ckou53i84jyf1ujrgken.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-size: 15px; line-height: 1.48em; padding: 0px 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/185001/rss" title="tanstack.com" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Anatomy of the TanStack npm Compromise&lt;/a&gt;&lt;/span&gt; — A new strain of the &lt;a href="https://javascriptweekly.com/link/185002/rss" style=" color: #3366aa;   "&gt;Shai-Hulud worm&lt;/a&gt; pushed malicious versions of TanStack packages to npm yesterday (containing a tripwire that would delete files if it detected token revocation), though &lt;a href="https://javascriptweekly.com/link/185003/rss" style=" color: #3366aa;   "&gt;it hit ~170 other packages too&lt;/a&gt;. &lt;strong&gt;Maintainer credentials weren’t stolen&lt;/strong&gt;, with the attack instead chaining &lt;code&gt;pull_request_target&lt;/code&gt; abuse, cache poisoning, and OIDC token theft from CI &lt;em&gt;memory&lt;/em&gt;.&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;❓ &lt;strong&gt;What should you do?&lt;/strong&gt; Consider an install-time cooldown (e.g. with &lt;code&gt;npm config set min-release-age=7&lt;/code&gt; or &lt;a href="https://javascriptweekly.com/link/185004/rss" style=" color: #3366aa; font-weight: 500;"&gt;pnpm&lt;/a&gt;'s &lt;code&gt;minimumReleaseAge&lt;/code&gt;), as the packages were only compromised for 26 minutes. Plus, audit your GitHub Actions workflows for security issues with a tool like &lt;a href="https://javascriptweekly.com/link/185005/rss" style=" color: #3366aa; font-weight: 500;"&gt;zizmor&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185000/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8c7fe4d2.jpeg" width="155" height="155" 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/185000/rss" title="sentry.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Next.js Debugging Workshop: Logs, Tracing, Full Context&lt;/a&gt;&lt;/span&gt; — Stop jumping between tools to piece together a Next.js bug. Sentry's hands-on workshop shows you how to write logs that explain where, what, and why, then connect them to traces across client and Node runtimes. &lt;a href="https://javascriptweekly.com/link/185000/rss" style=" color: #3366aa;   "&gt;Register today&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: 1px 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-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-size: 15px; line-height: 1.48em; padding: 0px 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/185006/rss" title="voidzero.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Announcing Rolldown 1.0: The High Performance JS Bundler&lt;/a&gt;&lt;/span&gt; — The Rust-based bundler built as the backbone for Vite 8 reaches a stable v1.0. You get huge performance gains, but with Rollup plugin API compatibility: it's 10–30x faster than Rollup, with early adopters reporting big drops in build time.&lt;/p&gt;
  &lt;p&gt;The VoidZero Team &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-size: 15px; line-height: 1.48em; padding: 0px 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 &lt;a href="https://javascriptweekly.com/link/185007/rss" style=" color: #3366aa; font-weight: 500;   "&gt;notes from Node.js's recent collaboration summit&lt;/a&gt; make for good reading if you want to see what the Node team is working on right now.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Regarding Bun's experimental port to Rust (from Zig), Jarred Sumner says the now-960k LOC rewrite &lt;a href="https://javascriptweekly.com/link/185008/rss" style=" color: #3366aa; font-weight: 500;   "&gt;passes 99.8% of Bun's pre-existing test suite.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 A developer has &lt;a href="https://javascriptweekly.com/link/185047/rss" style=" color: #3366aa; font-weight: 500;   "&gt;launched a challenge to port NetHack to JavaScript.&lt;/a&gt; Can LLMs port the complex roguelike game &lt;em&gt;perfectly?&lt;/em&gt; So far, no, with &lt;a href="https://javascriptweekly.com/link/185047/rss" style=" color: #3366aa; font-weight: 500;   "&gt;the leaderboard&lt;/a&gt; showing a &lt;em&gt;transpiled&lt;/em&gt; version coming closest.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Did you know &lt;a href="https://javascriptweekly.com/link/185017/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Firefox has a &lt;code&gt;$$$&lt;/code&gt; helper&lt;/a&gt; for querying through the Shadow DOM?&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-size: 15px; line-height: 1.48em; padding: 0px 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/185009/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Jest 30.4.0&lt;/a&gt; – A strong release for the popular JavaScript testing framework as it improves ESM, Temporal and React 19 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185010/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node 26.1 (Current)&lt;/a&gt; – Last week's &lt;a href="https://javascriptweekly.com/link/185011/rss" style=" color: #3366aa; font-weight: 500;   "&gt;big Node 26 release&lt;/a&gt; may have had the Temporal API, but 26.1 adds (experimental) official FFI support. I did a writeup of what this means at the end of &lt;a href="https://javascriptweekly.com/link/185012/rss" style=" color: #3366aa; font-weight: 500;   "&gt;last week's Node Weekly.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185013/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electron 42&lt;/a&gt; – Updates to Chromium 148/Node 24.15/V8 14.8 and no longer downloads the Electron binary in a &lt;code&gt;postinstall&lt;/code&gt; script for added security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185014/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Capacitor 9.0 Alpha 1&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185015/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Playwright 1.60.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/185016/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Mantine 9.2&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em; padding: 0px 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/185051/rss" title="33jsconcepts.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;33 JavaScript Concepts&lt;/a&gt;&lt;/span&gt; — What began life as a &lt;a href="https://javascriptweekly.com/link/185052/rss" style=" color: #3366aa;   "&gt;Medium article&lt;/a&gt; and turned into &lt;a href="https://javascriptweekly.com/link/185053/rss" style=" color: #3366aa;   "&gt;a popular GitHub repo&lt;/a&gt; is now a full site covering a wide array of JavaScript concepts, &lt;a href="https://javascriptweekly.com/link/185054/rss" style=" color: #3366aa;   "&gt;even going beyond the 33&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Leonardo Maldonado &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-size: 15px; line-height: 1.48em; padding: 0px 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/185018/rss" title="jadjoubran.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;9 Times the Web Platform Was Influenced by JavaScript Libraries&lt;/a&gt;&lt;/span&gt; — How various libraries like Lodash, Dojo and jQuery often did the “&lt;em&gt;R&amp;amp;D work in production&lt;/em&gt;” for various features that eventually ended up in browser APIs.&lt;/p&gt;
  &lt;p&gt;Jad Joubran &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-size: 15px; line-height: 1.48em; padding: 0px 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/185019/rss" title="fandf.co" style=" color: #3366aa;    font-size: 1.05em;"&gt;Easy and Rapid Azure Migrations. Azure Copilot Migration Agent&lt;/a&gt;&lt;/span&gt; — Check out Microsoft’s &lt;a href="https://javascriptweekly.com/link/185019/rss" style=" color: #3366aa;   "&gt;Introduction to Azure Copilot Agents free learning module&lt;/a&gt; to learn more and &lt;a href="https://javascriptweekly.com/link/185019/rss" style=" color: #3366aa;   "&gt;try it yourself&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Microsoft Azure Copilot Migration Agent &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185020/rss" title="evilmartians.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;From React to Web Components: A Migration That Saved 100 KB&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;“How I migrated a site from React to native Web Components, why that worked better than I expected, and how the patterns I used along the way grew into a small library called &lt;a href="https://javascriptweekly.com/link/185021/rss" style=" color: #3366aa;   "&gt;nanotags&lt;/a&gt;.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Pavel Grinchenko (Evil Martians) &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-size: 15px; line-height: 1.48em; padding: 0px 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/185048/rss" title="valibot.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Why Migrate to Valibot?&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/185049/rss" style=" color: #3366aa;   "&gt;Valibot&lt;/a&gt; is a light, modular TypeScript schema validation library and an alternative to the likes of Zod. &lt;a href="https://javascriptweekly.com/link/185050/rss" style=" color: #3366aa;   "&gt;v1.4.0&lt;/a&gt; just dropped, too.&lt;/p&gt;
  &lt;p&gt;Fabian Hiller &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185022/rss" style=" color: #3366aa; font-weight: 500;   "&gt;A Vanilla Routing Experiment&lt;/a&gt; – A look at the tripping points when building client-side routing for a small site &lt;em&gt;without&lt;/em&gt; using a framework. &lt;cite&gt;Daniela Baron&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185023/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Preserving DOM Changes Across Live Reloads&lt;/a&gt;  &lt;cite&gt;Kitty Giraudel&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185024/rss" style=" color: #3366aa; font-weight: 500;   "&gt;I Keep Tripping Over &lt;code&gt;true, false, true&lt;/code&gt;&lt;/a&gt; &lt;cite&gt;Matt Smith&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185025/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Stop Using Yarn Classic&lt;/a&gt;  &lt;cite&gt;Nicolas Charpentier&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/185026/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Introducing TanStack Form&lt;/a&gt; &lt;cite&gt;Adam Rackis&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/185027/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/aspuyiohodby5rhpai86.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-size: 15px; line-height: 1.48em; padding: 0px 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/185027/rss" title="zero-native.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;zero-native: Build Desktop Apps with Zig + WebView&lt;/a&gt;&lt;/span&gt; — Vercel Labs’ entry into the &lt;a href="https://javascriptweekly.com/link/185028/rss" style=" color: #3366aa;   "&gt;Neutralinojs&lt;/a&gt;/Electron/Tauri space for building native HTML+JS desktop apps atop a Zig core and the system WebView &lt;em&gt;or&lt;/em&gt; Chromium. There are &lt;a href="https://javascriptweekly.com/link/185029/rss" style=" color: #3366aa;   "&gt;examples&lt;/a&gt; covering how to build vanilla, React, Svelte, and Vue apps on it. &lt;a href="https://javascriptweekly.com/link/185030/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&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-size: 15px; line-height: 1.48em; padding: 0px 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/185031/rss" title="www.tigerdata.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;That API Call Takes 3 Seconds. It's Not the Network&lt;/a&gt;&lt;/span&gt; — It's the analytics query behind it. TimescaleDB extends Postgres so queries stay fast at scale. &lt;a href="https://javascriptweekly.com/link/185031/rss" style=" color: #3366aa;   "&gt;$1000 credit to start&lt;/a&gt;.&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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/185032/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Wakaru: Pull Apart Minified JavaScript Bundles&lt;/a&gt;&lt;/span&gt; — A tool you can feed minified bundled code and get readable modules back, whether for recovering code, reverse-engineering, or security auditing. You can &lt;a href="https://javascriptweekly.com/link/185033/rss" style=" color: #3366aa;   "&gt;try it online here.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Pionxzh &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-size: 15px; line-height: 1.48em; padding: 0px 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/185034/rss" title="" style=" color: #3366aa;    font-size: 1.05em;"&gt;BlueJS: Compile JavaScript to Tiny Binaries&lt;/a&gt;&lt;/span&gt; — 
An ahead-of-time compiler for JavaScript with QuickJS optionally embedded for dynamic features and package support. While &lt;em&gt;closed source&lt;/em&gt;, the raw numbers are compelling (~5ms startup; 3.8MB peak memory use, and a GUI app in a 1.2MB binary).
&lt;/p&gt;
  &lt;p&gt;BlueJS &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 &lt;a href="https://javascriptweekly.com/link/185035/rss" style=" color: #3366aa; font-weight: 500;"&gt;PerryTS&lt;/a&gt; is another (open source) option in this space worth a look.&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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185036/rss" style=" color: #3366aa; font-weight: 500;   "&gt;pnpm 11.1&lt;/a&gt; – Supports a new &lt;code&gt;gh:&lt;/code&gt; prefix for GitHub Packages, &lt;code&gt;pnpm bugs&lt;/code&gt; opens a package's bug tracker in the browser, and &lt;code&gt;pnpm audit signatures&lt;/code&gt; verifies ECDSA registry signatures against keys.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185037/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Astro 6.3&lt;/a&gt; – Adds experimental support for advanced routing: control how requests flow through your app, with full support for frameworks like &lt;a href="https://javascriptweekly.com/link/185038/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Hono&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185039/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Syncpack 15.0&lt;/a&gt; – Large JavaScript monorepo dependency version manager. Now with full support for pnpm and Bun catalogs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📱 &lt;a href="https://javascriptweekly.com/link/185040/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Expo SDK 56 Beta&lt;/a&gt; – The popular React Native framework gets a speed boost and the Jetpack Compose and SwiftUI APIs go stable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/185041/rss" style=" color: #3366aa; font-weight: 500;   "&gt;MDXEditor 4.0&lt;/a&gt; – Powerful Markdown editor React component.&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-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" 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-size: 15px; line-height: 1.48em; padding: 0px 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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/185043/rss" style=" color: #3366aa; font-weight: 500;   "&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;🔎 Detect, Highlight, Fix Accessibility - Test for WCAG &amp;amp; ARIA in the browser! Get &lt;a href="https://javascriptweekly.com/link/185044/rss" style=" color: #3366aa; font-weight: 500;   "&gt;A11yInspect Pro&lt;/a&gt; Free for 1 year - A developer friendly tool. &lt;a href="https://javascriptweekly.com/link/185044/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Join the waitlist&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-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-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/785/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 12 May 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/785</guid>
    </item>
    <item>
      <title>Remix 3 drops React</title>
      <link>https://javascriptweekly.com/issues/784</link>
      <description>

  

    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="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-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;#​784 — May 5, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-size: 15px; line-height: 1.48em;"&gt;&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184753/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-size: 15px; line-height: 1.48em; padding: 0 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/184764/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/vwduhmrqbq1j2ypwelyc.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-size: 15px; line-height: 1.48em; padding: 0px 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/184764/rss" title="remix.run" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Remix 3 Enters Beta — It's No Longer a React Framework&lt;/a&gt;&lt;/span&gt; — Remix has quite the back story. Created by the duo behind React Router in 2020 and seen as an &lt;a href="https://javascriptweekly.com/link/184765/rss" style=" color: #3366aa;   "&gt;alternative to Next.js&lt;/a&gt;, Remix was &lt;a href="https://javascriptweekly.com/link/184766/rss" style=" color: #3366aa;   "&gt;acquired by Shopify&lt;/a&gt; in 2022 and its core ideas folded into &lt;a href="https://javascriptweekly.com/link/184767/rss" style=" color: #3366aa;   "&gt;React Router v7&lt;/a&gt; in 2024. Now, a new direction: a full-stack, web standards-first framework with its own UI component model and… no React.&lt;/p&gt;
  &lt;p&gt;Michael Jackson (Remix) &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/184702/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/691a6339.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/184702/rss" title="frontendmasters.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Build AI Features That Get Better Over Time&lt;/a&gt;&lt;/span&gt; — Join Scott Moss for this detailed video course covering agentic systems, eval harnesses, RAG, and context engineering — everything you need to ship reliable, production-ready AI features.&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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/184754/rss" title="nodejs.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Node.js 26.0.0 (Current) Released&lt;/a&gt;&lt;/span&gt; — A macOS build snafu pushed the release date out to today, but the latest version of Node is here, complete with &lt;a href="https://javascriptweekly.com/link/184755/rss" style=" color: #3366aa;   "&gt;Temporal API&lt;/a&gt; enabled by default, V8 14.6, and Undici 8. v26 is the ‘current’ cutting-edge release until October when it’ll be promoted to LTS.&lt;/p&gt;
  &lt;p&gt;Rafael Gonzaga &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-size: 15px; line-height: 1.48em; padding: 0px 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/184705/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Vitest&lt;/a&gt; is tightly coupled to Vite, but a maintainer has &lt;a href="https://javascriptweekly.com/link/184706/rss" style=" color: #3366aa; font-weight: 500;   "&gt;proposed making it "framework-agnostic"&lt;/a&gt; to support other build tools and runtimes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;People on Hacker News &lt;a href="https://javascriptweekly.com/link/184756/rss" style=" color: #3366aa; font-weight: 500;   "&gt;got very excited&lt;/a&gt; to discuss an effort by Bun's Jarred Sumner &lt;a href="https://javascriptweekly.com/link/184757/rss" style=" color: #3366aa; font-weight: 500;   "&gt;to port Bun from Zig to Rust.&lt;/a&gt; Jarred &lt;a href="https://javascriptweekly.com/link/184758/rss" style=" color: #3366aa; font-weight: 500;   "&gt;turned up on the thread&lt;/a&gt; to cool things down. A Rust port &lt;em&gt;is&lt;/em&gt; being attempted, but with no long-term intent to &lt;em&gt;switch&lt;/em&gt; for now.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The Svelte team has &lt;a href="https://javascriptweekly.com/link/184707/rss" style=" color: #3366aa; font-weight: 500;   "&gt;shared its latest monthly roundup&lt;/a&gt;, including the news that Svelte &lt;a href="https://javascriptweekly.com/link/184708/rss" style=" color: #3366aa; font-weight: 500;   "&gt;appears in ThoughtWorks' latest &lt;em&gt;Technology Radar&lt;/em&gt;.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deno is getting &lt;a href="https://javascriptweekly.com/link/184759/rss" style=" color: #3366aa; font-weight: 500;   "&gt;experimental support for &lt;code&gt;import defer&lt;/code&gt;&lt;/a&gt; (&lt;a href="https://javascriptweekly.com/link/184760/rss" style=" color: #3366aa; font-weight: 500;   "&gt;TC39 proposal&lt;/a&gt;) and may be the first runtime to support it.&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-size: 15px; line-height: 1.48em; padding: 0px 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/184709/rss" style=" color: #3366aa; font-weight: 500;   "&gt;PM2 7.0&lt;/a&gt; – The Node.js process manager gets a refactor that slashes its dependency footprint, and extends cluster mode and the monitoring agent to Bun apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184710/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Astro v7 Alpha&lt;/a&gt; – The web framework for content-driven websites teases its Vite 8-based, Rust compiler-driven version, alongside its &lt;a href="https://javascriptweekly.com/link/184711/rss" style=" color: #3366aa; font-weight: 500;   "&gt;v6.2 release&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184712/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electron 41.5&lt;/a&gt; – The cross-platform desktop app framework adds support for Touch ID for WebAuthn on macOS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184713/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Ember 6.12&lt;/a&gt; – The final 6.x release in preparation for Ember 7.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184714/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint 10.3&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/184715/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Zod 4.4&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/184716/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Babylon.js 9.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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em; padding: 0px 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/184717/rss" title="jvns.ca" style=" color: #3366aa;    font-size: 1.05em;"&gt;Testing Vue Components in the Browser&lt;/a&gt;&lt;/span&gt; — Julia sets up integration tests for her components that run entirely in the browser, sidestepping extraneous tooling, and shares issues she ran into around mounting components, waiting on the DOM, filling forms, and measuring coverage.&lt;/p&gt;
  &lt;p&gt;Julia Evans &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-size: 15px; line-height: 1.48em; padding: 0px 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/184771/rss" title="hacks.mozilla.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Trustworthy JavaScript for the Open Web&lt;/a&gt;&lt;/span&gt; — Web Application Integrity, Consistency and Transparency (WAICT) is an emerging spec for cryptographically verifying that the JavaScript running in a user’s browser matches what the site published (there’s &lt;a href="https://javascriptweekly.com/link/184772/rss" style=" color: #3366aa;   "&gt;a full explainer here&lt;/a&gt;). A prototype is now live in Firefox Nightly.&lt;/p&gt;
  &lt;p&gt;The Firefox Security Team (Mozilla) &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-size: 15px; line-height: 1.48em; padding: 0px 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/184719/rss" title="wallabyjs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Breakpoints and &lt;code&gt;console.log&lt;/code&gt; Is the Past, Time Travel Is the Future&lt;/a&gt;&lt;/span&gt; — 15x faster JavaScript debugging than with breakpoints and console.log, supports Vitest, Jest, Karma, Jasmine, and more.&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: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/184720/rss" style=" color: #3366aa; font-weight: 500;   "&gt;'I Got a $134 Cloudflare D1 Bill: Here's How I Cut It 95%'&lt;/a&gt; – Adventures in using SvelteKit on Cloudflare Workers with D1 (SQLite) and Drizzle ORM. &lt;cite&gt;Justin Ahinon&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/184768/rss" style=" color: #3366aa; font-weight: 500;   "&gt;'I Am Worried About Bun'&lt;/a&gt; – By a developer who’s worried about the long term implications of &lt;a href="https://javascriptweekly.com/link/184769/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Anthropic acquiring Bun.&lt;/a&gt; &lt;cite&gt;William Johnston&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/184722/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Making Bluetooth Low Energy Work with JavaScript&lt;/a&gt;  &lt;cite&gt;Ifedayo Agboola&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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/184723/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jtuzetnfsmbiv0owbcam.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-size: 15px; line-height: 1.48em; padding: 0px 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/184723/rss" title="animejs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Anime.js 4.4: The Flexible JavaScript Animation Engine&lt;/a&gt;&lt;/span&gt; — At ten years old, the ‘animate anything from JavaScript’ library continues to get even better with a &lt;a href="https://javascriptweekly.com/link/184724/rss" style=" color: #3366aa;   "&gt;new &lt;code&gt;scrambleText&lt;/code&gt; effect&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/184725/rss" style=" color: #3366aa;   "&gt;auto-grid layout mode&lt;/a&gt; for stagger grids. The &lt;a href="https://javascriptweekly.com/link/184727/rss" style=" color: #3366aa;   "&gt;docs&lt;/a&gt; for Anime are truly top-tier and packed with examples.&lt;/p&gt;
  &lt;p&gt;Julian Garnier &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-size: 15px; line-height: 1.48em; padding: 0px 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/184728/rss" title="developer.vonage.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Video Archiving with the Vonage Video API and React&lt;/a&gt;&lt;/span&gt; — Master four ways to record: capture audio-only, separate streams, or use Experience Composer for custom branded layouts.&lt;/p&gt;
  &lt;p&gt;Vonage &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding: 1px 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-size: 15px; line-height: 1.48em; padding: 0px 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/184729/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Formisch: A Modular, Type-Safe Form Library&lt;/a&gt;&lt;/span&gt; — A schema-based, headless form library for Preact, Qwik, React, SolidJS, Svelte and Vue that manages form state and validation (using Valibot). Try out &lt;a href="https://javascriptweekly.com/link/184730/rss" style=" color: #3366aa;   "&gt;some demos in the playground&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Open Circle &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-size: 15px; line-height: 1.48em; padding: 0px 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/184731/rss" title="opentype.js.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;opentype.js: Read and Write OpenType Fonts&lt;/a&gt;&lt;/span&gt; — Get direct access to letterforms in the browser and Node.js. Has broad WOFF, OTF, and TTF support, and supports ligatures, kerning, and emojis. You can also create your own fonts from scratch. The new &lt;a href="https://javascriptweekly.com/link/184732/rss" style=" color: #3366aa;   "&gt;v1.3.5&lt;/a&gt; release is a preview of the soon-to-land 2.0. &lt;a href="https://javascriptweekly.com/link/184733/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Frederik De Bleser &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-size: 15px; line-height: 1.48em; padding: 0px 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/184734/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;View Transitions Mock: Non-Visual Polyfill for Same-Document View Transitions&lt;/a&gt;&lt;/span&gt; — A JS implementation of Same-Document View Transitions, without the visuals. Write one clean code path: supporting browsers get the transitions, non-supporting ones get an instant DOM swap, but the promises behave the same.&lt;/p&gt;
  &lt;p&gt;Google Chrome Labs &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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🎬 &lt;a href="https://javascriptweekly.com/link/184735/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Mediabunny v1.42.0&lt;/a&gt; – Read, write, and convert audio and video files in the browser. v1.42.0 notably adds HTTP Live Streaming (HLS) read/write support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184736/rss" style=" color: #3366aa; font-weight: 500;   "&gt;pnpm v11.0.5&lt;/a&gt; – The fast and efficient &lt;code&gt;npm&lt;/code&gt; alternative has deployed many bugfixes since last week's &lt;a href="https://javascriptweekly.com/link/184737/rss" style=" color: #3366aa; font-weight: 500;   "&gt;big 11.0 release.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184738/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electrobun 1.18&lt;/a&gt; – Build tiny cross-platform desktop apps atop Bun. (&lt;a href="https://javascriptweekly.com/link/184739/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Changelog&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184740/rss" style=" color: #3366aa; font-weight: 500;   "&gt;useHotkeys 5.3&lt;/a&gt; – React hook for using keyboard shortcuts in components.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184741/rss" style=" color: #3366aa; font-weight: 500;   "&gt;RxDB 17.2.0&lt;/a&gt; – Fast, local-first, reactive database for JS apps.&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-size: 15px; line-height: 1.48em; padding: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" 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-size: 15px; line-height: 1.48em; padding: 0px 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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;p&gt;⌘ &lt;a href="https://javascriptweekly.com/link/184770/rss" style=" color: #3366aa; font-weight: 500;   "&gt;&lt;b&gt;Command Code&lt;/b&gt;&lt;/a&gt; is a frontier coding agent that ships features, fixes bugs, writes tests, &amp;amp; continuously learns your taste. &lt;b&gt;Start now for $1&lt;/b&gt;.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/184743/rss" style=" color: #3366aa; font-weight: 500;   "&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/184744/rss" style=" color: #3366aa; font-weight: 500;   "&gt;The new Clerk CLI&lt;/a&gt;: Run clerk init to scaffold auth, clerk config to manage it in code, Clerk API to query it. Open source: &lt;a href="https://javascriptweekly.com/link/184744/rss" style=" color: #3366aa; font-weight: 500;   "&gt;clerk.com/cli&lt;/a&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184745/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Handsontable Theme Builder&lt;/a&gt; has AI. Describe your theme, get a token set that fits your data grid — no CSS overrides, no trial and error.&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-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-size: 15px; line-height: 1.48em; padding: 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-size: 15px; line-height: 1.48em;"&gt;
  &lt;a href="https://javascriptweekly.com/link/184746/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wv3jtbpvschb5vcdrhw3.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-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;How can you &lt;em&gt;not&lt;/em&gt; love a project homepage where you're a cat in a convertible driving through an endless barrage of obstacles? &lt;a href="https://javascriptweekly.com/link/184746/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Crashcat&lt;/a&gt; is a JavaScript 3D rigid body physics library built for games, simulations, and web experiences, complete with &lt;a href="https://javascriptweekly.com/link/184747/rss" style=" color: #3366aa; font-weight: 500;   "&gt;numerous fun examples.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;✉️ Cloudflare has &lt;a href="https://javascriptweekly.com/link/184748/rss" style=" color: #3366aa; font-weight: 500;   "&gt;open sourced &lt;em&gt;Agentic Inbox&lt;/em&gt;&lt;/a&gt;, a self-hosted React 19 and React Router 7-based web email app that ties together and heavily leans on numerous Cloudflare APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184749/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Ladybird&lt;/a&gt; is a &lt;em&gt;"truly independent web browser"&lt;/em&gt; with its renderer and JS engine built entirely from &lt;em&gt;scratch&lt;/em&gt;, with an alpha release due later this year. In &lt;a href="https://javascriptweekly.com/link/184750/rss" style=" color: #3366aa; font-weight: 500;   "&gt;the project's latest update&lt;/a&gt; they cover recent significant JS and CSS improvements.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tired of &lt;code&gt;localhost:3000&lt;/code&gt; on your projects? Vercel's &lt;a href="https://javascriptweekly.com/link/184751/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Portless&lt;/a&gt; lets you run local dev servers using a more user-friendly &lt;code&gt;.localhost&lt;/code&gt; hostname over HTTPS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/184761/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Thales&lt;/a&gt; is a TypeScript to &lt;a href="https://javascriptweekly.com/link/184762/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Lean&lt;/a&gt; compiler that type-checks a subset of TypeScript and emits a Lean sidecar, turning your code into a Lean module you can reason about.&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-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/784/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 5 May 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/784</guid>
    </item>
  </channel>
</rss>
