<?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>JavaScript desktop apps in under 10MB</title>
      <link>https://javascriptweekly.com/issues/803</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;#​803 — September 22, 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/190694/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/190636/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/l5ejacd7rpbkelmaxdto.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/190636/rss" title="tinyjs.app" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;tinyjs: Build JavaScript Desktop Apps in &amp;lt;10MB&lt;/a&gt;&lt;/span&gt; — I built an app with this and was impressed. You get a &lt;a href="https://javascriptweekly.com/link/190637/rss" style=" color: #3366aa;   "&gt;txiki.js&lt;/a&gt;-powered backend with full system access (including FFI!), native webview rendering, and tiny macOS, Linux, and Windows builds. It even makes it easy to sign/notarize the final app.&lt;/p&gt;
  &lt;p&gt;Tarwin Stroh-Spijer &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;There are lots of great options in this space though:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190638/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electrobun&lt;/a&gt; offers richer multi-window and GPU features, at the cost of a larger TypeScript runtime – though it can instead use Zig, Rust, Go, or Odin for a tiny native main process.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190639/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Perry&lt;/a&gt; is a TypeScript to native AOT compiler whose primary UI model renders AppKit, Win32 and GTK4 widgets for a more conventionally native feel.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190640/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electron&lt;/a&gt; and the experimental &lt;a href="https://javascriptweekly.com/link/190695/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Deno Desktop&lt;/a&gt; are powerful, but their executables typically run several times larger.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190642/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Neutralinojs&lt;/a&gt; apps can be even smaller than tinyjs's, but you lose the general-purpose JavaScript privileged backend by design.&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;a href="https://javascriptweekly.com/link/190635/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/5c853e9e.png" width="153" 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/190635/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Full-Text Search in Drizzle Without a Second System&lt;/a&gt;&lt;/span&gt; — Try the official ParadeDB integration for Drizzle. Search your live Postgres tables. No ETL, no Elasticsearch. ParadeDB cloud coming soon.&lt;/p&gt;
  &lt;p&gt;ParadeDB &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/190643/rss" title="duckdb.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Persistent Databases in the Browser with DuckDB-Wasm and OPFS&lt;/a&gt;&lt;/span&gt; — A walkthrough of running &lt;a href="https://javascriptweekly.com/link/190644/rss" style=" color: #3366aa;   "&gt;DuckDB&lt;/a&gt; in the browser with a database file that survives reloads using the &lt;a href="https://javascriptweekly.com/link/190645/rss" style=" color: #3366aa;   "&gt;Origin Private File System&lt;/a&gt; now supported by all major browsers.&lt;/p&gt;
  &lt;p&gt;Piovesan and Wielenga (DuckDB) &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/190646/rss" title="linear.app" style=" color: #3366aa;    font-size: 1.05em;"&gt;How Linear Reworked Its CI for 4x the Tests&lt;/a&gt;&lt;/span&gt; — Eager agents grew Linear's test suite, and its CI costs with it! They share some remedies: rewriting type-aware ESLint rules as plain AST checks cut lint time 55% and eased a move to &lt;a href="https://javascriptweekly.com/link/190647/rss" style=" color: #3366aa;   "&gt;Oxlint&lt;/a&gt;, while selectively turning off Vitest's isolation saved a further 17% a month.&lt;/p&gt;
  &lt;p&gt;Mufeez Amjad (Linear) &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;Lovable &lt;a href="https://javascriptweekly.com/link/190648/rss" style=" color: #3366aa; font-weight: 500;   "&gt;rewrote Vite's dev server in Rust&lt;/a&gt; (calling it &lt;a href="https://javascriptweekly.com/link/190649/rss" style=" color: #3366aa; font-weight: 500;   "&gt;OJ&lt;/a&gt;) for performance reasons, but Evan You &lt;a href="https://javascriptweekly.com/link/190650/rss" style=" color: #3366aa; font-weight: 500;   "&gt;disputes the benchmark&lt;/a&gt; and predicts AI will have everyone maintaining &lt;em&gt;"their own slop fork"&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/190651/rss" style=" color: #3366aa; font-weight: 500;   "&gt;npmchart.com&lt;/a&gt; plots download trends, releases and repo activity for any npm package (here's &lt;a href="https://javascriptweekly.com/link/190652/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Svelte's&lt;/a&gt;, for example), and lets you compare packages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 npm now offers &lt;a href="https://javascriptweekly.com/link/190653/rss" style=" color: #3366aa; font-weight: 500;   "&gt;stage-only tokens&lt;/a&gt; to let automated workflows stage a release for a maintainer to approve with 2FA. This offers a migration path for those who can't move to &lt;a href="https://javascriptweekly.com/link/190654/rss" style=" color: #3366aa; font-weight: 500;   "&gt;trusted publishing&lt;/a&gt; yet.&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/190655/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Turborepo 2.11&lt;/a&gt; – Experimental Rust, Python and Go support joins the task graph, plus up to 4x faster startup over 2.9.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190656/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint 10.11.0&lt;/a&gt; – Performance update with faster startup and linting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190657/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node.js 26.10.0 (Current)&lt;/a&gt; – Adds &lt;a href="https://javascriptweekly.com/link/190658/rss" style=" color: #3366aa; font-weight: 500;   "&gt;&lt;code&gt;util.debounce&lt;/code&gt;/&lt;code&gt;throttle&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/190659/rss" style=" color: #3366aa; font-weight: 500;   "&gt;billboard.js 4.1&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190660/rss" style=" color: #3366aa; font-weight: 500;   "&gt;QuickJS-ng 0.17.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190661/rss" style=" color: #3366aa; font-weight: 500;   "&gt;VueUse 15.0&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/190662/rss" title="www.wired.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;An Undercover Analyst Infiltrated the Gang Behind 'Mini Shai-Hulud'&lt;/a&gt;&lt;/span&gt; — Bad news for the group behind this spring's cascading supply chain attacks… Google had a mole in their group chat! WIRED explains how the group was monitored and disrupted, leading to &lt;a href="https://javascriptweekly.com/link/190663/rss" style=" color: #3366aa;   "&gt;two recent arrests&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Andy Greenberg (WIRED) &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/190664/rss" title="soatok.blog" style=" color: #3366aa;    font-size: 1.05em;"&gt;The V8 Runtime Undermined My Constant-Time JavaScript Library&lt;/a&gt;&lt;/span&gt; — A look at how even branchless JavaScript can leak secrets through CPU cache behavior, due to quirks in how V8 handles booleans and &lt;code&gt;-0&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Soatok Dreamseeker &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/190665/rss" title="www.tigerdata.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your UI Isn't Slow. It's Waiting on the Data&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so the data behind your UI loads fast as it grows. &lt;a href="https://javascriptweekly.com/link/190665/rss" style=" color: #3366aa;   "&gt;Get $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/190666/rss" title="brookslybrand.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Do Frameworks Matter Anymore?&lt;/a&gt;&lt;/span&gt; — If you're using AI, you're either using a framework or your agent is building an ad-hoc one on the fly. A Remix team member argues that's a good reason to &lt;em&gt;want&lt;/em&gt; frameworks, and &lt;em&gt;better&lt;/em&gt; ones, too.&lt;/p&gt;
  &lt;p&gt;Brooks Lybrand &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/190668/rss" style=" color: #3366aa; font-weight: 500;   "&gt;We Are All Product Engineers Now&lt;/a&gt; – Laurie argues that understanding what customers need becomes a core developer skill. &lt;cite&gt;Laurie Voss&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/190667/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Is AI Changing How JavaScript Itself Gets Designed?&lt;/a&gt; – A 2-minute take from TC39 delegate Michael Ficarra. &lt;cite&gt;JetBrains&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/190669/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Solid 2.0: It's the Little Things&lt;/a&gt; – Six touches that change how &lt;a href="https://javascriptweekly.com/link/190670/rss" style=" color: #3366aa; font-weight: 500;   "&gt;SolidJS 2.0&lt;/a&gt; feels. &lt;cite&gt;Brenley Dueck&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/190671/rss" style=" color: #3366aa; font-weight: 500;   "&gt;How Notion Handles Concurrent Editing with CRDTs&lt;/a&gt;  &lt;cite&gt;Nehmzow and Guo (Notion)&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/190672/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xuy1lcdg0vlkmjacpeux.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/190672/rss" title="plotly.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Plotly.js 4: A Big Update for the Popular Charting Library&lt;/a&gt;&lt;/span&gt; — Now ships its own TypeScript types, adds ‘quiver’ plots &lt;em&gt;(above)&lt;/em&gt; for drawing vector fields (with many awesome examples in the post), accepts CSS Color 4 color strings, and removes Mapbox GL in favor of MapLibre (no token needed!)&lt;/p&gt;
  &lt;p&gt;Chris Parmer &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/190673/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Transformers.js v4.3: Run AI Models in the Browser&lt;/a&gt;&lt;/span&gt; — Adds support for structured output (e.g. JSON), using WebGPU on Safari 26+, and DeepSeek v4. &lt;a href="https://javascriptweekly.com/link/190674/rss" style=" color: #3366aa;   "&gt;The docs&lt;/a&gt; have had an overhaul and there’s now an &lt;a href="https://javascriptweekly.com/link/190675/rss" style=" color: #3366aa;   "&gt;agent skill&lt;/a&gt; you can use.&lt;/p&gt;
  &lt;p&gt;Hugging Face &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-size: 15px; line-height: 1.48em; padding: 0px 15px;"&gt;&lt;p&gt;💡 Hugging Face also released &lt;a href="https://javascriptweekly.com/link/190676/rss" style=" color: #3366aa; font-weight: 500;"&gt;a collection of 207 Apache-2.0 WebGPU kernels&lt;/a&gt; — matmul, attention and quantization ops for your own runtime.&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/190677/rss" title="www.meticulous.ai" style=" color: #3366aa;    font-size: 1.05em;"&gt;Still Writing Tests Manually? Meticulous AI Is Here&lt;/a&gt;&lt;/span&gt; — Flaky tests slowing down dev? Meticulous gives engineers confidence to ship faster by autonomously testing every edge case of your web app.&lt;/p&gt;
  &lt;p&gt;Meticulous &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/190678/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;&lt;code&gt;@shadcn/lint&lt;/code&gt;: An Agent-First Linter for Tailwind&lt;/a&gt;&lt;/span&gt; — An ESLint/Oxlint plugin to enforce rules like &lt;em&gt;"no raw colors"&lt;/em&gt; and &lt;em&gt;"no restyling &lt;code&gt;&amp;lt;Button&amp;gt;&lt;/code&gt; from outside"&lt;/em&gt; with errors to steer agents back to your variants and tokens.&lt;/p&gt;
  &lt;p&gt;shadcn &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/190679/rss" title="devfra.me" style=" color: #3366aa;    font-size: 1.05em;"&gt;Devframe: A Framework for Building DevTools That Run Anywhere&lt;/a&gt;&lt;/span&gt; — From the developer behind Vitest and Nuxt DevTools, &lt;em&gt;"a framework for building DevTools, in the same way Nuxt or Next.js provides a framework [for web apps]"&lt;/em&gt;. Define a tool once and Devframe turns it into a Web Standard request handler you can mount almost anywhere.&lt;/p&gt;
  &lt;p&gt;Anthony Fu &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/190680/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Mailflare: A Self-Hosted Inbox Built Entirely on Cloudflare&lt;/a&gt;&lt;/span&gt; — A self-hosted inbox for custom domains built on Cloudflare’s Email Routing, Workers, D1 and R2. AGPL 3.0 licensed.&lt;/p&gt;
  &lt;p&gt;Hieu Nguyen &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/190681/rss" style=" color: #3366aa; font-weight: 500;   "&gt;gridstack.js 14.0&lt;/a&gt; – The popular drag-and-drop dashboard layout library adds a &lt;code&gt;list&lt;/code&gt; mode that reflows widgets like a reorderable list. (&lt;a href="https://javascriptweekly.com/link/190682/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Demos&lt;/a&gt;.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://javascriptweekly.com/link/190683/rss" style=" color: #3366aa; font-weight: 500;   "&gt;image-dimensions 2.6&lt;/a&gt; – Quickly get an image's dimensions by reading the least amount of data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190684/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Feedsmith 3.0&lt;/a&gt; – A fast way to parse and generate web feeds, including RSS, Atom, and JSON.&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/190685/rss" style=" color: #3366aa; font-weight: 500;   "&gt;A developer's guide to adding eSignature to your app with an API&lt;/a&gt;: How signing workflows and embedded signing work, and the core steps to add signing to your product with Foxit.&lt;/p&gt;
 
