CINXE.COM
JavaScript Weekly
<?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>The JavaScript trademark fight rumbles on</title> <link>https://javascriptweekly.com/issues/730</link> <description> <table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p>#730 — April 4, 2025</p></td> <td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p><a href="https://javascriptweekly.com/link/167721/rss" style=" color: #3366aa;">Read on the Web</a></p></td> </tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 12px; padding-left: 12px;"><p>JavaScript Weekly</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167723/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zrjritl9kpke8jupbwjx.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167723/rss" title="bare.pears.com" style=" color: #3366aa; font-size: 1.1em; line-height: 1.4em;">Bare: A New Lightweight Runtime for Modular JS Apps</a></span> — Imagine something like Node.js but really stripped back: <em>bare</em>, if you will. Like Node, it’s built on top of V8 and libuv (though it's designed to support multiple JavaScript engines) but Bare’s approach is to provide as little as possible (a module system, addon system, and thread support) and then rely upon userland modules that can evolve independently of Bare itself. It’s an interesting idea – <a href="https://javascriptweekly.com/link/167724/rss" style=" color: #3366aa; ">more details here.</a></p> <p>Holepunch </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167725/rss" title="deno.com" style=" color: #3366aa; font-size: 1.05em;">An Update on the Deno v Oracle JavaScript™ Fight</a></span> — Deno filed a petition with the USPTO to <a href="https://javascriptweekly.com/link/167726/rss" style=" color: #3366aa; ">cancel the 'JavaScript' trademark</a>, as claimed by Oracle, and Oracle stepped up to fight back. Ryan recaps the basic story and asks for help to get the word out (<a href="https://javascriptweekly.com/link/167726/rss" style=" color: #3366aa; ">signing the open letter</a> is a great start, if you agree Oracle abandoned the trademark).</p> <p>Ryan Dahl </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <a href="https://javascriptweekly.com/link/167722/rss" style=" color: #3366aa; "><img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/de3c92bd.png" width="150" height="150" style="padding-top: 12px; padding-left: 12px; line-height: 100%; "></a> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167722/rss" title="ag-grid.com" style=" color: #3366aa; font-size: 1.05em;">AG Grid: The Best JavaScript Data Grid In The World</a></span> — Create high-performance data grids with our open-source library, trusted by 90% of the Fortune 500. Add advanced features like Integrated Charting, Grouping, Pivoting and more with a few lines of code. Supports React, Angular and Vue. <a href="https://javascriptweekly.com/link/167722/rss" style=" color: #3366aa; ">Try for free.</a></p> <p>AG Grid <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167727/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">React 19.1 Released</a></span> — The headline feature is <em>Owner Stacks</em>, a dev-only feature to track which components are responsible for rendering other components. 19.1 also brings fixes, small additions (like support for streaming in edge environments), <a href="https://javascriptweekly.com/link/167728/rss" style=" color: #3366aa; ">a new API for prerendering RSCs on the server</a>, and enhanced Suspense support. </p> <p>Matt Carroll (Facebook) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>IN BRIEF:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/167729/rss" style=" color: #3366aa; font-weight: 500 !important; ">Safari 18.4 has been released</a> with Declarative Web Push support, <a href="https://javascriptweekly.com/link/167730/rss" style=" color: #3366aa; font-weight: 500 !important; ">iterator helpers</a>, <code>Error.isError</code>, and faster <code>JSON.parse</code> and <code>JSON.stringify</code> functions.</p> </li> <li> <p>There's a <a href="https://javascriptweekly.com/link/167731/rss" style=" color: #3366aa; font-weight: 500 !important; ">longstanding proposal to bring TS-style enums to JavaScript</a> and author Ron Buckton will be pitching it to TC39 at <a href="https://javascriptweekly.com/link/167732/rss" style=" color: #3366aa; font-weight: 500 !important; ">its next meeting.</a> <a href="https://javascriptweekly.com/link/167733/rss" style=" color: #3366aa; font-weight: 500 !important; ">Here's a slidedeck</a> covering the benefits. Thanks to Rob Palmer for highlighting this.</p> </li> <li> <p>The <a href="https://javascriptweekly.com/link/167734/rss" style=" color: #3366aa; font-weight: 500 !important; ">ES2025 spec</a> has reached candidate stage in anticipation of being finally approved in June.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>RELEASES:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/167735/rss" style=" color: #3366aa; font-weight: 500 !important; ">Express 5.1</a> – The long standing Node.js web framework gets a bump with 5.x finally becoming the <code>latest</code> tagged version on npm.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167736/rss" style=" color: #3366aa; font-weight: 500 !important; ">React Email 4.0</a> – Components and tools for rendering HTML emails.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167737/rss" style=" color: #3366aa; font-weight: 500 !important; ">zx 8.5</a> – Google's tool for better Node shell scripting.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167738/rss" style=" color: #3366aa; font-weight: 500 !important; ">Astro 5.6</a>, <a href="https://javascriptweekly.com/link/167739/rss" style=" color: #3366aa; font-weight: 500 !important; ">Ember 6.3</a>, <a href="https://javascriptweekly.com/link/167740/rss" style=" color: #3366aa; font-weight: 500 !important; ">Turborepo 2.5</a>, <a href="https://javascriptweekly.com/link/167741/rss" style=" color: #3366aa; font-weight: 500 !important; ">Node.js v23.11.0</a>, <a href="https://javascriptweekly.com/link/167770/rss" style=" color: #3366aa; font-weight: 500 !important; ">Bun v1.2.8</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📒 Articles &amp; Tutorials</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167742/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/eiepfdgzjpkzvlt1v6ow.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167742/rss" title="deno.com" style=" color: #3366aa; font-size: 1.05em;">Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot</a></span> — One of <a href="https://javascriptweekly.com/link/167743/rss" style=" color: #3366aa; ">Deno’s</a> compelling features is its support for Jupyter Notebooks and easy <a href="https://javascriptweekly.com/link/167744/rss" style=" color: #3366aa; ">notebook-style</a> programming, such as is common in the Python world. Trevor looks at a practical use of using such a notebook environment for data exploration.</p> <p>Trevor Manz </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167745/rss" title="2ality.com" style=" color: #3366aa; font-size: 1.05em;">Could JavaScript Have Synchronous <code>await</code>?</a></span> — Dr. Axel reflects on the problems around async code being different to synchronous code and ways around the limitations faced. What could the consequences of a synchronous <code>await</code> be?</p> <p>Dr. Axel Rauschmayer </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167746/rss" title="sentry.io" style=" color: #3366aa; font-size: 1.05em;">Hands-On Debugging Session: Instrument, Monitor, and Fix</a></span> — Build it, break it, debug it, and fix it — <i>with Sentry</i>. <a href="https://javascriptweekly.com/link/167746/rss" style=" color: #3366aa; ">See how to get set up</a>, track errors, use Session Replay and the new <a href="https://javascriptweekly.com/link/167747/rss" style=" color: #3366aa; ">Trace Explorer</a>, plus leverage AI to find and fix issues fast.</p> <p>Sentry <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167748/rss" title="thenewstack.io" style=" color: #3366aa; font-size: 1.05em;">JavaScript's Missing Link? Wasp Offers a Full Stack Solution</a></span> — A look at what the <a href="https://javascriptweekly.com/link/167749/rss" style=" color: #3366aa; ">Wasp</a> team is trying to do building a full-stack webapp framework around React, Node, and Prisma. It’s a powerful option if you’re looking for a more traditional-feeling full-stack approach.</p> <p>Loraine Lawson (The New Stack) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>🚂 <a href="https://javascriptweekly.com/link/167750/rss" style=" color: #3366aa; font-weight: 500 !important; ">How a Steam Locomotive from 1993 Broke My Yarn Test</a> – A fun bug hunting tale that actually delivers on its title. <cite>Yew Leong</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167751/rss" style=" color: #3366aa; font-weight: 500 !important; ">Breaking Down Circular Dependencies in JavaScript</a> <cite>Bryan Braun</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167752/rss" style=" color: #3366aa; font-weight: 500 !important; ">Automated Visual Regression Testing with Playwright</a> <cite>Frederik Dohr</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167753/rss" style=" color: #3366aa; font-weight: 500 !important; ">Lessons Learned From My First Dive Into WebAssembly</a> <cite>Chris Wellons</cite></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>🛠 Code &amp; Tools</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167771/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/yptgatqbakzlqxfmtiqh.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167771/rss" title="animejs.com" style=" color: #3366aa; font-size: 1.05em;">Anime.js 4.0: A JS Animation Library for the Web</a></span> — If you’re tired of Web animations, maybe Anime.js will refresh your appetite. This is <a href="https://javascriptweekly.com/link/167772/rss" style=" color: #3366aa; ">a major upgrade</a> to a mature library for animating CSS properties, <a href="https://javascriptweekly.com/link/167773/rss" style=" color: #3366aa; ">SVGs</a>, the DOM, and JS objects. It’s smooth, well-built, and now complete with <a href="https://javascriptweekly.com/link/167774/rss" style=" color: #3366aa; ">fresh documentation</a>.</p> <p>Julian Garner </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167754/rss" title="go.clerk.com" style=" color: #3366aa; font-size: 1.05em;">Learn How to Integrate Clerk with Lovable</a></span> — Lovable integrates Clerk for custom domains, streamlined auth flows, and waitlist-powered onboarding.</p> <p>Clerk <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167755/rss" title="milkdown.dev" style=" color: #3366aa; font-size: 1.05em;">Milkdown 7.7: WYSIWYG Markdown Editor Framework</a></span> — A WYSIWYG Markdown editor framework based around a plugin system that enables a high level of customization. <a href="https://javascriptweekly.com/link/167756/rss" style=" color: #3366aa; ">The docs</a> are rendered by Milkdown itself. <a href="https://javascriptweekly.com/link/167757/rss" style=" color: #3366aa; ">GitHub repo.</a></p> <p>Mirone </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167758/rss" title="tinybase.org" style=" color: #3366aa; font-size: 1.05em;">TinyBase v6.0: A Reactive Data Store for Local-First Apps</a></span> — We’re huge fans of this powerful reactive data store that can be used as the entire backend for many types of app. v6.0 adds no new functionality but brings React 19 support and goes ESM-only. Check out <a href="https://javascriptweekly.com/link/167759/rss" style=" color: #3366aa; ">the homepage</a> for more.</p> <p>James Pearce </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <ul> <li> <p>🤖 <a href="https://javascriptweekly.com/link/167760/rss" style=" color: #3366aa; font-weight: 500 !important; ">node-llama-cpp 3.7</a> – Run LLMs locally with bindings to <code>llama.cpp</code>.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167761/rss" style=" color: #3366aa; font-weight: 500 !important; ">bignumber.js 9.2</a> – Arbitrary-precision decimal and non-decimal arithmetic.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167762/rss" style=" color: #3366aa; font-weight: 500 !important; ">TS-Pattern 5.7</a> – Pattern matching library with smart type inference.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167763/rss" style=" color: #3366aa; font-weight: 500 !important; ">React Admin 5.7</a> – Framework for building B2B frontend interfaces.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167764/rss" style=" color: #3366aa; font-weight: 500 !important; ">UVCanvas 0.3</a> – Render beautifully shaded canvases from React.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167765/rss" style=" color: #3366aa; font-weight: 500 !important; ">Danfo.js 1.2</a> – Pandas-inspired JavaScript data analysis toolkit.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167766/rss" style=" color: #3366aa; font-weight: 500 !important; ">Vuetify 3.8</a> – Vue component framework.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 0px; padding-left: 0px;"> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📰 Classifieds</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><a href="https://javascriptweekly.com/link/167767/rss" style=" color: #3366aa; font-weight: 500 !important; ">Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort</a>. Relied on by Dropbox, Lattice, Bilt Rewards, etc.</p> <p>✉️ Don't forget we have two other JavaScript related newsletters if you work with Node.js or React: <a href="https://javascriptweekly.com/link/167768/rss" style=" color: #3366aa; font-weight: 500 !important; ">Node Weekly</a> and <a href="https://javascriptweekly.com/link/167769/rss" style=" color: #3366aa; font-weight: 500 !important; ">React Status</a> respectively.</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📢 Elsewhere</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>A quick roundup of other interesting updates and useful resources from across the broader developer landscape:</p> <ul> <li> <p>If you fancy writing a blog post that could make it into JavaScript Weekly, checking out <a href="https://javascriptweekly.com/link/167775/rss" style=" color: #3366aa; font-weight: 500 !important; ">How to Write Blog Posts that Developers Read</a> by Michael Lynch isn't a bad idea.. :-) (Then hit reply and tell us about it!)</p> </li> <li> <p>Chrome 135+ includes support for the CSS Overflow 5 spec which makes it easier to <a href="https://javascriptweekly.com/link/167777/rss" style=" color: #3366aa; font-weight: 500 !important; ">create native scrolling and carousel experiences.</a></p> </li> <li> <p>Yoni Goldberg writes <a href="https://javascriptweekly.com/link/167778/rss" style=" color: #3366aa; font-weight: 500 !important; ">about the sweet and powerful 'use case' code pattern.</a></p> </li> <li> <p>Some tips from GitHub for project maintainers: <a href="https://javascriptweekly.com/link/167780/rss" style=" color: #3366aa; font-weight: 500 !important; ">5 GitHub Actions Every Maintainer Needs to Know</a></p> </li> <li> <p>🤖 <em>The New Stack's</em> Alex Williams looks at <a href="https://javascriptweekly.com/link/167781/rss" style=" color: #3366aa; font-weight: 500 !important; ">how AI agents are transforming frontend development.</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </div> </td></tr> </table> <img src="https://javascriptweekly.com/open/730/rss" width="1" height="1" /></description> <pubDate>Fri, 4 Apr 2025 00:00:00 +0000</pubDate> <guid>https://javascriptweekly.com/issues/730</guid> </item> <item> <title>The tale of a bizarre bug encountered in Google Docs</title> <link>https://javascriptweekly.com/issues/729</link> <description> <table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p>#729 — March 28, 2025</p></td> <td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p><a href="https://javascriptweekly.com/link/167492/rss" style=" color: #3366aa;">Read on the Web</a></p></td> </tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 12px; padding-left: 12px;"><p>JavaScript Weekly</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167443/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zzc1abyhqafbilwcbga2.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><span>⭐</span> <a href="https://javascriptweekly.com/link/167443/rss" title="www.monterail.com" style=" color: #3366aa; font-size: 1.1em; line-height: 1.4em;">The State of Vue.js Report 2025</a></span> — Created with the support of the Vue and Nuxt teams, this is no mere collection of statistics and charts (though there’s plenty of both) but a thorough update on the state of both projects and an interview with Evan You on Vue (and Vite's) latest developments. Essential reading for any Vue, Vite, or Nuxt user and a one-stop shop for understanding Vue and Nuxt as they stand right now.</p> <p>Monterail </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <a href="https://javascriptweekly.com/link/167442/rss" style=" color: #3366aa; "><img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/4f0c55c9.png" width="110" height="110" style="padding-top: 12px; padding-left: 12px; line-height: 100%; "></a> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167442/rss" title="frontendmasters.com" style=" color: #3366aa; font-size: 1.05em;">Master Chrome's DevTools</a></span> — Join Jon Kuperman for this video course diving into Chrome's DevTools. You'll go beyond console.log(), learning how to inspect, debug, and audit your web apps — tracking performance, identifying bottlenecks, making performance gains, and more. <a href="https://javascriptweekly.com/link/167442/rss" style=" color: #3366aa; ">Level up your DevTools skills</a>.</p> <p>Frontend Masters <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167444/rss" title="www.clientserver.dev" style=" color: #3366aa; font-size: 1.05em;">War Story: The Hardest Bug I Ever Debugged</a></span> — A former engineer on the Google Docs team tells the tale of a bizarre error that afflicted Google Docs out of the blue about ten years ago. It’s a gnarly one and was only solved due to his swift access to V8’s engineers. If you’ve ever spent hours digging into a bug, you’ll feel glad you weren’t dealing with this one!</p> <p>Jacob Voytko </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167445/rss" title="socket.dev" style=" color: #3366aa; font-size: 1.05em;">Next.js's Recent Middleware Security Woes</a></span> — Last weekend, a new version of Next.js landed to resolve a security vulnerability that could allow middleware to be bypassed. Self-hosted Next.js deployments need to be upgraded <em>immediately</em>. The news led to many responses including <a href="https://javascriptweekly.com/link/167446/rss" style=" color: #3366aa; ">deep dives into the vulnerability</a> and <a href="https://javascriptweekly.com/link/167447/rss" style=" color: #3366aa; ">criticism of how it was all handled.</a></p> <p>Lee Robinson (Vercel) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>IN BRIEF:</strong></p> <ul> <li> <p>Cloudflare has done some work to <a href="https://javascriptweekly.com/link/167448/rss" style=" color: #3366aa; font-weight: 500 !important; ">bring the <code>URLPattern</code> URL matching API to Node.js and Cloudflare Workers.</a></p> </li> <li> <p>🤖 If you haven't checked out <a href="https://javascriptweekly.com/link/167449/rss" style=" color: #3366aa; font-weight: 500 !important; ">Google's <em>Gemini</em> AI tool</a> recently (or ever), it now supports generating HTML, JavaScript, and React code in a 'canvas' mode for building components on the fly.</p> </li> <li> <p>🤖 <a href="https://javascriptweekly.com/link/167450/rss" style=" color: #3366aa; font-weight: 500 !important; ">MCP Node.js Debugger</a> is an attempt to make Node's debugger more accessible to third-party AI coding tools (such as Cursor or Claude Code).</p> </li> <li> <p>📊 <a href="https://javascriptweekly.com/link/167451/rss" style=" color: #3366aa; font-weight: 500 !important; ">Is Vite faster than Turbopack?</a> <em>"Well, it depends."</em></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>RELEASES:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/167452/rss" style=" color: #3366aa; font-weight: 500 !important; ">Bun v1.2.7</a> – Bun's HTTP server now has built-in support for reading and writing cookies using a Map-like API.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167453/rss" style=" color: #3366aa; font-weight: 500 !important; ">Node v18.20.8 (LTS)</a> – Note that Node 18 reaches 'end-of-life' next month.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167454/rss" style=" color: #3366aa; font-weight: 500 !important; ">Sinon 20.0</a> – Test spies, stubs and mocks library.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167455/rss" style=" color: #3366aa; font-weight: 500 !important; ">pnpm 10.7</a>, <a href="https://javascriptweekly.com/link/167456/rss" style=" color: #3366aa; font-weight: 500 !important; ">Babel 7.27.0</a>, <a href="https://javascriptweekly.com/link/167457/rss" style=" color: #3366aa; font-weight: 500 !important; ">ESLint 9.23.0</a>, <a href="https://javascriptweekly.com/link/167458/rss" style=" color: #3366aa; font-weight: 500 !important; ">Neutralinojs 6.0</a>, <a href="https://javascriptweekly.com/link/167459/rss" style=" color: #3366aa; font-weight: 500 !important; ">Material UI v7</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📒 Articles &amp; Tutorials</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167460/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ela5dydqhlmggsjleaju.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167460/rss" title="blog.julik.nl" style=" color: #3366aa; font-size: 1.05em;">Writing a Tiny Undo/Redo Stack in JavaScript</a></span> — You might prefer to lean upon an established approach (using <a href="https://javascriptweekly.com/link/167461/rss" style=" color: #3366aa; ">Immer patches</a> perhaps), but if you want to implement something small yourself, this might help.</p> <p>Julik Tarkhanov </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167462/rss" title="v8.dev" style=" color: #3366aa; font-size: 1.05em;">Land Ahoy: Leaving the Sea of Nodes</a></span> — A deeply technical post from a core member of the V8 JavaScript engine team that explains the limitations of Turbofan, one of V8’s optimizing compilers. If you don’t care for the internals of how your JavaScript is compiled and run, just be assured the V8 team is working to make it run even faster.</p> <p>Darius Mercadier (V8) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167463/rss" title="wallabyjs.com" style=" color: #3366aa; font-size: 1.05em;">Which AI Model Is Best for Fixing Unit Test Errors? Claude, O3-Mini, GPT-4o?</a></span> — Better context wins every time. Wallaby provides AI with test coverage and runtime values to debug smarter. MCP support coming soon.</p> <p>Wallaby Team <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167464/rss" title="engineering.freeagent.com" style=" color: #3366aa; font-size: 1.05em;">Mission jQuery Zero: How FreeAgent Removed jQuery From Its App</a></span> — Despite popular developer sentiment, jQuery’s prevalence on the Web continues to be significant but <em>“sometimes legends need to retire”.</em></p> <p>Colin Gemmell </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;">▶ <a href="https://javascriptweekly.com/link/167465/rss" title="www.youtube.com" style=" color: #3366aa; font-size: 1.05em;">React Query API Design: Lessons Learned</a></span> — You might know Dominik for all his work on React Query, TanStack Router, and his epic <a href="https://javascriptweekly.com/link/167466/rss" style=" color: #3366aa; ">React Query - The Bad Parts</a> series. Here, he walks us through the design choices made while building React Query and shares lessons and mistakes valuable to anyone building their own libraries. <em>(30 minutes.)</em></p> <p>Dominik Dorfmeister (TkDodo) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167467/rss" title="www.saybackend.com" style=" color: #3366aa; font-size: 1.05em;">Deploying a Next.js App to Production on Any Server</a></span> — A popular article from last year that’s been updated for 2025 and Next.js 15.</p> <p>Kamrannetic </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167468/rss" title="workos.com" style=" color: #3366aa; font-size: 1.05em;">🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time</a></span> — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.</p> <p>WorkOS <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📄 <a href="https://javascriptweekly.com/link/167469/rss" style=" color: #3366aa; font-weight: 500 !important; ">Expressing Japanese Grammar in the TypeScript Type System</a> – A curious project out of left field. <cite>Yifeng Wang</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167470/rss" style=" color: #3366aa; font-weight: 500 !important; ">Directives: A Core Feature of the Angular Toolkit</a> <cite>Vyacheslav Borodin</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167471/rss" style=" color: #3366aa; font-weight: 500 !important; ">You Should Know This Before Choosing Next.js</a> <cite>Eduardo Bouças</cite></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>🛠 Code &amp; Tools</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167472/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/iwy5nu8kkpvcwitzirnv.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167472/rss" title="blogs.windows.com" style=" color: #3366aa; font-size: 1.05em;">Babylon.js 8.0: Microsoft's JavaScript 3D Engine</a></span> — 8.0 adds support for improved ‘image based lighting’ and ‘area lights’ for environmental lighting and shadows, extra control of the render pipeline, and a new lightweight viewer. And, as always, they have <a href="https://javascriptweekly.com/link/167473/rss" style=" color: #3366aa; ">▶️ a short video</a> showing it all off.</p> <p>Microsoft </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><span>🤖</span> <a href="https://javascriptweekly.com/link/167474/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">An MCP Server for Playwright and Browser Automation</a></span> — MCP (Model Context Protocol) servers enable certain LLM-based agents (such as Claude, Claude Code, and Cursor) to perform actions on a system outside of their usual sandbox. This new project from Microsoft enables such LLMs to interact with browsers via Playwright.</p> <p>Microsoft </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167475/rss" title="lexical.dev" style=" color: #3366aa; font-size: 1.05em;">Lexical 0.29: An Easy-to-Extend Text Editor Framework from Meta</a></span> — A text editor framework built by Meta with extensibility, accessibility, and cross platform support in mind (there’s even a Swift variant for iOS). There’s <a href="https://javascriptweekly.com/link/167476/rss" style=" color: #3366aa; ">a live playground</a> if you want to give it a try.</p> <p>Meta / Facebook </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><span>🔎</span> <a href="https://javascriptweekly.com/link/167477/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">Fuzzball: Fuzzy String Matching Library</a></span> — To tackle those cases where what’s typed isn’t <em>quite</em> what’s wanted. There’s a neat tree-themed <a href="https://javascriptweekly.com/link/167478/rss" style=" color: #3366aa; ">Web-based demo.</a></p> <p>Nolan </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <ul> <li> <p><a href="https://javascriptweekly.com/link/167479/rss" style=" color: #3366aa; font-weight: 500 !important; ">Axios 0.30</a> – Long-standing, promise-based isomorphic HTTP client.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167480/rss" style=" color: #3366aa; font-weight: 500 !important; ">Solito 4.4</a> – React Native + Next.js. Now supporting Next.js 15.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167481/rss" style=" color: #3366aa; font-weight: 500 !important; ">InversifyJS 7.2</a> – Inversion of control container for JavaScript.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167482/rss" style=" color: #3366aa; font-weight: 500 !important; ">jscodeshift 17.3</a> – JavaScript codemod toolkit from Facebook.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167483/rss" style=" color: #3366aa; font-weight: 500 !important; ">Verdaccio 6.1</a> – Lightweight Node.js private proxy registry.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 0px; padding-left: 0px;"> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📰 Classifieds</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><a href="https://javascriptweekly.com/link/167484/rss" style=" color: #3366aa; font-weight: 500 !important; ">Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort</a>. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.</p> <p>📊 <a href="https://javascriptweekly.com/link/167485/rss" style=" color: #3366aa; font-weight: 500 !important; ">Jspreadsheet</a> – Lightweight JS data grid with Excel-like controls. Create rich web spreadsheets fast. <a href="https://javascriptweekly.com/link/167485/rss" style=" color: #3366aa; font-weight: 500 !important; ">Try it now</a>.</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📢 Elsewhere</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>A quick roundup of other interesting updates and useful resources from across the broader developer landscape:</p> <ul> <li> <p><code>&lt;select&gt;</code> elements have always been notoriously tricky to style with CSS but <a href="https://javascriptweekly.com/link/167486/rss" style=" color: #3366aa; font-weight: 500 !important; ">there's a new standardized approach beginning to become available.</a></p> </li> <li> <p><a href="https://javascriptweekly.com/link/167487/rss" style=" color: #3366aa; font-weight: 500 !important; ">ls-lint</a> is a mature tool for linting file and directory names.</p> </li> <li> <p>Someone's managed to get <a href="https://javascriptweekly.com/link/167488/rss" style=" color: #3366aa; font-weight: 500 !important; ">Go code to compile and run on the PlayStation 2.</a></p> </li> <li> <p>👑 People's experiments with TypeScript's type system continue with the latest creation being <a href="https://javascriptweekly.com/link/167489/rss" style=" color: #3366aa; font-weight: 500 !important; ">a chess engine built from TypeScript types.</a></p> </li> <li> <p>LLM wrangler Simon Willison was getting annoyed at being unable to easily visualize incomplete JSON documents so <a href="https://javascriptweekly.com/link/167490/rss" style=" color: #3366aa; font-weight: 500 !important; ">he built an 'incomplete JSON' pretty printer.</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </div> </td></tr> </table> <img src="https://javascriptweekly.com/open/729/rss" width="1" height="1" /></description> <pubDate>Fri, 28 Mar 2025 00:00:00 +0000</pubDate> <guid>https://javascriptweekly.com/issues/729</guid> </item> <item> <title>The Rsdoctor will see you now</title> <link>https://javascriptweekly.com/issues/728</link> <description> <table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p>#728 — March 21, 2025</p></td> <td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p><a href="https://javascriptweekly.com/link/167140/rss" style=" color: #3366aa;">Read on the Web</a></p></td> </tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 12px; padding-left: 12px;"><p>JavaScript Weekly</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167142/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/stbsfgtjijlz4udozs74.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167142/rss" title="rsdoctor.dev" style=" color: #3366aa; font-size: 1.1em; line-height: 1.4em;">Rsdoctor 1.0: An Analyzer for Rspack and Webpack</a></span> — A one-stop, intelligent build analyzer making it easier to identify bottlenecks and optimize performance. It’s part of the same family of tools as <a href="https://javascriptweekly.com/link/167143/rss" style=" color: #3366aa; ">Rspack</a> (a Rust-powered web bundler) but is fully <a href="https://javascriptweekly.com/link/167144/rss" style=" color: #3366aa; ">webpack</a> compatible. If you’ve ever asked why your build times are too long, this is for you.</p> <p>ByteDance Inc. </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"><p>💡 In other Rust-powered JavaScript tooling news, <a href="https://javascriptweekly.com/link/167145/rss" style=" color: #3366aa; font-weight: 600;">the Oxlint JavaScript linter is now in beta.</a> Imagine ESLint, but it runs in seconds on large codebases (indeed, it can process Microsoft's VS Code repo in <em>under</em> a second).</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <a href="https://javascriptweekly.com/link/167141/rss" style=" color: #3366aa; "><img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/4d3971b0.png" width="143" height="110" style="padding-top: 12px; padding-left: 12px; line-height: 100%; "></a> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167141/rss" title="developer.mescius.com" style=" color: #3366aa; font-size: 1.05em;">Add Excel-like Spreadsheet Functionality to Your JavaScript Apps</a></span> — SpreadJS is the industry-leading JavaScript spreadsheet for adding advanced spreadsheet features to your enterprise apps. Build finance, analysis, budget, and other apps. Excel I/O, 500+ calc functions, tables, charts, and more. View demos now.</p> <p>SpreadJS from MESCIUS inc <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><span>📉</span> <a href="https://javascriptweekly.com/link/167146/rss" title="ckeditor.com" style=" color: #3366aa; font-size: 1.05em;">How We Made Our Rich Text Editor Load Faster</a></span> — <a href="https://javascriptweekly.com/link/167147/rss" style=" color: #3366aa; ">CKEditor</a> is a long-standing, full featured GPL and commercially licensed rich text editor but its complexity can come with a performance cost. In this two part series (<a href="https://javascriptweekly.com/link/167148/rss" style=" color: #3366aa; ">part two here</a>), the CKEditor team digs into how they’ve recently significantly boosted its performance.</p> <p>Szymon Cofalik (CKEditor) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167149/rss" title="www.kylegill.com" style=" color: #3366aa; font-size: 1.05em;">Next.js vs TanStack</a></span> — An incisive essay from a developer who’s had enough of the Next.js approach and has found solace in the approach offered by the increasingly capable TanStack collection of tools (as well as Vite).</p> <p>Kyle Gill </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>IN BRIEF:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/167150/rss" style=" color: #3366aa; font-weight: 500 !important; ">This automatically updated runtime compatibility table</a> lets you see how/if different server-side JavaScript runtimes support different APIs.</p> </li> <li> <p>💬 If you'd like to hang out on Discord and chat with other Node.js developers, there's <a href="https://javascriptweekly.com/link/167151/rss" style=" color: #3366aa; font-weight: 500 !important; ">now an official Node.js Discord server.</a></p> </li> <li> <p><a href="https://javascriptweekly.com/link/167152/rss" style=" color: #3366aa; font-weight: 500 !important; ">The Node.js TSC has voted</a> to stop distributing Corepack with future versions of Node. Corepack was originally introduced as a way to manage other package managers.</p> </li> <li> <p>🛠️ <a href="https://javascriptweekly.com/link/167153/rss" style=" color: #3366aa; font-weight: 500 !important; ">Make Bookmarklets</a> is a handy tool for turning JavaScript into bookmarklet code that you can use directly in a browser bookmark.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>RELEASES:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/167154/rss" style=" color: #3366aa; font-weight: 500 !important; ">Parcel v2.14.0</a> – The zero-config bundler adds a new CLI to scaffold apps, first-class MDX support, and beta support for React Server Components.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167155/rss" style=" color: #3366aa; font-weight: 500 !important; ">Ionic 8.5</a> – Cross-platform JS app development platform.</p> </li> <li> <p>📊 <a href="https://javascriptweekly.com/link/167156/rss" style=" color: #3366aa; font-weight: 500 !important; ">Billboard.js 3.15.0</a> – D3-powered JS chart library.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167157/rss" style=" color: #3366aa; font-weight: 500 !important; ">React Router 7.4</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📒 Articles &amp; Tutorials</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167158/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bpezamign3j4kydzf1pj.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167158/rss" title="www.docker.com" style=" color: #3366aa; font-size: 1.05em;">How to Build a Snake AI Game with Docker and TensorFlow.js</a></span> — You’ve probably heard about people ‘vibe coding’ games by letting LLMs do the coding work, but what if you want to build a game yourself that has neural network powered elements? <a href="https://javascriptweekly.com/link/167159/rss" style=" color: #3366aa; ">TensorFlow.js</a> offers one solution that you could just as easily adapt to non-gaming contexts.</p> <p>Manvar and Raina (Docker) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167160/rss" title="www.neoxs.me" style=" color: #3366aa; font-size: 1.05em;">The Great ESLint v9 Migration Adventure: A Developer's Survival Guide</a></span> — <em>“Let’s just say… I’ve seen things. I hit all the bumps, took all the wrong turns, and somehow made it to the other side—so you don’t have to.”</em></p> <p>Yacine Kharoubi </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167161/rss" title="workos.com" style=" color: #3366aa; font-size: 1.05em;">🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time</a></span> — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.</p> <p>WorkOS <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167162/rss" title="www.robinwieruch.de" style=" color: #3366aa; font-size: 1.05em;">React Trends in 2025</a></span> — Each year Robin does a post giving his opinion on what trends he sees arising over the next year. Last year, he put his money on Astro, RSCs, Vercel, and Biome – this year he points at React Server Components, <code>shadcn/ui</code>, TanStack Start, React Router, and more.</p> <p>Robin Wieruch </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167163/rss" title="deno.com" style=" color: #3366aa; font-size: 1.05em;">Build a Custom RAG AI Agent with TypeScript and Jupyter</a></span> — Deno, Ollama, and a few different AI models come together in this tutorial for storing document embeddings in a vector store and querying them for use in a basic agent.</p> <p>Kitson Kelly </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📄 <a href="https://javascriptweekly.com/link/167164/rss" style=" color: #3366aa; font-weight: 500 !important; ">Training AI to Uncover Malicious JavaScript Intent and Make the Web Safer</a> <cite>Cejuela and Zheng (Cloudflare)</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167165/rss" style=" color: #3366aa; font-weight: 500 !important; ">Lazy Load Background Images with the IntersectionObserver API</a> <cite>Anna Monus</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167166/rss" style=" color: #3366aa; font-weight: 500 !important; ">Web Components vs. Framework Components: What’s the Difference?</a> <cite>Gabriel Shoyombo</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167167/rss" style=" color: #3366aa; font-weight: 500 !important; ">Detecting Browser Zoom Changes in JavaScript</a> <cite>Kirupa Chinnathambi</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167168/rss" style=" color: #3366aa; font-weight: 500 !important; ">Making a Browser Based Game With Vanilla JS and CSS</a> <cite>Eoin McGrath</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/167169/rss" style=" color: #3366aa; font-weight: 500 !important; ">Deno Shows Us There's a Better Way</a> <cite>Mac Chaffee</cite></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>🛠 Code &amp; Tools</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/167170/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/k6tkkuzdkas2xwc10fks.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167170/rss" title="motion.dev" style=" color: #3366aa; font-size: 1.05em;">Introducing <em>Motion for Vue</em></a></span> — <a href="https://javascriptweekly.com/link/167171/rss" style=" color: #3366aa; ">Motion</a> is a popular and powerful animation library most commonly associated with React, but now there’s a new Vue flavor and it’s feature complete, too.</p> <p>Matt Perry (Motion) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167172/rss" title="revealjs.com" style=" color: #3366aa; font-size: 1.05em;">Reveal.js 5.2: The HTML Presentation Framework</a></span> — Brings elegant presentations to anyone with a Web browser. <a href="https://javascriptweekly.com/link/167173/rss" style=" color: #3366aa; ">v5.2</a> adds the ability to trigger ‘lightboxes’ where viewers can see images and videos in a way where they stand out more.</p> <p>Hakim El Hattab </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167174/rss" title="go.clerk.com" style=" color: #3366aa; font-size: 1.05em;">Introducing <code>@clerk/agent-toolkit</code></a></span> — Build agentic systems with support for user and organizational management. Compatible with Vercel's AI SDK and LangChain.</p> <p>Clerk <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167175/rss" title="konvajs.org" style=" color: #3366aa; font-size: 1.05em;">Konva: A JavaScript 2D Canvas Library</a></span> — The native API for Canvas elements is pretty good, but Konva is a popular abstraction that sits on top and provides a more structured way to work with shapes, styling, events, animations, and more (<a href="https://javascriptweekly.com/link/167176/rss" style=" color: #3366aa; ">lots of demos with code</a>). It also has extra integration libraries for <a href="https://javascriptweekly.com/link/167177/rss" style=" color: #3366aa; ">Vue</a>, <a href="https://javascriptweekly.com/link/167178/rss" style=" color: #3366aa; ">Svelte</a> and <a href="https://javascriptweekly.com/link/167179/rss" style=" color: #3366aa; ">React.</a></p> <p>Konva </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167180/rss" title="typist.doist.dev" style=" color: #3366aa; font-size: 1.05em;">Typist 8.0: Tiptap-Based Rich Text Editor Component</a></span> — Simple and opinionated. You can try several examples linked in the sidebar. Well suited for basic rich text situations like writing comments or messages and has a single-line mode. <a href="https://javascriptweekly.com/link/167181/rss" style=" color: #3366aa; ">GitHub repo.</a></p> <p>Doist </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/167182/rss" title="peanoscript.mjgrzymek.com" style=" color: #3366aa; font-size: 1.05em;">PeanoScript: TypeScript But It's a Theorem Prover</a></span> — An experimental proof assistant for <a href="https://javascriptweekly.com/link/167183/rss" style=" color: #3366aa; ">Peano arithmetic</a> based on TypeScript syntax.</p> <p>mjgrzymek </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <ul> <li> <p><a href="https://javascriptweekly.com/link/167184/rss" style=" color: #3366aa; font-weight: 500 !important; ">Gridstack.js 11.5</a> – Build responsive interactive dashboards quickly.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167185/rss" style=" color: #3366aa; font-weight: 500 !important; ">Repomix 0.3</a> – Pack an entire repository into a single, AI-friendly file.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167186/rss" style=" color: #3366aa; font-weight: 500 !important; ">DOCX 9.3</a> – Generate .docx / Word files from JavaScript.</p> </li> <li> <p>🖼️ <a href="https://javascriptweekly.com/link/167187/rss" style=" color: #3366aa; font-weight: 500 !important; ">Parvus 3.0</a> – Dependency-free image lightbox control.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167188/rss" style=" color: #3366aa; font-weight: 500 !important; ">BlockNote 0.26</a> – 'Notion-style' block-based editor.</p> </li> <li> <p>🤖 <a href="https://javascriptweekly.com/link/167189/rss" style=" color: #3366aa; font-weight: 500 !important; ">wllama 2.3</a> – WebAssembly binding for <code>llama.cpp</code>.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/167190/rss" style=" color: #3366aa; font-weight: 500 !important; ">Pixi.js 8.9</a> – Fast, flexible 2D WebGL renderer.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 0px; padding-left: 0px;"> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📰 Classifieds</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>🎹 <a href="https://javascriptweekly.com/link/167191/rss" style=" color: #3366aa; font-weight: 500 !important; ">STRICH</a>: Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.</p> <p><a href="https://javascriptweekly.com/link/167192/rss" style=" color: #3366aa; font-weight: 500 !important; ">Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort</a>. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.</p> <p>📊 <a href="https://javascriptweekly.com/link/167193/rss" style=" color: #3366aa; font-weight: 500 !important; ">Jspreadsheet</a> – Lightweight JS data grid with Excel-like controls. Create rich web spreadsheets fast. <a href="https://javascriptweekly.com/link/167193/rss" style=" color: #3366aa; font-weight: 500 !important; ">Try it now</a>.</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📢 Elsewhere</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>A quick roundup of other interesting updates and useful resources from across the broader developer landscape:</p> <ul> <li> <p>John Tuckner took a look at <a href="https://javascriptweekly.com/link/167194/rss" style=" color: #3366aa; font-weight: 500 !important; ">the murky world of buying browser extensions for 'fun and profit.'</a></p> </li> <li> <p>If you're using VS Code and GitHub Copilot, did you know <a href="https://javascriptweekly.com/link/167195/rss" style=" color: #3366aa; font-weight: 500 !important; ">you can ask Copilot about VS Code's own features?</a></p> </li> <li> <p>Ever wondered what's involved in <a href="https://javascriptweekly.com/link/167196/rss" style=" color: #3366aa; font-weight: 500 !important; ">building a container image from <em>scratch</em>?</a></p> </li> <li> <p>A look at <a href="https://javascriptweekly.com/link/167197/rss" style=" color: #3366aa; font-weight: 500 !important; ">building a Lisp interpreter in 66 lines of JavaScript.</a></p> </li> <li> <p><a href="https://javascriptweekly.com/link/167198/rss" style=" color: #3366aa; font-weight: 500 !important; ">"As an engineer, I’d rather be called stupid than stay silent."</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </div> </td></tr> </table> <img src="https://javascriptweekly.com/open/728/rss" width="1" height="1" /></description> <pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate> <guid>https://javascriptweekly.com/issues/728</guid> </item> <item> <title>Can you understand this JavaScript?</title> <link>https://javascriptweekly.com/issues/727</link> <description> <table border=0 cellpadding=0 cellspacing=0 align="center" border="0"> <tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <div> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr> <td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p>#727 — March 14, 2025</p></td> <td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "><p><a href="https://javascriptweekly.com/link/166931/rss" style=" color: #3366aa;">Read on the Web</a></p></td> </tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 12px; padding-left: 12px;"><p>JavaScript Weekly</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/166884/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ssfidifg2hmcjrvpv92s.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166884/rss" title="www.hillelwayne.com" style=" color: #3366aa; font-size: 1.1em; line-height: 1.4em;">A Perplexing JavaScript Parsing Puzzle</a></span> — It looks deceptively simple – just 14 characters of JavaScript – but after working with JavaScript for 29 years, I got it wrong. A clue: it goes back to a browser-related quirk from <em>30</em> years ago..</p> <p>Hillel Wayne </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166885/rss" title="devblogs.microsoft.com" style=" color: #3366aa; font-size: 1.05em;">TypeScript's Compiler to Get 10x Faster</a></span> — TypeScript has shaken up the JavaScript ecosystem in recent years with an increasing number of developers relying on its strong typing and added structure. TypeScript’s compiler isn’t particularly fast, though, but the TypeScript team at Microsoft are changing that by porting it to Go!</p> <p>Anders Hejlsberg (Microsoft) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"><p>💡 Dr. Axel Rauschmayer <a href="https://javascriptweekly.com/link/166886/rss" style=" color: #3366aa; font-weight: 600;">takes a closer look at the details</a> behind the port.</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <a href="https://javascriptweekly.com/link/166883/rss" style=" color: #3366aa; "><img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1588b39c.png" width="195" height="102" style="padding-top: 12px; padding-left: 12px; line-height: 100%; "></a> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166883/rss" title="go.clerk.com" style=" color: #3366aa; font-size: 1.05em;">Build a Secure Project Management</a></span> — Learn a security-first approach to building web applications by building a secure project management platform with Next.js.</p> <p>Clerk <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>IN BRIEF:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/166887/rss" style=" color: #3366aa; font-weight: 500 !important; ">Node.js v20.19.0 (LTS)</a> is a notable release for a maintenance branch of Node as an exception has been made to the maintenance policy for backporting <code>require(esm)</code> support, which is now enabled by default.</p> </li> <li> <p>The latest version of Chrome (and preview versions of Firefox and Safari) support <a href="https://javascriptweekly.com/link/166888/rss" style=" color: #3366aa; font-weight: 500 !important; ">two new HTML attributes, <code>command</code> and <code>commandfor</code></a>, for adding declarative actions to HTML buttons without directly requiring JavaScript.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><strong>RELEASES:</strong></p> <ul> <li> <p><a href="https://javascriptweekly.com/link/166889/rss" style=" color: #3366aa; font-weight: 500 !important; ">Nuxt 3.16</a> – Popular Vue meta-framework. Now with a new <code>create-nuxt</code> tool for starting projects.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166890/rss" style=" color: #3366aa; font-weight: 500 !important; ">Bun 1.2.5</a> – Now with much better Node-API compatibility, CSRF generation and verification, plus numerous perf improvements and fixes.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166891/rss" style=" color: #3366aa; font-weight: 500 !important; ">Melange 5</a> – An OCaml-to-JavaScript compiler.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166892/rss" style=" color: #3366aa; font-weight: 500 !important; ">Astro 5.5</a>, <a href="https://javascriptweekly.com/link/166893/rss" style=" color: #3366aa; font-weight: 500 !important; ">Transformers.js 3.4</a>, <a href="https://javascriptweekly.com/link/166894/rss" style=" color: #3366aa; font-weight: 500 !important; ">Capacitor 7.1</a>, <a href="https://javascriptweekly.com/link/166895/rss" style=" color: #3366aa; font-weight: 500 !important; ">Nuxt UI v3</a></p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📒 Articles &amp; Tutorials</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166896/rss" title="nextjs.org" style=" color: #3366aa; font-size: 1.05em;">Building APIs with Next.js</a></span> — A detailed, official introduction to the concepts behind using Next.js’ App Router and route handlers to build public APIs you can expose to web, mobile, and third-party clients.</p> <p>Lee Robinson </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166897/rss" title="open.nytimes.com" style=" color: #3366aa; font-size: 1.05em;">How <em>The New York Times</em> Migrated from Enzyme to React Testing Library</a></span> — A thorough look at the technical challenges and strategies the NYT used to perform a piecemeal upgrade of its React testing approach without disrupting either end users or other developers.</p> <p>Felipe Buenaño (NYT Open Team) </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166898/rss" title="wallabyjs.com" style=" color: #3366aa; font-size: 1.05em;">Which AI Model Is Best for Fixing Unit Test Errors? Claude, o3-mini, GPT-4o?</a></span> — Better context wins every time. Wallaby enters the chat to give AI what it needs - test coverage and runtime values - to debug smarter.</p> <p>Wallaby Team <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166899/rss" title="boajs.dev" style=" color: #3366aa; font-size: 1.05em;">How ECMAScript Engines Optimize Your Variables</a></span> — From the authors of the <a href="https://javascriptweekly.com/link/166900/rss" style=" color: #3366aa; ">Boa JS</a> Rust-powered JavaScript engine.</p> <p>Boa Developers </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📄 <a href="https://javascriptweekly.com/link/166901/rss" style=" color: #3366aa; font-weight: 500 !important; ">Use Cases for the Document Picture-in-Picture API</a> – A way to open a floating, always-on-top window (‘picture-in-picture’) that can display arbitrary HTML content. Chrome only, though. <cite>Jad Joubran</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/166902/rss" style=" color: #3366aa; font-weight: 500 !important; ">Using <code>Intl.DurationFormat</code> to Format Time Durations with Locale Support</a> <cite>Trevor I. Lasn</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/166903/rss" style=" color: #3366aa; font-weight: 500 !important; ">Learn Zod So You Can Trust Your Data and Your Types</a> <cite>Diana MacDonald</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/166904/rss" style=" color: #3366aa; font-weight: 500 !important; ">10 Hidden Gems in Angular That You Should Use</a> <cite>IE 33</cite></p> <p>📄 <a href="https://javascriptweekly.com/link/166905/rss" style=" color: #3366aa; font-weight: 500 !important; ">Underrated Angular Features</a> <cite>Armen Vardanyan</cite></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>🛠 Code &amp; Tools</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166906/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">Refractor 5.0: Robust Virtual Syntax Highlighting using Prism</a></span> — Wraps the powerful <a href="https://javascriptweekly.com/link/166907/rss" style=" color: #3366aa; ">Prism</a> syntax highlighter to output objects instead of an HTML string so you can manipulate and render it as you wish (e.g. in a VDOM or at the terminal). <a href="https://javascriptweekly.com/link/166908/rss" style=" color: #3366aa; ">Lowlight</a>, by the same author, offers the same functionality but backed by <a href="https://javascriptweekly.com/link/166909/rss" style=" color: #3366aa; ">highlight.js.</a></p> <p>Titus Wormer </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166910/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">svg2pdf.js: SVG to PDF Conversion in the Browser</a></span> — There’s an <a href="https://javascriptweekly.com/link/166911/rss" style=" color: #3366aa; ">online playground</a> to give you a feel for what it can do.</p> <p>yWorks GmbH </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166912/rss" title="workos.com" style=" color: #3366aa; font-size: 1.05em;">🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time</a></span> — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.</p> <p>WorkOS <span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em; color: #993 !important; padding-top: 1px; padding-right: 4px; padding-left: 4px; ">sponsor</span></p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166913/rss" title="cmdk.paco.me" style=" color: #3366aa; font-size: 1.05em;">⌘K: A Fast, Composable, Unstyled 'Command Menu' Control</a></span> — The home page includes some neat examples in a variety of styles. <a href="https://javascriptweekly.com/link/166914/rss" style=" color: #3366aa; ">GitHub repo</a>. Needs React 18+.</p> <p>Paco Coursey </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><span>🔎</span> <a href="https://javascriptweekly.com/link/166915/rss" title="node-modules.dev" style=" color: #3366aa; font-size: 1.05em;">Node Modules Inspector</a></span> — A tool that runs pnpm <em>inside your browser</em>, “installs” a package, then analyzes its dependencies. This can be useful for analyzing packages you already use, but also for simplifying your own projects, as <a href="https://javascriptweekly.com/link/166916/rss" style=" color: #3366aa; ">11ty’s Zach Leatherman did here.</a></p> <p>Anthony Fu </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><span style="font-weight: 600; font-size: 1.1em; color: #000;"><a href="https://javascriptweekly.com/link/166917/rss" title="github.com" style=" color: #3366aa; font-size: 1.05em;">PGlite: Run Postgres in WebAssembly</a></span> — PGlite packages a WASM build of Postgres into a TypeScript library that can be run directly from Node.js (or Bun, Deno, and even the browser) and it’s only a few megabytes in size.</p> <p>ElectricSQL / Neon </p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <ul> <li> <p><a href="https://javascriptweekly.com/link/166918/rss" style=" color: #3366aa; font-weight: 500 !important; ">Gleam 1.9</a> – Type-safe functional programming language that targets both the Erlang VM and JavaScript runtime.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166919/rss" style=" color: #3366aa; font-weight: 500 !important; ">&lt;css-doodle&gt; 0.42</a> – Web component for drawing patterns with CSS.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166920/rss" style=" color: #3366aa; font-weight: 500 !important; ">Faker 9.6</a> – Generate fabricated data to your heart's content.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166921/rss" style=" color: #3366aa; font-weight: 500 !important; ">Choices 11.1</a> – Configurable select box/text input plugin.</p> </li> <li> <p>🕒 <a href="https://javascriptweekly.com/link/166922/rss" style=" color: #3366aa; font-weight: 500 !important; ">Spacetime 7.8</a> – Lightweight timezone library.</p> </li> <li> <p><a href="https://javascriptweekly.com/link/166923/rss" style=" color: #3366aa; font-weight: 500 !important; ">Ink 5.2</a> – Use React to build CLI apps.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 0px; padding-left: 0px;"> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>📰 Classifieds</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p><a href="https://javascriptweekly.com/link/166924/rss" style=" color: #3366aa; font-weight: 500 !important; ">Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort</a>. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.</p> <p>Current PDF setup slowing you down? <a href="https://javascriptweekly.com/link/166925/rss" style=" color: #3366aa; font-weight: 500 !important; ">Try Nutrient's PDF SDK</a> — it's used by IBM, SAP, DocuSign and countless others to open, edit, and customize with ease across platforms.</p> <p>👀 Give your eyes a break! <a href="https://javascriptweekly.com/link/166926/rss" style=" color: #3366aa; font-weight: 500 !important; ">MonoLisa</a> is a font optimized for developers. <a href="https://javascriptweekly.com/link/166926/rss" style=" color: #3366aa; font-weight: 500 !important; ">Try now</a>.</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0; padding-right: 0; padding-left: 0;"><p>📢 Elsewhere</p></td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <p>A quick roundup of some of other interesting updates or useful resources in the broader developer landscape:</p> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "> <a href="https://javascriptweekly.com/link/166927/rss" style=" color: #3366aa;"><img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/r4iv0h0uumlxzsw0hyu4.jpg" width="640" style=" line-height: 100%; "></a> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; padding-top: 0px; padding-right: 15px; padding-left: 15px;"> <ul> <li> <p>⭐ <a href="https://javascriptweekly.com/link/166927/rss" style=" color: #3366aa; font-weight: 500 !important; ">A fantastic introduction to latency in IO devices</a> <em>(above)</em> over on the <em>PlanetScale</em> blog, complete with <em>very</em> useful interactive diagrams built in JavaScript.</p> </li> <li> <p>The <em>Evil Martians</em> explain <a href="https://javascriptweekly.com/link/166928/rss" style=" color: #3366aa; font-weight: 500 !important; ">things you can consider to make your open source project more popular.</a></p> </li> <li> <p>🤖 Esteemed LLM-whisperer Simon Willison <a href="https://javascriptweekly.com/link/166929/rss" style=" color: #3366aa; font-weight: 500 !important; ">drops a ton of insights and tips</a> on how he uses LLMs to help him write code.</p> </li> </ul> </td></tr></table> <table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0><tr><td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "></td></tr></table> </div> </td></tr> </table> <img src="https://javascriptweekly.com/open/727/rss" width="1" height="1" /></description> <pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate> <guid>https://javascriptweekly.com/issues/727</guid> </item> </channel> </rss>