&lt;p&gt;🧩 CAPTCHA was built for a different internet. Replace it with invisible bot detection with a few lines of code. &lt;a href="https://javascriptweekly.com/link/190696/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Try Fingerprint for free&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;Meet &lt;a href="https://javascriptweekly.com/link/190687/rss" style=" color: #3366aa; font-weight: 500;   "&gt;chat.agent on Trigger.dev&lt;/a&gt;: durable AI agents built with the AI SDK you already use. Long-lived LLM sessions that survive deploys, crashes &amp;amp; refreshes.&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/190688/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ybmk2nasvvasjcjmkclc.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;I love these &lt;a href="https://javascriptweekly.com/link/190688/rss" style=" color: #3366aa; font-weight: 500;   "&gt;pure CSS 'hand drawn' annotations&lt;/a&gt; &lt;em&gt;(above)&lt;/em&gt; you can add to any page in a &lt;code&gt;data-note&lt;/code&gt; attribute.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cloudflare's Sunil Pai writes about &lt;a href="https://javascriptweekly.com/link/190689/rss" style=" color: #3366aa; font-weight: 500;   "&gt;the senior engineer 'death spiral'&lt;/a&gt;, where you go dark for weeks to prove yourself in a new role and end up burning out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 Simon Willison &lt;a href="https://javascriptweekly.com/link/190690/rss" style=" color: #3366aa; font-weight: 500;   "&gt;writes about Jev&lt;/a&gt;, a new, fast 'decision model' taking developer social media by storm. Feed it semi-structured state and one or more questions and you get only numbers back (probabilities, choices and scores).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub Actions has &lt;a href="https://javascriptweekly.com/link/190691/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a new &lt;code&gt;cache-mode&lt;/code&gt; setting&lt;/a&gt; to limit cache access per workflow or job, a defence against the kind of cache poisoning that &lt;a href="https://javascriptweekly.com/link/190692/rss" style=" color: #3366aa; font-weight: 500;   "&gt;compromised TanStack's npm packages in May&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/803/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/803</guid>
    </item>
    <item>
      <title>Functional programming jargon, mapped out</title>
      <link>https://javascriptweekly.com/issues/802</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;#​802 — September 15, 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/190368/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/190310/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yasnr77llfxhnd7g3ffz.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/190310/rss" title="hemanth.github.io" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Functional Programming Jargon, Mapped and Explained&lt;/a&gt;&lt;/span&gt; — Currying, purity, functors, monads…? If FP terms ever go over your head, TC39 delegate Hemanth HM's &lt;a href="https://javascriptweekly.com/link/190311/rss" style=" color: #3366aa;   "&gt;popular jargon reference&lt;/a&gt; is now an explorable map of concepts showing how they relate, each with a simple definition and JavaScript example.&lt;/p&gt;
  &lt;p&gt;Hemanth HM &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/190309/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/17105ae7.png" width="146" 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/190309/rss" title="master.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Stay Sharp in the Age of AI&lt;/a&gt;&lt;/span&gt; — Master.dev instructors build at Anthropic, OpenAI, Netflix, Google, and Stripe. Learn from them with hundreds of courses, live workshops, and expanded AI learning paths. &lt;a href="https://javascriptweekly.com/link/190309/rss" style=" color: #3366aa;   "&gt;New members get $100 off a yearly membership&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Master.dev &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/190312/rss" title="philipwalton.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Modern Web Types: TypeScript Support for Newer Web APIs&lt;/a&gt;&lt;/span&gt; — TypeScript's DOM types only include APIs shipped in &lt;em&gt;multiple&lt;/em&gt; browser engines, so things like element-scoped &lt;code&gt;startViewTransition&lt;/code&gt; and &lt;code&gt;fetchLater&lt;/code&gt; throw up errors. &lt;a href="https://javascriptweekly.com/link/190313/rss" style=" color: #3366aa;   "&gt;modern-web-types&lt;/a&gt; is a drop-in &lt;code&gt;lib.dom&lt;/code&gt; replacement that adds missing interfaces/members shipped in any single browser engine.&lt;/p&gt;
  &lt;p&gt;Philip Walton (Google) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-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/190314/rss" title="react.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;React 19.3 Released&lt;/a&gt;&lt;/span&gt; — A significant minor release making view transitions and Fragment Refs stable, adding Trusted Types support, and more. We covered it in more depth in &lt;a href="https://javascriptweekly.com/link/190315/rss" style=" color: #3366aa;   "&gt;last week's &lt;em&gt;React Status&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;The React 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;🔒 Attackers are &lt;a href="https://javascriptweekly.com/link/190316/rss" style=" color: #3366aa; font-weight: 500;   "&gt;scanning for exposed Vite dev servers&lt;/a&gt; exploiting a &lt;code&gt;server.fs.deny&lt;/code&gt; bypass (patched in Vite 7.3.2 and 8.0.5 earlier this year) to grab credentials from &lt;code&gt;.env&lt;/code&gt; files. Vite listens on localhost by default, but double check your setup.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190317/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Safari 27&lt;/a&gt; shipped yesterday (alongside macOS/iOS 27), bringing the module loader rewrite &lt;a href="https://javascriptweekly.com/link/190318/rss" style=" color: #3366aa; font-weight: 500;   "&gt;we covered last week&lt;/a&gt;, so top-level &lt;code&gt;await&lt;/code&gt; now works reliably in all major browsers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;TC39 meets in Tokyo in two weeks. &lt;a href="https://javascriptweekly.com/link/190319/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Here's the agenda&lt;/a&gt; with three iterator helper follow-ups (&lt;a href="https://javascriptweekly.com/link/190320/rss" style=" color: #3366aa; font-weight: 500;   "&gt;join&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190321/rss" style=" color: #3366aa; font-weight: 500;   "&gt;includes&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/190322/rss" style=" color: #3366aa; font-weight: 500;   "&gt;chunking&lt;/a&gt;) all up for Stage 4, plus more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 Starting this Thursday, &lt;a href="https://javascriptweekly.com/link/190323/rss" style=" color: #3366aa; font-weight: 500;   "&gt;the OpenJS Foundation's CVE team is taking a break&lt;/a&gt; till October 6 due to burnout driven by a surge of AI-generated reports. Actively exploited issues will still get a response.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 &lt;a href="https://javascriptweekly.com/link/190369/rss" style=" color: #3366aa; font-weight: 500;   "&gt;npm now places a temporary 72-hour 'security hold'&lt;/a&gt; on &lt;em&gt;any&lt;/em&gt; account after a successful recovery-code sign-in.&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/190324/rss" style=" color: #3366aa; font-weight: 500;   "&gt;pnpm 12.4&lt;/a&gt; – The package manager can now manage Rust crates and Python packages alongside npm ones in a single workspace.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190326/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Playwright 1.63&lt;/a&gt; – Tests can now declare a named &lt;code&gt;lock&lt;/code&gt; so those sharing a resource never run concurrently.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190327/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node.js v26.8.2 (Current)&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/190328/rss" style=" color: #3366aa; font-weight: 500;   "&gt;v24.21.0 (LTS)&lt;/a&gt; – Both include a security release of Undici to fix numerous vulnerabilities.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190372/rss" style=" color: #3366aa; font-weight: 500;   "&gt;React Router 8.4&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190330/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Vite 8.3&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190331/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Moment.js 2.31.0&lt;/a&gt; (security release).&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/190332/rss" title="cel.cs.brown.edu" style=" color: #3366aa;    font-size: 1.05em;"&gt;A Design Space Exploration of &lt;code&gt;async&lt;/code&gt;/&lt;code&gt;await&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — A simple &lt;code&gt;async&lt;/code&gt;/&lt;code&gt;await&lt;/code&gt; example produces different results in JavaScript, Rust, Python and Swift. Test your mental model with a quiz, then learn about the design choices behind the differences.&lt;/p&gt;
  &lt;p&gt;Gavin Gray &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/190336/rss" title="shopify.engineering" style=" color: #3366aa;    font-size: 1.05em;"&gt;Native is Now the Future of Mobile at Shopify&lt;/a&gt;&lt;/span&gt; — Shopify is rewriting its React Native mobile apps in Swift/Kotlin. The main argument is coding agents have cut the cost of writing everything twice, while the upsides of native remain.&lt;/p&gt;
  &lt;p&gt;Mustafa Ali (Shopify) &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/190335/rss" title="sentry.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Workshop: From an Error to the Logs That Explain It&lt;/a&gt;&lt;/span&gt; — Reading logs next to traces and errors, holding context across services, and cutting the noise.&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;a href="https://javascriptweekly.com/link/190333/rss" title="flaviocopes.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;A Deep Dive into StyleX&lt;/a&gt;&lt;/span&gt; — A hands-on tour of Meta's &lt;a href="https://javascriptweekly.com/link/190334/rss" style=" color: #3366aa;   "&gt;StyleX&lt;/a&gt;, which turns JavaScript style objects into plain atomic CSS at build time, and why it can be a good fit for coding agents in particular.&lt;/p&gt;
  &lt;p&gt;Flavio Copes &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/190370/rss" style=" color: #3366aa; font-weight: 500;   "&gt;'Nobody Pays for Open Source: We Can Force Them To'&lt;/a&gt; – Laurie Voss ran npm for five years and thinks registries are an untapped lever for funding maintainers. &lt;cite&gt;Laurie Voss&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/190337/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Anecdotally, Programmers Dislike &lt;code&gt;reduce&lt;/code&gt;&lt;/a&gt; – &lt;code&gt;map&lt;/code&gt; and &lt;code&gt;filter&lt;/code&gt; sail through code review, but &lt;code&gt;reduce&lt;/code&gt; draws complaints. Evan has a few theories why. &lt;cite&gt;Evan Hahn&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/190341/rss" title="snapdom.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;SnapDOM 3.0: Turn DOM Elements Into Images, Canvas and More&lt;/a&gt;&lt;/span&gt; — Zero-dependency &lt;a href="https://javascriptweekly.com/link/190342/rss" style=" color: #3366aa;   "&gt;html2canvas&lt;/a&gt; alternative with support for pseudo-elements and Shadow DOM. &lt;a href="https://javascriptweekly.com/link/190343/rss" style=" color: #3366aa;   "&gt;v3.0&lt;/a&gt; adds 'incremental recapture' for faster repeat captures, automatic web font embedding, and &lt;code&gt;fromString()&lt;/code&gt; for turning raw HTML markup into images.&lt;/p&gt;
  &lt;p&gt;Zumerlab &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/190344/rss" title="www.tigerdata.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your App Didn't Get Slower. Your Data Got Bigger&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so queries stay fast at scale, even as your data grows. &lt;a href="https://javascriptweekly.com/link/190344/rss" style=" color: #3366aa;   "&gt;Get $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/190345/rss" title="docs.fallow.tools" style=" color: #3366aa;    font-size: 1.05em;"&gt;Fallow: Codebase Intelligence for TypeScript and JavaScript&lt;/a&gt;&lt;/span&gt; — A fast, zero-config Rust binary that finds dead code, duplication, circular dependencies and complexity hotspots in JS/TS projects. It's also pitched as a deterministic check for AI agent coding loops. &lt;a href="https://javascriptweekly.com/link/190346/rss" style=" color: #3366aa;   "&gt;GitHub repo&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Bart Waardenburg &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/190347/rss" title="mattstromawn.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;category-colors: Generate 'Least Wrong' Color Palettes for Charts&lt;/a&gt;&lt;/span&gt; — Matt devised &lt;a href="https://javascriptweekly.com/link/190348/rss" style=" color: #3366aa;   "&gt;this algorithm for picking categorical chart colors&lt;/a&gt; in 2022 while design director at Stripe. It's now available as &lt;a href="https://javascriptweekly.com/link/190349/rss" style=" color: #3366aa;   "&gt;an npm package&lt;/a&gt;, and you can &lt;a href="https://javascriptweekly.com/link/190371/rss" style=" color: #3366aa;   "&gt;try it out on the Web here&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Matt Ström-Awn &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/190350/rss" style=" color: #3366aa; font-weight: 500;   "&gt;React DevTools 8.0&lt;/a&gt; (&lt;a href="https://javascriptweekly.com/link/190351/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Chrome Web Store&lt;/a&gt;) – The Suspense tab is now on by default, the Timeline profiler is gone (use your browser's &lt;em&gt;Performance&lt;/em&gt; panel instead), and inspecting a DOM node now shows its matching React component.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190325/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Zod 4.6&lt;/a&gt; – Adds &lt;code&gt;.validate()&lt;/code&gt;, a boolean check that skips building errors and is up to 35x faster than &lt;code&gt;.safeParse().success&lt;/code&gt; on invalid input with compiled schemas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190352/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Javet 6.0&lt;/a&gt; – Embed Node.js v26's runtime in the JVM for full interop with Java.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190353/rss" style=" color: #3366aa; font-weight: 500;   "&gt;parse-xml 5.0&lt;/a&gt; – The fast, compliant XML parser &lt;a href="https://javascriptweekly.com/link/190354/rss" style=" color: #3366aa; font-weight: 500;   "&gt;goes ESM-only&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🕹️ &lt;a href="https://javascriptweekly.com/link/190355/rss" style=" color: #3366aa; font-weight: 500;   "&gt;n64js 1.0&lt;/a&gt; – A Nintendo 64 emulator in pure JavaScript.&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/190356/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Free live coding workshop, Sept 16&lt;/a&gt;. Build signup protection with Fingerprint that catches fake signups, no matter how they cover their tracks.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/190357/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/190358/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Zuplo&lt;/a&gt; puts every API, AI, and MCP request behind one gateway. Route traffic, guard your MCP servers, and cap your AI costs. &lt;a href="https://javascriptweekly.com/link/190358/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Try it free&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/190359/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wwfey07te8tmpqvviapc.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;🕹️ This year's &lt;a href="https://javascriptweekly.com/link/190359/rss" style=" color: #3366aa; font-weight: 500;   "&gt;js13kGames&lt;/a&gt; entries are in with a record &lt;a href="https://javascriptweekly.com/link/190360/rss" style=" color: #3366aa; font-weight: 500;   "&gt;317 games squeezed into 13KB each&lt;/a&gt;. Frank Force's &lt;a href="https://javascriptweekly.com/link/190361/rss" style=" color: #3366aa; font-weight: 500;   "&gt;SP13KTRA&lt;/a&gt; racer and the &lt;a href="https://javascriptweekly.com/link/190362/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Hornbound&lt;/a&gt; roguelike are good places to start, and you can dig around the public repos of every project too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chris Coyier rounds up &lt;a href="https://javascriptweekly.com/link/190365/rss" style=" color: #3366aa; font-weight: 500;   "&gt;new and emerging HTML features worth knowing about&lt;/a&gt;, like the &lt;code&gt;&amp;lt;geolocation&amp;gt;&lt;/code&gt; and &lt;code&gt;&amp;lt;install&amp;gt;&lt;/code&gt; elements, as well as HTML-in-Canvas and improvements to &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt; customization.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The first &lt;a href="https://javascriptweekly.com/link/190363/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Three.js Conference&lt;/a&gt; took place in Paris last week, and Codrops has &lt;a href="https://javascriptweekly.com/link/190364/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a live-blog writeup of both days&lt;/a&gt;, including Mr.doob's talk. No recordings yet.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tailwind Labs, the team behind Tailwind CSS, &lt;a href="https://javascriptweekly.com/link/190366/rss" style=" color: #3366aa; font-weight: 500;   "&gt;is joining Shopify&lt;/a&gt;. Tailwind CSS is to remain maintained and open source – phew! 😅&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&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;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/802/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 15 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/802</guid>
    </item>
    <item>
      <title>When 8 chunks weigh more than 355</title>
      <link>https://javascriptweekly.com/issues/801</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;#​801 — September 8, 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/190038/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/189987/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wq9zwktpt9rxrly3oo74.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/189987/rss" title="nextjs.org" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;How Turbopack Chunks Your JavaScript&lt;/a&gt;&lt;/span&gt; — Starting from the &lt;em&gt;Network&lt;/em&gt; tab and working up, a look at chunking strategy and the tradeoffs bundlers make between fewer requests and less code (e.g. 8 chunks can weigh more than 355 do), backed by numbers from bundling the official Next.js site itself.&lt;/p&gt;
  &lt;p&gt;Sam Poder &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/189986/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/d1dbac0d.png" width="160" height="38" 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/189986/rss" title="www.greptile.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Catch Runtime Bugs Before Your JS PR Merges&lt;/a&gt;&lt;/span&gt; — Greptile now runs your code to find bugs. T-Rex runs your PR branch in a sandbox, uses browser agents to click through your UI, and attaches screenshots and videos as evidence of the issue directly in the PR.&lt;/p&gt;
  &lt;p&gt;Greptile &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/189988/rss" title="vitest.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Vitest 5.0 Focuses on Speed and Test Debugging&lt;/a&gt;&lt;/span&gt; — A major release for the Vite-native test runner, with a benchmark repo showing up to 53% faster runs on dependency-heavy apps. The new &lt;a href="https://javascriptweekly.com/link/189989/rss" style=" color: #3366aa;   "&gt;Trace View&lt;/a&gt; replays &lt;em&gt;Browser Mode&lt;/em&gt; tests step by step, and &lt;a href="https://javascriptweekly.com/link/189990/rss" style=" color: #3366aa;   "&gt;&lt;code&gt;vitest doctor&lt;/code&gt;&lt;/a&gt; recommends settings to make your suite run faster.&lt;/p&gt;
  &lt;p&gt;Vitest 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;a href="https://javascriptweekly.com/link/189991/rss" title="webkit.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;How Safari Fixed Top-Level &lt;code&gt;await&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — Safari's module loader was originally built on an abandoned spec proposal and adding top-level &lt;code&gt;await&lt;/code&gt; caused years of &lt;em&gt;"cannot access before initialization"&lt;/em&gt; errors. Safari 27 brings full spec compliance for it, but it took a ground-up rewrite and this post explains the complexity.&lt;/p&gt;
  &lt;p&gt;Kai Tamkun (WebKit) &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/189992/rss" style=" color: #3366aa; font-weight: 500;   "&gt;jQuery 1.0 is 20 years old&lt;/a&gt;. InfoQ looks back at how &lt;code&gt;$()&lt;/code&gt; helped us dodge the browser wars and why many sites still use it. Ten years further back, &lt;a href="https://javascriptweekly.com/link/189993/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Microsoft shipped JavaScript in &lt;em&gt;Internet Explorer&lt;/em&gt;&lt;/a&gt; as &lt;a href="https://javascriptweekly.com/link/189994/rss" style=" color: #3366aa; font-weight: 500;   "&gt;JScript&lt;/a&gt; to dodge trademark issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189995/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Two men have been arrested over the TeamPCP npm supply chain attacks&lt;/a&gt;. TeamPCP is suspected of cloning the Shai-Hulud worm, resulting in the &lt;a href="https://javascriptweekly.com/link/189996/rss" style=" color: #3366aa; font-weight: 500;   "&gt;'Mini Shai-Hulud'&lt;/a&gt; waves.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189997/rss" style=" color: #3366aa; font-weight: 500;   "&gt;VoidZero's latest update&lt;/a&gt; celebrates Vitest passing 100m weekly downloads, React Compiler support reaching Vite, and the latest on Rolldown, Vite+ and &lt;a href="https://javascriptweekly.com/link/189998/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ViteConf&lt;/a&gt; (taking place online this October 15th).&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/189999/rss" style=" color: #3366aa; font-weight: 500;   "&gt;deck.gl 9.4&lt;/a&gt; – The GPU-powered data visualization library extends its experimental WebGPU support in what's expected to be the final v9 release.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190000/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Bun 1.4.1&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/190001/rss" style=" color: #3366aa; font-weight: 500;   "&gt;1.4.2&lt;/a&gt; – Big idle memory usage drops, smaller &lt;code&gt;bun build&lt;/code&gt; bundles, &lt;code&gt;Bun.serve&lt;/code&gt; speaks HTTP/2 on the same port as HTTP/1.1, and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190002/rss" style=" color: #3366aa; font-weight: 500;   "&gt;NVM for Windows 2.0&lt;/a&gt; – A Node version manager for Windows. No longer needs admin privileges in v2.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190003/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Astro 7.3&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190004/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint 10.10.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190005/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Storybook 10.6&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/190006/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Vuetify 4.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;"&gt;
  &lt;a href="https://javascriptweekly.com/link/190007/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ayffabov5k9i9tii8xeb.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/190007/rss" title="www.youtube.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Story of VS Code&lt;/a&gt;&lt;/span&gt; — An official movie-length documentary on &lt;a href="https://javascriptweekly.com/link/190008/rss" style=" color: #3366aa;   "&gt;Visual Studio Code&lt;/a&gt;'s journey from a Swiss skunkworks to now. Its founding engineers cover the decisions made in areas like Electron, LSP, and the extension API, plus candid talk about the various forks now springing up.&lt;/p&gt;
  &lt;p&gt;Microsoft and Stefan Kingham &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;😅 We also learn that at the 2015 launch they drank a beer per 100 Hacker News upvotes… and had to stop at 1,400 (votes, not beers!)&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/190009/rss" title="blog.gaborkoos.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Half Past Fetch: What &lt;code&gt;await fetch()&lt;/code&gt; Waits For&lt;/a&gt;&lt;/span&gt; — Did you know &lt;code&gt;await fetch(url)&lt;/code&gt; waits for the headers, not the full body? Gabor digs into some surprising consequences of that for connections, &lt;code&gt;clone()&lt;/code&gt;, aborts, and timeouts.&lt;/p&gt;
  &lt;p&gt;Gábor Koós &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/190010/rss" title="wallabyjs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Your AI Writes Tests That Pass but Prove Nothing. Fix It&lt;/a&gt;&lt;/span&gt; — Wallaby CLI makes test generation 10x smarter with live coverage and runtime data, using 3x fewer tokens. &lt;a href="https://javascriptweekly.com/link/190010/rss" style=" color: #3366aa;   "&gt;One skill to install&lt;/a&gt;.&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;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/190011/rss" title="evilmartians.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;10 Anti-'Slop' Moves for Frontend Projects&lt;/a&gt;&lt;/span&gt; — A walkthrough of automated checks that cut how much code you have to review, covering OpenAPI codegen, layer boundaries, mutation testing, and using CI to make it all stick.&lt;/p&gt;
  &lt;p&gt;Yuri Mikhin (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/190012/rss" title="kciter.so" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Browser's Main Thread is Expensive&lt;/a&gt;&lt;/span&gt; — A thorough look, complete with demos, at spending your main thread time well, including splitting, batching, prioritizing, and deferring tasks, then getting work off it entirely.&lt;/p&gt;
  &lt;p&gt;Lee Sun-Hyoup &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/190013/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Why I Ported Moonshine to JavaScript&lt;/a&gt; – Pete’s low-latency speech to text runtime now runs in the browser to avoid round trips to a server. &lt;cite&gt;Pete Warden&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/190014/rss" style=" color: #3366aa; font-weight: 500;   "&gt;How Can Someone Actually Change JavaScript?&lt;/a&gt; – A 2-minute explainer from a TC39 delegate. &lt;cite&gt;Mikhail Barash&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/190015/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jtleeynffjs0yrixzyqg.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/190015/rss" title="www.dropzone.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Dropzone.js 6.x: The Drag and Drop Uploader Returns&lt;/a&gt;&lt;/span&gt; — A major update for the library that handles the browser side of drag and drop uploading. After a 5 year(!) beta, v6.0, 6.1, and 6.2 landed over two days, bringing no dependencies, smaller bundles, and fixes for chunked uploads that could corrupt files.&lt;/p&gt;
  &lt;p&gt;Mat Simon &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/190016/rss" title="rslib.rs" style=" color: #3366aa;    font-size: 1.05em;"&gt;Rslib 1.0: A Build Tool for Shipping JavaScript Libraries&lt;/a&gt;&lt;/span&gt; — From the Rspack team, a unified build pipeline that handles the irritating parts of publishing packages, like getting ESM and CJS working side by side, Module Federation output, and component CSS across React, Vue, Svelte and Solid.&lt;/p&gt;
  &lt;p&gt;Chenwei Dai, Elecmonkey, et al. &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/190017/rss" title="jobs.fidelity.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Balance build time with your time&lt;/a&gt;&lt;/span&gt; — Our technologists do meaningful work, and we give them the support to have a meaningful life, too.&lt;/p&gt;
  &lt;p&gt;Fidelity Careers &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/190018/rss" title="vgpu.sh" style=" color: #3366aa;    font-size: 1.05em;"&gt;vgpu: Render WebGPU Shaders in the Browser or Node.js&lt;/a&gt;&lt;/span&gt; — Provides a way to use the same shader in the browser or render headlessly with Node (to a high-resolution PNG or MP4 video). WGSL modules import and export like TypeScript does.&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/190019/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;SimpleWebAuthn 14.0: Now with Post-Quantum Passkeys&lt;/a&gt;&lt;/span&gt; — The passkeys library now verifies post-quantum ML-DSA passkeys and, on Node 24.7 and up, prefers ML-DSA-44 at registration by default.&lt;/p&gt;
  &lt;p&gt;Matthew Miller &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/190020/rss" style=" color: #3366aa; font-weight: 500;   "&gt;ESLint Config Inspector 3.4&lt;/a&gt; – Adds timing analysis making it easier to identify the rules slowing down your lint runs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190021/rss" style=" color: #3366aa; font-weight: 500;   "&gt;GPUIX 0.7&lt;/a&gt; – Build native GPU-accelerated desktop apps with React and TypeScript atop the framework used by &lt;a href="https://javascriptweekly.com/link/190022/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Zed&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190023/rss" style=" color: #3366aa; font-weight: 500;   "&gt;memlab 2.0.5&lt;/a&gt; – Meta's framework for finding memory leaks in both browser and Node.js JavaScript apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎵 &lt;a href="https://javascriptweekly.com/link/190024/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Astro LilyPond&lt;/a&gt; – Build-time rendering of text to musical notation for Astro.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/190025/rss" style=" color: #3366aa; font-weight: 500;   "&gt;vue-echarts 8.3&lt;/a&gt; – Vue.js component for Apache ECharts.&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/190026/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Join Fingerprint on Sept 16&lt;/a&gt;. Learn how to stop fake signups with Device Intelligence, and build protection that works, for free.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/190027/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;Charts crawling as your data grows? &lt;a href="https://javascriptweekly.com/link/190028/rss" style=" color: #3366aa; font-weight: 500;   "&gt;TimescaleDB&lt;/a&gt; extends Postgres to stay fast at scale, straight from live data. &lt;a href="https://javascriptweekly.com/link/190028/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Get $1000 credit&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/190029/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/r4xavp1sxq6ebnecqxkd.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;✨ GitHub has &lt;a href="https://javascriptweekly.com/link/190030/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a new privacy-safe star history API&lt;/a&gt;, so charting a repo's growth over time no longer means scraping or approximating it. &lt;a href="https://javascriptweekly.com/link/190031/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Star-History&lt;/a&gt; shares &lt;a href="https://javascriptweekly.com/link/190032/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a little more background&lt;/a&gt; and you can use it to chart projects' star counts, as above (&lt;a href="https://javascriptweekly.com/link/190029/rss" style=" color: #3366aa; font-weight: 500;   "&gt;for example&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Robin Wieruch argues that, due to the advent of agentic coding, &lt;a href="https://javascriptweekly.com/link/190033/rss" style=" color: #3366aa; font-weight: 500;   "&gt;building things from primitives rather than high-level libraries&lt;/a&gt; makes more sense, using D3 vs Recharts as an example.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/190034/rss" style=" color: #3366aa; font-weight: 500;   "&gt;You don't need &lt;code&gt;initial-scale=1.0&lt;/code&gt; in your viewport meta tag&lt;/a&gt;, claims Declan Chidlow, as it worked around quirks in old versions of iOS.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Got a browser-compatibility pain point? &lt;a href="https://javascriptweekly.com/link/190035/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Submit it as an Interop 2027 idea&lt;/a&gt; (by September 23).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;👕 TIL you can &lt;a href="https://javascriptweekly.com/link/190036/rss" style=" color: #3366aa; font-weight: 500;   "&gt;buy official Vue.js merch&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/801/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 8 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/801</guid>
    </item>
    <item>
      <title>How to fit Minesweeper into 247 bytes</title>
      <link>https://javascriptweekly.com/issues/800</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;#​800 — September 1, 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/189716/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: 0px 15px;"&gt;&lt;p&gt;&lt;b&gt;Issue 800!&lt;/b&gt; I'm not doing anything to celebrate, but I know many of you have been here for &lt;em&gt;years&lt;/em&gt;, so thanks for your continued support. Maybe I'll do something for issue 1000, though at current velocity that'll be late 2030... ;-)&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&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/189671/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bx17eefknqp64qnr1fet.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/189671/rss" title="yui.dev" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;The Depths of JavaScript: Minesweeper in 247 Bytes&lt;/a&gt;&lt;/span&gt; — An analysis of a playable 8x8 Minesweeper implementation in one line of JavaScript, complete with flags and cascading blank cells. The author's 658-byte version is impressive enough, but this post covers the tricks to make it 62% smaller than that!&lt;/p&gt;
  &lt;p&gt;yui and DNEK &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/189670/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/8de3904f.png" width="160" height="91" 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/189670/rss" title="coderabbit.link" style=" color: #3366aa;    font-size: 1.05em;"&gt;Stop Reviewing PRs in the Order They Arrived. Review in the Order That Matters&lt;/a&gt;&lt;/span&gt; — CodeRabbit Triage is a reviewer-first prioritization layer for the PR queue: a self-updating, cross-repository inbox that tells you which pull request to review next, how deeply to review it and which ones may be safe to close.&lt;/p&gt;
  &lt;p&gt;CodeRabbit &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/189717/rss" title="remix.run" style=" color: #3366aa;    font-size: 1.05em;"&gt;Remix 3 RC: A Full-Stack Framework with No React Required&lt;/a&gt;&lt;/span&gt; — Remix's big rewrite from its previous life as a React framework into an independent full-stack framework is largely done. This post makes a good pitch, but even better is the &lt;a href="https://javascriptweekly.com/link/189718/rss" style=" color: #3366aa;   "&gt;all-new homepage&lt;/a&gt; explaining how Remix offers everything you need to build a modern webapp in 'a single package'.&lt;/p&gt;
  &lt;p&gt;Brooks Lybrand &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 final release is due on October 2 but it's more than ready to start working with.&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/189672/rss" title="pnpm.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;pnpm 12: Rewritten in Rust, Same Commands and Lockfile&lt;/a&gt;&lt;/span&gt; — The Rust rewrite is stable, and nearly all of v11's commands, flags and lockfile format carry over with only a &lt;a href="https://javascriptweekly.com/link/189673/rss" style=" color: #3366aa;   "&gt;handful of changes&lt;/a&gt;. npm's &lt;code&gt;latest&lt;/code&gt; tag still points to pnpm 11, though, so you'd need &lt;code&gt;pnpm self-update next-12&lt;/code&gt; to upgrade.&lt;/p&gt;
  &lt;p&gt;Zoltan Kochan &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;TypeScript has &lt;a href="https://javascriptweekly.com/link/189719/rss" style=" color: #3366aa; font-weight: 500;   "&gt;landed support for import-attribute-aware ambient modules&lt;/a&gt;. Declarations such as  &lt;code&gt;declare module "*" with { type: "css" }&lt;/code&gt; can now match imports carrying that attribute.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dani Sandoval rounds up &lt;a href="https://javascriptweekly.com/link/189676/rss" style=" color: #3366aa; font-weight: 500;   "&gt;what's new in the Svelte world this month&lt;/a&gt; including Svelte 5.57's new &lt;code&gt;SvelteMap&lt;/code&gt; methods, SvelteKit 3 reaching RC, and an &lt;code&gt;ai-tools&lt;/code&gt; add-on for the &lt;code&gt;sv&lt;/code&gt; CLI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sarah Rainsberger rounds up &lt;a href="https://javascriptweekly.com/link/189677/rss" style=" color: #3366aa; font-weight: 500;   "&gt;what's new in Astro this month&lt;/a&gt; too, including Matthew Phillips taking over as 'Project Steward', and a new &lt;a href="https://javascriptweekly.com/link/189729/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Astro Playground&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/189678/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Rspack 2.2, Rsbuild 2.2, and Rslint 0.9&lt;/a&gt; – Faster builds and HMR, shorter module IDs, and Node.js chunk splitting on by default in Rsbuild. Notably, Rslint now implements all rules and presets from &lt;code&gt;@typescript-eslint&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189720/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Cypress 16&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/189681/rss" style=" color: #3366aa; font-weight: 500;   "&gt;NestJS 12&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/189682/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Vue 3.6 RC6&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/189683/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Deno 2.9.6&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/189684/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Mocha 12.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/189685/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Electron 44&lt;/a&gt; (mentioned last week but there's now an official post).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189686/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node.js v26.8.0 (Current)&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/189687/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Node.js v24.20.0 (LTS)&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/189691/rss" title="resend.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Browser's New Email Verification API&lt;/a&gt;&lt;/span&gt; — A look at a WICG proposal to get rid of the 'go and check your inbox' headache with the browser and email provider using a token the server verifies on submit. Chrome origin trial and Gmail only for now.&lt;/p&gt;
  &lt;p&gt;Phil Nash &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/189692/rss" title="lovable.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Lovable's Migration from Next.js to TanStack Start&lt;/a&gt;&lt;/span&gt; — How Lovable migrated a ~850K LOC app from Next.js to TanStack Start while running both in parallel behind a proxy, with a shared folder of code between them.&lt;/p&gt;
  &lt;p&gt;Alexander Lebedev (Lovable) &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/189689/rss" title="svar.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;What We Learned Building a Data Grid in React, Vue, and Svelte&lt;/a&gt;&lt;/span&gt; — SVAR ships the same data grid for React, Vue and Svelte, and says the most crucial, performance-impacting elements remain the same whatever the framework.&lt;/p&gt;
  &lt;p&gt;Maksim Kozhukh (SVAR) &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/189693/rss" style=" color: #3366aa; font-weight: 500;   "&gt;The Problem with Concurrent Linter Fixes&lt;/a&gt; – Applying several autofixes at once can produce broken code that a "fix-then-reanalyze" loop wouldn't. &lt;cite&gt;Jeroen Engels&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/189694/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Bumping the Major Version of Your JavaScript Library is User Hostile&lt;/a&gt;  &lt;cite&gt;James Healy&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/189721/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eo9krbjjdoksfuqz7faw.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/189721/rss" title="uppy.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Uppy 6.0: A Modular JavaScript File Uploader&lt;/a&gt;&lt;/span&gt; — Resumable uploads from disk, Dropbox or GDrive, with wrappers for React, Vue, Svelte &amp;amp; Angular. This version focuses on clean-up, with a rewritten S3 plugin and fewer packages to manage.&lt;/p&gt;
  &lt;p&gt;Transloadit &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/189722/rss" title="zod.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Zod 4.5: Faster Parsing, 9x Less Memory Per Schema&lt;/a&gt;&lt;/span&gt; — A big performance release for the popular TypeScript-first schema validation library. In a deep dive, Colin explains &lt;a href="https://javascriptweekly.com/link/189723/rss" style=" color: #3366aa;   "&gt;how method memoization helped cut&lt;/a&gt; a bare &lt;code&gt;z.string()&lt;/code&gt; from using 7.5KB of heap to just 784 bytes.&lt;/p&gt;
  &lt;p&gt;Colin McDonnell &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/189695/rss" title="try.expo.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Know JavaScript? You're Ready to Ship a Mobile App&lt;/a&gt;&lt;/span&gt; — Your React skills already ship mobile apps. Expo does the builds, store submission, and updates. No Xcode.&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/189724/rss" title="four.htmx.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;htmx 4.0: The Anti-SPA Library's First Major Release in Two Years&lt;/a&gt;&lt;/span&gt; — The library that swaps HTML fragments into pages using nothing but attributes moves from &lt;code&gt;XMLHttpRequest&lt;/code&gt; to the Fetch API. Attribute inheritance is now opt-in, events have been standardized/renamed, and &lt;a href="https://javascriptweekly.com/link/189725/rss" style=" color: #3366aa;   "&gt;morphing swaps&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/189726/rss" style=" color: #3366aa;   "&gt;&lt;code&gt;&amp;lt;hx-partial&amp;gt;&lt;/code&gt;&lt;/a&gt; are new features. There's a full &lt;a href="https://javascriptweekly.com/link/189727/rss" style=" color: #3366aa;   "&gt;what's new in htmx 4 guide&lt;/a&gt; too.&lt;/p&gt;
  &lt;p&gt;Carson Gross &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;💡 If you're new to htmx, &lt;a href="https://javascriptweekly.com/link/189728/rss" style=" color: #3366aa; font-weight: 500;"&gt;this page of patterns for common use cases&lt;/a&gt; provides a great hands-on introduction.&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/189696/rss" title="sveltebits.xyz" style=" color: #3366aa;    font-size: 1.05em;"&gt;Svelte Bits: Animated UI Components for Svelte&lt;/a&gt;&lt;/span&gt; — A Svelte port of &lt;a href="https://javascriptweekly.com/link/189697/rss" style=" color: #3366aa;   "&gt;React Bits&lt;/a&gt; (by the same creator), the popular suite of animation components for React.&lt;/p&gt;
  &lt;p&gt;David Haz &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/189700/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Schedule-X 4.7&lt;/a&gt; – Large, schedule-style calendar control for React, Vue, Angular, Svelte and Preact apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189680/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Mantine 9.6&lt;/a&gt; – Popular, extensive React component suite. Adds a new media 'lightbox' component and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://javascriptweekly.com/link/189701/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Cropper.js 2.2&lt;/a&gt; – A mature image cropping control with &lt;a href="https://javascriptweekly.com/link/189702/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a playground&lt;/a&gt; where you can give it a spin.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/189703/rss" style=" color: #3366aa; font-weight: 500;   "&gt;noble-curves 2.4&lt;/a&gt; – Audited, minimal JS implementation of elliptic curve cryptography.&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/189705/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Zuplo&lt;/a&gt; puts every API, AI, and MCP request behind one gateway. Route traffic, guard your MCP servers, and cap your AI costs. &lt;a href="https://javascriptweekly.com/link/189705/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Try it free&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;📄 Turn messy PDFs into structured JSON. &lt;a href="https://javascriptweekly.com/link/189706/rss" style=" color: #3366aa; font-weight: 500;   "&gt;See how Foxit’s Structural Extraction API&lt;/a&gt; preserves tables, fields, and layout in four REST calls.&lt;/p&gt;
 
&lt;p&gt;Flaky tests slowing down dev? &lt;a href="https://javascriptweekly.com/link/189707/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;📢  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; padding: 0px 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🤖 Addy Osmani says &lt;a href="https://javascriptweekly.com/link/189708/rss" style=" color: #3366aa; font-weight: 500;   "&gt;mastery still comes from 'doing the reps'&lt;/a&gt;, and that agents finishing tasks for you means building expertise has to be a more deliberate act.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;∑ &lt;a href="https://javascriptweekly.com/link/189709/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Lean&lt;/a&gt;, a language for writing machine-checked mathematical proofs, has a verifier that's "just" a type checker, so here's &lt;a href="https://javascriptweekly.com/link/189710/rss" style=" color: #3366aa; font-weight: 500;   "&gt;the concept demonstrated in TypeScript&lt;/a&gt; instead!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🚫 &lt;a href="https://javascriptweekly.com/link/189711/rss" style=" color: #3366aa; font-weight: 500;   "&gt;Google has removed all remaining Manifest V2 extensions from the Chrome Web Store&lt;/a&gt;… uBlock Origin included.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AWS Lambda has introduced &lt;a href="https://javascriptweekly.com/link/189713/rss" style=" color: #3366aa; font-weight: 500;   "&gt;a new Node.js 26 runtime in preview&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A detailed look at many of the things that &lt;a href="https://javascriptweekly.com/link/189714/rss" style=" color: #3366aa; font-weight: 500;   "&gt;should go in a modern HTML boilerplate&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/800/rss" width="1" height="1" /&gt;</description>
      <pubDate>Tue, 1 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/800</guid>
    </item>
  </channel>
</rss>
