<?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 projects that shaped JavaScript in 2024</title>
      <link>https://javascriptweekly.com/issues/718</link>
      <description>

  

    
    
    
    
    
  




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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;🗓️ &lt;strong&gt;Friday is the new Thursday!&lt;/strong&gt; If you were a JavaScript Weekly reader several years ago, you might remember it always landed on Fridays and after getting caught out by a variety of big news items landing on Thursdays in recent years, we're back ;-)&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;⭐&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/164147/rss" title="risingstars.js.org" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;2024's JavaScript Rising Stars&lt;/a&gt;&lt;/span&gt; — It’s time to fully wave goodbye to 2024, but not before Michael Rambeau’s annual analysis of which JavaScript projects fared best on GitHub over the past year. Even if you dislike GitHub stars as a metric for anything, this remains a great way to get a feel for the JavaScript ecosystem and see what libraries and tools have mindshare in a variety of niches. A fantastic roundup as always.&lt;/p&gt;
  &lt;p&gt;Michael Rambeau &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164150/rss" title="2ality.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;A Look at Import Attributes&lt;/a&gt;&lt;/span&gt; — It’s always a pleasure to see Dr. Axel blogging about JavaScript again, and he’s back with one of his typical deep dives into a newer ECMAScript feature: &lt;a href="https://javascriptweekly.com/link/164151/rss" style=" color: #3366aa;   "&gt;import attributes.&lt;/a&gt; This feature provides an inline syntax for attaching metadata to module imports such as for importing non-JavaScript modules (e.g. JSON, WASM or CSS).&lt;/p&gt;
  &lt;p&gt;Dr. Axel Rauschmayer &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/164146/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/0bd0f748.png" width="103" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164146/rss" title="www.datadoghq.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;How to Enable End-to-End Testing with Synthetic Monitoring&lt;/a&gt;&lt;/span&gt; — Synthetic Monitoring helps you launch new features with confidence and speed. Learn how you can create robust end-to-end test suites, spend less time on false positives, and proactively catch errors before they get to production.&lt;/p&gt;
  &lt;p&gt;Datadog &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164148/rss" title="2ality.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Node’s New Built-in Support for TypeScript&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/164149/rss" style=" color: #3366aa;   "&gt;Node.js v23.6.0 (Current)&lt;/a&gt; has just been released and makes Node’s new type-stripping features work by default, so you can just run &lt;code&gt;node file.ts&lt;/code&gt; and it Should Just Work™. Dr. Axel explains how it works and what the limitations are.&lt;/p&gt;
  &lt;p&gt;Dr. Axel Rauschmayer &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🥊 The Deno vs Oracle fight over the JavaScript™ trademark continues as Oracle has informed Deno &lt;a href="https://javascriptweekly.com/link/164152/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;they're not going to voluntarily relinquish the mark.&lt;/a&gt; Deno's job now is to show how JavaScript has long been used as a generic term and hasn't been controlled by Oracle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The Express.js team has posted &lt;a href="https://javascriptweekly.com/link/164153/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;about the project's recent revival and its plans to push Express.js forward in 2025.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;❄️ The 'WinterCG' &lt;em&gt;Web Interoperable Runtimes Community Group&lt;/em&gt;, an effort to promote standards around runtime interoperability of JavaScript runtimes, &lt;a href="https://javascriptweekly.com/link/164154/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;has moved to Ecma International&lt;/a&gt; and is now known as &lt;a href="https://javascriptweekly.com/link/164155/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;WinterTC (TC55).&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📺 Node.js creator Ryan Dahl gave &lt;a href="https://javascriptweekly.com/link/164156/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a talk at &lt;em&gt;GOTO Chicago 2024&lt;/em&gt; about Deno 2&lt;/a&gt;, covering Deno's differences to Node and what &lt;a href="https://javascriptweekly.com/link/164157/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Deno 2.0&lt;/a&gt; (and JSR) has to offer JavaScript developers, complete with live demos.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164159/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;pnpm 10&lt;/a&gt; – The efficient &lt;code&gt;npm&lt;/code&gt; alternative no longer runs lifecycle scripts of dependencies for security reasons, hashing algorithms have been upgraded to SHA256, and lots of minor tweaks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164160/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Bun v1.1.43&lt;/a&gt; – The high-performance runtime gets first class S3 support, an HTML bundler, and can output V8 heap snapshots (which is quite something as Bun uses JavaScriptCore, not V8).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔠 &lt;a href="https://javascriptweekly.com/link/164161/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Tesseract.js 6.0&lt;/a&gt; – The popular pure JS multilingual OCR library has resolved a variety of memory leak issues.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164162/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Docusaurus 3.7&lt;/a&gt; – The popular docs-oriented site generator goes full React 19.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164163/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js v22.13.0 (LTS)&lt;/a&gt; – The &lt;a href="https://javascriptweekly.com/link/164164/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;permission model system&lt;/a&gt; is now stable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164165/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Puppeteer 24.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/164166/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;RxDB 16.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/164167/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Ember 6.1&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/164168/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;QuickJS 0.8&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📒 Articles &amp;amp; Tutorials&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164169/rss" title="htmx.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;The Future of htmx&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/164170/rss" style=" color: #3366aa;   "&gt;htmx&lt;/a&gt; is an increasingly popular way to enhance HTML and actually write &lt;em&gt;less&lt;/em&gt; JavaScript on the frontend. This post reflects on how htmx would like to be ‘the new jQuery’, not least in the sense that one of the project’s goals is to push the ideas of htmx into the HTML standard itself, as in &lt;a href="https://javascriptweekly.com/link/164171/rss" style=" color: #3366aa;   "&gt;this set of proposals.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Gross and Petros &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164172/rss" title="www.comfydeploy.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;You Don't &lt;em&gt;Need&lt;/em&gt; Next.js&lt;/a&gt;&lt;/span&gt; — As much as Next.js is considered the React meta-framework of choice, if your requirements are modest, simply going with plain React offers numerous benefits in terms of simplicity and speed, as seen here.&lt;/p&gt;
  &lt;p&gt;Benny Kok &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164173/rss" title="go.clerk.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Introducing Clerk SDKs for Vue and Nuxt&lt;/a&gt;&lt;/span&gt; — Official &lt;code&gt;@clerk/vue&lt;/code&gt; &amp;amp; &lt;code&gt;@clerk/nuxt&lt;/code&gt; SDKs for authentication integration with pre-built UI components in Vue/Nuxt apps.&lt;/p&gt;
  &lt;p&gt;Clerk &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164174/rss" title="frontendmasters.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Using TypeScript Without Build Tools&lt;/a&gt;&lt;/span&gt; — Chris Coyier enjoys the benefits of TypeScript while developing, but actually compiling it to JavaScript in various scenarios is less endearing. We’ve learnt (above) that Node can now run &lt;code&gt;.ts&lt;/code&gt; files directly, but what other projects support the use of TypeScript without build tools?&lt;/p&gt;
  &lt;p&gt;Chris Coyier &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164175/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Using a JavaScript Component Inside a Haskell App&lt;/a&gt; – Did you know Haskell’s main compiler supports integrating with JavaScript? &lt;cite&gt;Mateusz Goślinowski&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164176/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Crafting a Dreamy Particle Effect with Three.js and GPGPU&lt;/a&gt;  &lt;cite&gt;Dominik Fojcik&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164177/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Build Your Own Site Speed Testing Tool with Puppeteer&lt;/a&gt;  &lt;cite&gt;Henry Price&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164178/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Sharing a Variable Across HTML, CSS, and JavaScript&lt;/a&gt;  &lt;cite&gt;Chris Coyier&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164179/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Benchmarking GraphQL Solutions in the JS/TS Landscape&lt;/a&gt;  &lt;cite&gt;Tomasz Nieżurawski&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/164180/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Shallow Clones vs Structured Clones&lt;/a&gt;  &lt;cite&gt;Phil Nash&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/164181/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zvkfoikzntewlsdjzeju.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164181/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;PostalMime: A Universal Email Parsing Library&lt;/a&gt;&lt;/span&gt; — An email parsing library happy in most JS runtimes. Takes the raw source of emails and parses them into their constituent parts.&lt;/p&gt;
  &lt;p&gt;Postal Systems &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164182/rss" title="christianheilmann.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;&lt;code&gt;trimMiddle()&lt;/code&gt;: The Missing String Trim Method?&lt;/a&gt;&lt;/span&gt; — If you’ve got a long string and want to keep the start and end and truncate in the middle, this is for you. There’s &lt;a href="https://javascriptweekly.com/link/164183/rss" style=" color: #3366aa;   "&gt;a live demo here&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/164184/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Christian Heilmann &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164185/rss" title="" style=" color: #3366aa;    font-size: 1.05em;"&gt;Fully Customizable Form Builder that Blends Seamlessly with Your JS App&lt;/a&gt;&lt;/span&gt; — Need a survey solution you control? With SurveyJS, customize your form builder’s look and functionality. &lt;a href="https://javascriptweekly.com/link/164186/rss" style=" color: #3366aa;   "&gt;Try it for free&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;SurveyJS &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164187/rss" title="smoores.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Introducing &lt;code&gt;@smoores/epub&lt;/code&gt;: A Package for Working with EPUB Files&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/164188/rss" style=" color: #3366aa;   "&gt;EPUB&lt;/a&gt; is a popular e-book file format and this new library provides a way to both read and write them. &lt;a href="https://javascriptweekly.com/link/164189/rss" style=" color: #3366aa;   "&gt;npm package link.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Shane Friedman &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164190/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Tipex: An Advanced Rich Text Editor for Svelte&lt;/a&gt;&lt;/span&gt; — Based on the popular &lt;a href="https://javascriptweekly.com/link/164191/rss" style=" color: #3366aa;   "&gt;Tiptap&lt;/a&gt; editor framework, it’s customizable, has theming support, and is Svelte 5-ready. &lt;a href="https://javascriptweekly.com/link/164192/rss" style=" color: #3366aa;   "&gt;Here’s a live example&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Friend of Svelte &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164193/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;React-Toastify 11: In-Page Notifications Made Easy&lt;/a&gt;&lt;/span&gt; — There’s an elaborate &lt;a href="https://javascriptweekly.com/link/164194/rss" style=" color: #3366aa;   "&gt;demo page here&lt;/a&gt; but essentially it’s a flexible, easy to style ‘toast’ style notifications system with many years under its belt. &lt;a href="https://javascriptweekly.com/link/164195/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Fadi Khadra &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164196/rss" title="electrobun.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Electrobun: A New JS Cross-Platform Desktop App Toolkit&lt;/a&gt;&lt;/span&gt; — A fresh take on the concept covered by &lt;a href="https://javascriptweekly.com/link/164197/rss" style=" color: #3366aa;   "&gt;Electron&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/164198/rss" style=" color: #3366aa;   "&gt;Neutralinojs&lt;/a&gt;, except based around &lt;a href="https://javascriptweekly.com/link/164199/rss" style=" color: #3366aa;   "&gt;Bun.&lt;/a&gt; It’s &lt;em&gt;early days&lt;/em&gt;, though, with only ARM-based Macs supported for now.&lt;/p&gt;
  &lt;p&gt;Blackboard Technologies inc. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/164200/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qanmzcdmxiqzfzsnk6ha.jpg" width="640" style="        line-height: 100%;     "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/164200/rss" title="yaireo.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Tagify 4.33: An Elegant Input Component for Tags&lt;/a&gt;&lt;/span&gt; — The polished demos show a lot of effort has been put in here. &lt;a href="https://javascriptweekly.com/link/164201/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Yair Even-Or &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/164202/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Recharts v2.15.0&lt;/a&gt; – D3-powered React chart library now with React 19 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164203/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Discordeno 21.0&lt;/a&gt; – Discord API library for Node, Deno and Bun.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164204/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;htmlparser2 10.0&lt;/a&gt; – Fast and forgiving HTML and XML parser.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164205/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Ts.ED 8.4&lt;/a&gt; – Node + TypeScript framework on top of Express.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/164206/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ApexCharts 4.3&lt;/a&gt; – Popular JS charting library. (&lt;a href="https://javascriptweekly.com/link/164207/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Demos.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164208/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;zx 8.3&lt;/a&gt; – Google's tool for better Node.js shell scripting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164209/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Octokit.js 4.1&lt;/a&gt; – 'Batteries-included' GitHub SDK.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/164210/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort&lt;/a&gt;. Relied on by Lattice, Bilt Rewards, etc.&lt;/p&gt;
 
&lt;p&gt;🔹Sell to enterprise with a few lines of code with &lt;a href="https://javascriptweekly.com/link/164211/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;WorkOS — the modern, flexible identity platform for B2B SaaS.&lt;/a&gt; Integrate SSO, SCIM and FGA in minutes, not months.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🎁 And one for fun?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/164212/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/bkfgxrevi2mxvvlgei4d.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📄&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/164212/rss" title="th0mas.nl" style=" color: #3366aa;    font-size: 1.05em;"&gt;Play Tetris in a PDF File&lt;/a&gt;&lt;/span&gt; — (direct link to PDF)&lt;/p&gt;
  
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;I'll let you decide if this one is fun or frightening! Whether or not this will work depends on your PDF reader or browser support, but it works with Chrome and Firefox, at least.&lt;/p&gt;
&lt;p&gt;The PDF document format supports embedded JavaScript and this experiment uses it to implement a game of Tetris. The developer, Thomas Rinsma, has &lt;a href="https://javascriptweekly.com/link/164213/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;used Python to output the PostScript that includes the game's JavaScript.&lt;/a&gt; Couple that with the fact many browser PDF renderers are &lt;em&gt;themselves&lt;/em&gt; implemented in JavaScript (e.g. &lt;a href="https://javascriptweekly.com/link/164214/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;PDF.js&lt;/a&gt;) and you have a veritable Matryoshka doll of technologies at play here.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/718/rss" width="1" height="1" /&gt;</description>
      <pubDate>Fri, 10 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/718</guid>
    </item>
    <item>
      <title>A 2024 JavaScript retrospective</title>
      <link>https://javascriptweekly.com/issues/717</link>
      <description>

  

    
    
    
    
    
  




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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;🎄 We've made it to the end of 2024! In this issue, we're being reflective, leading with a few news items but then looking at what made 2024 special in the world of JavaScript, and covering some of the biggest things we linked to this year.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Then we're on a Christmas break for two weeks and will be back in your inbox on Friday, January 10, 2025,&lt;/strong&gt; — yes, we're moving back to Fridays for 2025! We hope you have a Merry Christmas and a Happy New Year.&lt;br&gt;__&lt;br&gt;&lt;em&gt;Peter Cooper and the Cooperpress team&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163771/rss" title="2024.stateofjs.com" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;The &lt;em&gt;State of JavaScript 2024&lt;/em&gt; Results&lt;/a&gt;&lt;/span&gt; — We recently encouraged you to take the annual &lt;em&gt;State of JavaScript&lt;/em&gt; survey; the results are now out. 14,015 folks took part and we get to see &lt;a href="https://javascriptweekly.com/link/163772/rss" style=" color: #3366aa;   "&gt;what language features folks are using&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163773/rss" style=" color: #3366aa;   "&gt;experiences with popular libraries&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163774/rss" style=" color: #3366aa;   "&gt;build tool popularity&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163775/rss" style=" color: #3366aa;   "&gt;AI preferences&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163776/rss" style=" color: #3366aa;   "&gt;popular podcasts&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163777/rss" style=" color: #3366aa;   "&gt;runtime usage&lt;/a&gt;, and perhaps controversially, &lt;a href="https://javascriptweekly.com/link/163778/rss" style=" color: #3366aa;   "&gt;how more JavaScript developers are using TypeScript than not.&lt;/a&gt; There’s a lot to dig through here.&lt;/p&gt;
  &lt;p&gt;Sacha Greif &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/163770/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/52281674.png" width="130" height="130" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163770/rss" title="frontendmasters.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Complete Intro to React v9: New Project, Modern Stack&lt;/a&gt;&lt;/span&gt; — Join Brian Holt in building a pizza delivery app from scratch. Master hooks, TanStack Router, testing, and React 19 features in this comprehensive guide to modern React development. No prior React experience needed.&lt;/p&gt;
  &lt;p&gt;Frontend Masters &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🥇 JetBrains' recent &lt;em&gt;State of Developer Ecosystem&lt;/em&gt; report shows that &lt;a href="https://javascriptweekly.com/link/163779/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;JavaScript is "the most used programming language"&lt;/a&gt;, reports &lt;em&gt;InfoWorld&lt;/em&gt;'s Paul Krill. The report also claims &lt;em&gt;"despite its gains, TypeScript will not replace JavaScript"&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🗓️ We've just finished 2024 wrap ups in the &lt;a href="https://javascriptweekly.com/link/163780/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;latest issue of Node Weekly&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/163781/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Status&lt;/a&gt;, if you want more depth into those topics.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 GitHub has made &lt;a href="https://javascriptweekly.com/link/163782/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;its Copilot AI assistant available for free&lt;/a&gt; (with limits). We also learn that there are now 150 million developers on GitHub.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🇵🇱 If you're in Poland, consider heading along to &lt;a href="https://javascriptweekly.com/link/163783/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the next WarsawJS meetup on January 8.&lt;/a&gt; Esteemed Polish computer scientist Andrzej Blikle will be speaking, amongst others.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 Vercel is running a &lt;a href="https://javascriptweekly.com/link/163784/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;State of AI developer survey&lt;/a&gt; they'd like you to take.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163786/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;JerryScript 3.0&lt;/a&gt; – 'Ultra  lightweight' JS engine for IoT/embedded use cases with full ES 5.1 compliance and 84% Test262 conformance.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 &lt;a href="https://javascriptweekly.com/link/163787/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Transformers.js v3.2&lt;/a&gt; – Run machine learning models in the browser. Now supporting Moonshine real-time speech recognition and Phi 3.5 Vision.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163788/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Bun 1.1.39&lt;/a&gt; and &lt;a href="https://javascriptweekly.com/link/163789/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;1.1.40&lt;/a&gt; – The fast JS runtime gets &lt;a href="https://javascriptweekly.com/link/163785/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a human-readble lockfile format,&lt;/a&gt; &lt;code&gt;fetch&lt;/code&gt; bodies can now be streams, and Node compatibility improves.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163790/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Prisma 6.1&lt;/a&gt; – Popular ORM for Node.js and TypeScript. Tracing is now GA.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163791/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;pnpm 10.0 RC 0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163792/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ESLint v9.17.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163793/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Recharts 2.15&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163795/rss" title="go.clerk.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Introducing Authentication Support for React Router&lt;/a&gt;&lt;/span&gt; — Add authentication and authorization to your React Router application in minutes with pre-built components and more.&lt;/p&gt;
  &lt;p&gt;Clerk &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163797/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Introducing &lt;em&gt;TanStack Start&lt;/em&gt;&lt;/a&gt; – A new full-stack React framework powered by TanStack Router. &lt;cite&gt;Adam Rackis&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163798/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;How to Create Multi-Step Forms with Vanilla JS and CSS&lt;/a&gt;  &lt;cite&gt;Fatuma Abdullaho&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163800/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Summarizing Text with Transformers.js&lt;/a&gt;  &lt;cite&gt;Raymond Camden&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🗓️ What Happened to JavaScript in 2024&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;The JavaScript world has had a busy 2024, as you'd expect for &lt;a href="https://javascriptweekly.com/link/163779/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the world's most used programming language&lt;/a&gt; (despite the threat of &lt;a href="https://javascriptweekly.com/link/163801/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;being split into two&lt;/a&gt;). We looked back over the year and remembered some things that occurred:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;In February, the React team posted &lt;a href="https://javascriptweekly.com/link/163802/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a mega 'React Labs' update&lt;/a&gt; which framed the whole of React's year, explaining the goals of the React Compiler and the eventual React 19 release (which &lt;a href="https://javascriptweekly.com/link/163803/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;went stable&lt;/a&gt; this month).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Alternative JavaScript runtimes had a great 2024, particularly Bun which introduced &lt;a href="https://javascriptweekly.com/link/163804/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Bun Shell&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163805/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Windows support&lt;/a&gt; and the ability to &lt;a href="https://javascriptweekly.com/link/163807/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;compile and run native C from JavaScript.&lt;/a&gt; Deno had a big year too, with &lt;a href="https://javascriptweekly.com/link/163808/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the release of Deno 2&lt;/a&gt; which included stronger Node.js/npm compatibility and package management tooling. Other systems continuing to progress this year include &lt;a href="https://javascriptweekly.com/link/163809/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Boa JS&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163810/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;QuickJS&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/163811/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Porffor&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Over at TC39, &lt;a href="https://javascriptweekly.com/link/163812/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;lots of language proposals were advanced&lt;/a&gt; this year (and that's just a sample – &lt;a href="https://javascriptweekly.com/link/163813/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;here's some more!&lt;/a&gt;). The ES2025 future is bright.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163815/rss" title="fnf.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Boost Semantic Search with MongoDB Atlas Vector Search&lt;/a&gt;&lt;/span&gt; — Create embeddings, index them, and run semantic queries—just follow the quick start tutorial.&lt;/p&gt;
  &lt;p&gt;MongoDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Deno decided to take the JavaScript trademark fight to Oracle and &lt;a href="https://javascriptweekly.com/link/163816/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;formally filed a petition with the USPTO to cancel it.&lt;/a&gt; We hope to see some developments here in 2025, but Oracle are prepared to defend it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not content to merely work on an edge platform, JS runtime, and fight Oracle, Deno also &lt;a href="https://javascriptweekly.com/link/163817/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;unveiled JSR&lt;/a&gt;, a fresh attempt at providing a registry for JavaScript packages.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There were lots of big releases generally for major JavaScript projects including &lt;a href="https://javascriptweekly.com/link/163819/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Svelte v5&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163820/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js v23.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163821/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Astro 5.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163822/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TypeScript 5.7&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163823/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Vite 6.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163824/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Native 0.76&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163825/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Next.js 15&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163826/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Router v7&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163827/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Rspack 1.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163828/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Vue.js 3.5&lt;/a&gt;, and &lt;a href="https://javascriptweekly.com/link/163829/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Angular 19&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The OG of JavaScript libraries &lt;a href="https://javascriptweekly.com/link/163830/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;jQuery 4.0 went into beta&lt;/a&gt; too! We keep our fingers crossed for a jQuery 4.0 final release in 2025.. ;-)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🥇 Our Top Items of 2024&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;Next up is a walk through the top items we included in 2024, ordered by level of reader engagement. No editorial judgments here – these are the things you cared about most:&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/163831/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/cybf82tlhtuvrkkvw5xp.jpg" width="640" style="    line-height: 100%;     "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;1.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163831/rss" title="frontendmasters.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;&lt;code&gt;console.delight&lt;/code&gt;&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;By far&lt;/em&gt; our most popular link of the year with over 20,000 clicks(!) – but who doesn't use and love &lt;code&gt;console.log&lt;/code&gt;? This post showed us how in the browser console it's not merely for printing plain text, but can be used to render things like SVGs and HTML.&lt;/p&gt;
  &lt;p&gt;Zach Saucier &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;2.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163832/rss" title="www.lydiahallie.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;JavaScript Visualized: Promise Execution&lt;/a&gt;&lt;/span&gt; — A well-diagrammed article coupled with an (optional) 8 minute video that went into how promises work under the hood. Hugely popular as most of Lydia's content tends to be.&lt;/p&gt;
  &lt;p&gt;Lydia Hallie &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163833/rss" title="workos.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;WorkOS: Sell to Enterprises with a Few Lines of Code&lt;/a&gt;&lt;/span&gt; — The modern identity platform for B2B SaaS, offering flexible, easy-to-use APIs to integrate SSO, SCIM, and FGA in minutes instead of months.&lt;/p&gt;
  &lt;p&gt;WorkOS &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;div style="   margin-top: 14px; margin-bottom: 8px;  "&gt;&lt;/div&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;3.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163835/rss" title="htmx.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Is htmx Just Another JavaScript Framework?&lt;/a&gt;&lt;/span&gt; — Despite being five years old, &lt;a href="https://javascriptweekly.com/link/163836/rss" style=" color: #3366aa;   "&gt;htmx&lt;/a&gt; has seen a surge in popularity in 2023 and 2024, partly due to framework fatigue, but also as its simple HTML-oriented approach to adding functionality to pages appeals to a diverse group of developers. &lt;a href="https://javascriptweekly.com/link/163837/rss" style=" color: #3366aa;   "&gt;v2.0&lt;/a&gt; landed in June.&lt;/p&gt;
  &lt;p&gt;Alexander Petros &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;4.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163838/rss" title="2ality.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Ecma International Approves ECMAScript 2024: What’s New?&lt;/a&gt;&lt;/span&gt; — In June, the Ecma General Assembly approved the latest ECMAScript / JavaScript spec, officially making it a standard. As with ES2023, it was a reasonably small step forward, but Dr. Axel rounded up what was new.&lt;/p&gt;
  &lt;p&gt;Dr. Axel Rauschmayer &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;5.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163839/rss" title="www.trevorlasn.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;JavaScript's &lt;code&gt;??=&lt;/code&gt; Operator: Default Values Made Simple&lt;/a&gt;&lt;/span&gt; — The &lt;code&gt;??=&lt;/code&gt; nullish coalescing assignment operator snuck into JavaScript a few years ago via ES2021 and has been &lt;a href="https://javascriptweekly.com/link/163840/rss" style=" color: #3366aa;   "&gt;broadly supported&lt;/a&gt; almost everywhere for ages. Trevor showed off how it can tighten up your assignments.&lt;/p&gt;
  &lt;p&gt;Trevor I. Lasn &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;6.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163841/rss" title="eloquentjavascript.net" style=" color: #3366aa;    font-size: 1.05em;"&gt;Eloquent JavaScript: The Fourth Edition&lt;/a&gt;&lt;/span&gt; — Coming several years after the third edition, the latest version of what is, perhaps, the best ‘all rounder’ book for learning JavaScript arrived in March &lt;em&gt;“adjusted to the realities of 2024 and generally touched up.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Marijn Haverbeke &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;7.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163842/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;33 JavaScript Concepts Every Developer Should Know&lt;/a&gt;&lt;/span&gt; — A curated collection of links to tutorials on 33 different areas it’s worth understanding well, including types, closures, equality, scope, and different engines.&lt;/p&gt;
  &lt;p&gt;Leonardo Maldonado &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;8.&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163843/rss" title="vercel.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;How Google Handles JavaScript In Its Indexing Process&lt;/a&gt;&lt;/span&gt; — At one point if you wanted Google to index your content it needed to be directly written in HTML and &lt;em&gt;not&lt;/em&gt; dynamically rendered with JavaScript. Things have since changed, of course, but by how much?&lt;/p&gt;
  &lt;p&gt;Zecchini, Moore, Siddle, Ubl (Vercel) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163844/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous automatically creates &amp;amp; maintains E2E UI tests&lt;/a&gt;. Zero flakes. Used by Lattice, Bilt Rewards and others.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163845/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Hookdeck&lt;/a&gt;: An alternative to Amazon API Gateway + Lambda + SQS. With local dev, debugging, and observability built-in.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🤗 Many thanks for reading &lt;em&gt;JavaScript Weekly&lt;/em&gt; in 2024, sending in your links, and generally supporting us. We look forward to seeing you again early next year. Remember, we're moving back to Fridays (long term subscribers may remember we used to go out on Fridays for the first several years) so we'll be back on Friday, January 10.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/717/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/717</guid>
    </item>
    <item>
      <title>Benchmarking Node's recent performance enhancements</title>
      <link>https://javascriptweekly.com/issues/716</link>
      <description>

  

    
    
    
    
    
  




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

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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163446/rss" title="boajs.dev" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Boa v0.20: An Alternative JavaScript Compiler&lt;/a&gt;&lt;/span&gt; — Under development for several years, Boa has a few missions: be a Rust ECMAScript implementation, be easy to embed in Rust projects, and be a fast, safe JS engine overall. v0.20 sees a bump up to 89.92% compliance in the &lt;a href="https://javascriptweekly.com/link/163447/rss" style=" color: #3366aa;   "&gt;Test262 suite&lt;/a&gt;, improves Temporal support, adds &lt;code&gt;Atomics.pause&lt;/code&gt;, and more. This is no toy engine.&lt;/p&gt;
  &lt;p&gt;Boa Developers &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163487/rss" title="react.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;React v19 Now Stable&lt;/a&gt;&lt;/span&gt; — First teased in &lt;a href="https://javascriptweekly.com/link/163488/rss" style=" color: #3366aa;   "&gt;a February 2024 update&lt;/a&gt;, React 19 has been in beta for 8 months, so there’s already a wealth of content about it, from the &lt;a href="https://javascriptweekly.com/link/163489/rss" style=" color: #3366aa;   "&gt;React 19 upgrade guide&lt;/a&gt; or an &lt;a href="https://javascriptweekly.com/link/163490/rss" style=" color: #3366aa;   "&gt;explanation of its compiler&lt;/a&gt; to &lt;a href="https://javascriptweekly.com/link/163491/rss" style=" color: #3366aa;   "&gt;cheat sheets&lt;/a&gt; and Vercel’s roundup of &lt;a href="https://javascriptweekly.com/link/163492/rss" style=" color: #3366aa;   "&gt;what’s new in React 19.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;The React Team &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/163445/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/44873aa8.png" width="160" height="87" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163445/rss" title="shortclick.link" style=" color: #3366aa;    font-size: 1.05em;"&gt;Build with Gemini at Lightning Speeds&lt;/a&gt;&lt;/span&gt; — With the largest context window available, Google Gemini provides JavaScript developers multimodal processing of images, videos and text. Start using Google Gemini in minutes using AI Studio.&lt;/p&gt;
  &lt;p&gt;Google Gemini &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🎮 If you ever do any game development with JavaScript, it's time to take &lt;a href="https://javascriptweekly.com/link/163448/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the Gamedev.JS Survey 2024.&lt;/a&gt; If you &lt;em&gt;don't&lt;/em&gt;, you can head to &lt;a href="https://javascriptweekly.com/link/163449/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;JS13KGames&lt;/a&gt; and enjoy other people's creative efforts instead :-)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apple has released &lt;a href="https://javascriptweekly.com/link/163450/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Safari 18.2&lt;/a&gt; which &lt;a href="https://javascriptweekly.com/link/163451/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;introduces a few enhancements to JavaScript support&lt;/a&gt; including &lt;code&gt;Float16Array&lt;/code&gt;, more methods for &lt;code&gt;Uint8Array&lt;/code&gt;, &lt;code&gt;Promise.try&lt;/code&gt;, &lt;code&gt;RegExp.escape&lt;/code&gt;, and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Did you know &lt;a href="https://javascriptweekly.com/link/163452/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Douglas Crockford is Not Your Dad?&lt;/a&gt; Well, at least when it comes to putting comments in JSON..&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163502/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;VS Code November Release&lt;/a&gt; – Now when you copy and paste JS/TS code, VS Code can add imports for the pasted code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163454/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Next.js 15.1&lt;/a&gt; – The popular React framework gets full React 19 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163455/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node v23.4.0 (Current)&lt;/a&gt; – Say hello to &lt;code&gt;assert.partialDeepStrictEqual&lt;/code&gt; and &lt;code&gt;--trace-env&lt;/code&gt; for tracing environment variable usage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163493/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Sheriff v25&lt;/a&gt; - Opinionated TypeScript-first ESLint configuration. Now supporting ESLint v9.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163456/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Undici 7.1&lt;/a&gt; – HTTP/2 support now marked as stable in the Node.js HTTP library.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163457/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;pnpm 9.15&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163494/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Dependency Cruiser 16.8&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163495/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Redux Toolkit 2.5&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163496/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;YouTube.js 12.2&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📒 Articles &amp;amp; Tutorials&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/163497/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/r6dljfg4exf3gotybkgc.jpg" width="640" style="      line-height: 100%;     "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163497/rss" title="nodesource.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;The State of Node.js Performance in 2024&lt;/a&gt;&lt;/span&gt; — A thorough set of benchmarks covering recent performance advancements made in Node.js. The improvements between Node 18 and 20 up to version 22 might surprise you - it’s clear the team has put a lot of work into this area.&lt;/p&gt;
  &lt;p&gt;Gonzaga and Parody (NodeSource) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163458/rss" title="blog.sentry.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;How to Reduce TTFB?&lt;/a&gt;&lt;/span&gt; — High "time to first byte" affects web vitals. Learn to identify and fix issues slowing your TTFB.&lt;/p&gt;
  &lt;p&gt;Sentry &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163504/rss" title="til.simonwillison.net" style=" color: #3366aa;    font-size: 1.05em;"&gt;Publishing a Simple Client-Side JS Package to npm with GitHub Actions&lt;/a&gt;&lt;/span&gt; — As part of the process of building &lt;a href="https://javascriptweekly.com/link/163505/rss" style=" color: #3366aa;   "&gt;Prompts.js&lt;/a&gt;, a new library for creating simple &lt;code&gt;await&lt;/code&gt;-able alternatives to &lt;code&gt;alert()&lt;/code&gt;, &lt;code&gt;confirm()&lt;/code&gt; and &lt;code&gt;prompt()&lt;/code&gt;, Simon wanted to make it easy to publish as an npm package too.&lt;/p&gt;
  &lt;p&gt;Simon Willison &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163506/rss" title="deno.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;How to Build a SolidJS App with Deno&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/163507/rss" style=" color: #3366aa;   "&gt;SolidJS&lt;/a&gt; is a declarative library for creating user interfaces that emphasizes fine-grained reactivity and minimal overhead and it plays well with Deno.&lt;/p&gt;
  &lt;p&gt;Andy Jiang &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163459/rss" title="shortclick.link" style=" color: #3366aa;    font-size: 1.05em;"&gt;Get Cooking! Generative AI with MongoDB&lt;/a&gt;&lt;/span&gt; — See how MongoDB, the world’s most popular document database, integrates with RAG pipelines and cutting-edge AI agents.&lt;/p&gt;
  &lt;p&gt;MongoDB &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163460/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Building Your Own &lt;code&gt;npm create&lt;/code&gt; Package&lt;/a&gt; – You'll have seen (or used) various scaffolding tools using this technique. &lt;cite&gt;(A Different) Alex Chan&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163498/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;What We Learned Migrating From Webpack to Vite&lt;/a&gt;  &lt;cite&gt;Roman Zaynetdinov&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163499/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Understanding the Browser's &lt;em&gt;Main Thread&lt;/em&gt;&lt;/a&gt;  &lt;cite&gt;Amrik Malhans&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/163461/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;An Honest Review of TanStack Start vs Next.js&lt;/a&gt;  &lt;cite&gt;Ankita Kulkarni&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163462/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;How React Compiler Performs on Real Code&lt;/a&gt; &lt;cite&gt;Nadia Makarevich&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/163463/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/lm4btn6txidtflwyoixl.jpg" width="640" style="        line-height: 100%;     "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163463/rss" title="termo.rajnandan.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Termo: An Easy to Use Terminal Control for Websites&lt;/a&gt;&lt;/span&gt; — If you want to offer a terminal emulator style feature on your site (maybe for advanced users, to enhance your docs, or even just as an easter egg), Termo enhances &lt;a href="https://javascriptweekly.com/link/163464/rss" style=" color: #3366aa;   "&gt;Xterm.js&lt;/a&gt; and presents a slick experience.&lt;/p&gt;
  &lt;p&gt;Raj Nandan Sharma &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🖼️&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163469/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;wasm-vips: &lt;code&gt;libvips&lt;/code&gt; Image Processing via WebAssembly&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/163470/rss" style=" color: #3366aa;   "&gt;libvips&lt;/a&gt; is an efficient image processing library written in C. This build offers an isomorphic route to using it in the browser, as well as Node and Deno, all thanks to WebAssembly. (There's &lt;a href="https://javascriptweekly.com/link/163471/rss" style=" color: #3366aa;   "&gt;an interactive demo here.&lt;/a&gt;)&lt;/p&gt;
  &lt;p&gt;Kleis Auke Wolthuizen &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163467/rss" title="surveyjs.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Looking for a DIY Survey Solution? SurveyJS Has You Covered&lt;/a&gt;&lt;/span&gt; — Build, customize, and store surveys with ease. Total data control, JSON-driven, no backend restrictions—integrates into any JavaScript app.&lt;/p&gt;
  &lt;p&gt;SurveyJS &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163465/rss" title="civet.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Civet 0.9: Code More with Less Using a TypeScript Superset&lt;/a&gt;&lt;/span&gt; — Two years old and well maintained, Civet offers an interesting approach. Think JavaScript but with Python style indentation, chained comparisons, built-in JSX, &amp;amp; more. &lt;a href="https://javascriptweekly.com/link/163466/rss" style=" color: #3366aa;   "&gt;This example alone&lt;/a&gt; shows off the potential for tighter, easier-to-write code.&lt;/p&gt;
  &lt;p&gt;Daniel X Moore and Contributors &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163472/rss" title="alexsergey.github.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Rockpack 5.0: An Alternative React App Starter&lt;/a&gt;&lt;/span&gt; — A &lt;em&gt;Create React App&lt;/em&gt;-style tool aiming to get React project setup time as low as possible, complete with server side rendering support, bundling, linting and testing. &lt;a href="https://javascriptweekly.com/link/163473/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Alex Sergey &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163468/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;jsesc: Get a Stringified, ASCII-Safe Representation of Any Data&lt;/a&gt;&lt;/span&gt; — Think &lt;code&gt;JSON.stringify()&lt;/code&gt; but instead it returns JavaScript meaning it can support things like maps, sets, and &lt;code&gt;BigInt&lt;/code&gt;s.&lt;/p&gt;
  &lt;p&gt;Mathias Bynens &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/163474/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/kbn4jwuyqy5fipqtmegf.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/163474/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Perspective 3.2&lt;/a&gt; &lt;em&gt;(above)&lt;/em&gt; – Data visualization and analytics component. The core is written in C++ and compiled to WebAssembly where it can &lt;a href="https://javascriptweekly.com/link/163500/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;be used from JavaScript&lt;/a&gt;. Their &lt;a href="https://javascriptweekly.com/link/163474/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;homepage&lt;/a&gt; shows it off well with a live example. Now supports newline delimited JSON (ndjson).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;☎︎ &lt;a href="https://javascriptweekly.com/link/163476/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;International Telephone Input 25.2&lt;/a&gt; – Component for entering and validating international phone numbers. Vue, React, and vanilla.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163477/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;debug 4.4&lt;/a&gt; – Tiny debugging utility modelled after Node.js core's debugging approach (but for the browser too).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163478/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ExpressoTS 3.0&lt;/a&gt; – TypeScript framework for server-side Node.js apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163479/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;InversifyJS 6.2&lt;/a&gt; – Inversion of control container for JavaScript.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;📊 &lt;a href="https://javascriptweekly.com/link/163480/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ApexCharts 4.2&lt;/a&gt; – Popular JS charting library. (&lt;a href="https://javascriptweekly.com/link/163481/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Demos.&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163482/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Vue3-Carousel 0.9&lt;/a&gt; – Customizable, lightweight Vue 3 carousel component.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163483/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;html-react-parser 5.2&lt;/a&gt; – Isomorphic HTML to React parser.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163484/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;AlaSQL.js 4.6&lt;/a&gt; – Isomorphic JavaScript SQL database.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163485/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous automatically creates &amp;amp; maintains E2E UI tests&lt;/a&gt;. Zero flakes. Used by Lattice, Bilt Rewards and others.&lt;/p&gt;
 
&lt;p&gt;If your work leans more towards the &lt;em&gt;frontend&lt;/em&gt;, be sure to check out &lt;a href="https://javascriptweekly.com/link/163486/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;the latest issue of &lt;em&gt;Frontend Focus&lt;/em&gt;&lt;/a&gt;, our sister newsletter focused on all things browser-side.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/716/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/716</guid>
    </item>
    <item>
      <title>Oracle engages its lawyers and JavaScript turns 29</title>
      <link>https://javascriptweekly.com/issues/715</link>
      <description>

  

    
    
    
    
    
  




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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;🗓️ If you missed last week's issue, don't worry, it didn't exist – we took a week off for Thanksgiving! We're now back all the way through to the Christmas break :-)&lt;br&gt;__&lt;br&gt;&lt;em&gt;Your editor, Peter Cooper&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

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

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163111/rss" title="deno.com" style=" color: #3366aa;    font-size: 1.1em; line-height: 1.4em;"&gt;Deno v. Oracle: Cancelling the JavaScript Trademark&lt;/a&gt;&lt;/span&gt; — Did you know Oracle formally owns the ‘JavaScript’ trademark? There have been a few efforts to change this over the years but Oracle isn’t listening, so the Deno team formally filed a petition to cancel the trademark.&lt;/p&gt;
  &lt;p&gt;Deno &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;⚖️ And, as of this week, &lt;a href="https://javascriptweekly.com/link/163112/rss" style=" color: #3366aa; font-weight: 600;"&gt;it looks like Oracle is lawyering up to defend it &lt;small&gt;&lt;b&gt;[PDF]&lt;/b&gt;&lt;/small&gt;.&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🎂&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163115/rss" title="web.archive.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;JavaScript Turns 29 Years Old&lt;/a&gt;&lt;/span&gt; — If you’re wondering &lt;em&gt;why&lt;/em&gt; Oracle has the JavaScript trademark, it's because Sun owned the name and &lt;a href="https://javascriptweekly.com/link/163116/rss" style=" color: #3366aa;   "&gt;Oracle acquired Sun&lt;/a&gt; (which is also why it owns Java). As someone who was posting inane questions in &lt;code&gt;comp.lang.javascript&lt;/code&gt; in 1996, this news makes me feel old – no-one could have anticipated what JavaScript would be today.&lt;/p&gt;
  &lt;p&gt;Netscape and Sun Microsystems &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://javascriptweekly.com/link/163110/rss" style=" color: #3366aa;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/19ff8fd9.png" width="143" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163110/rss" title="developer.mescius.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Add Excel-like Spreadsheet Functionality to Your JavaScript Apps&lt;/a&gt;&lt;/span&gt; — 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.&lt;/p&gt;
  &lt;p&gt;SpreadJS from MESCIUS inc &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163117/rss" title="astro.build" style=" color: #3366aa;    font-size: 1.05em;"&gt;Astro 5.0: The Web Framework for Content-Driven Sites&lt;/a&gt;&lt;/span&gt; — Astro has taken the front-end world by storm and v5.0 keeps up its rapid pace of development. &lt;em&gt;Content Layer&lt;/em&gt; makes it easy to load content from any source and &lt;em&gt;Server Islands&lt;/em&gt; can combine cached, static content with dynamic content. There’s now a type-safe way to manage environment variables and &lt;a href="https://javascriptweekly.com/link/163118/rss" style=" color: #3366aa;   "&gt;Vite 6&lt;/a&gt; is along for the ride too. You can play with Astro 5 using &lt;a href="https://javascriptweekly.com/link/163119/rss" style=" color: #3366aa;   "&gt;the &lt;code&gt;astro.new&lt;/code&gt; site.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;The Astro Team &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163113/rss" title="survey.devographics.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Take the &lt;em&gt;State of JavaScript 2024&lt;/em&gt; Survey&lt;/a&gt;&lt;/span&gt; — Each year, Devographics runs a popular survey to see what JS features and tools you know about, use, and love/hate. It’s structured such that you can learn something just from taking it and the results are always interesting (&lt;a href="https://javascriptweekly.com/link/163114/rss" style=" color: #3366aa;   "&gt;see 2023’s&lt;/a&gt;). It’s open for a few more days, despite what the page says. (Or &lt;a href="https://javascriptweekly.com/link/163182/rss" style=" color: #3366aa;   "&gt;▶️ watch someone else taking it?&lt;/a&gt;)&lt;/p&gt;
  &lt;p&gt;Devographics &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163120/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;npmjs.com has a 'new, streamlined search experience&lt;/a&gt;. It's mostly a tweaking of the 'sort' options – so take &lt;a href="https://javascriptweekly.com/link/163121/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a search like this one for 'svg'&lt;/a&gt;, you can now sort by recent download counts and dependency levels.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;TC39 News:&lt;/strong&gt; &lt;a href="https://javascriptweekly.com/link/163122/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Import Sync&lt;/a&gt; (&lt;a href="https://javascriptweekly.com/link/163123/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;explained here&lt;/a&gt;) is being promoted to stage 1, &lt;a href="https://javascriptweekly.com/link/163124/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Error.isError&lt;/a&gt; moves to stage 3, and &lt;a href="https://javascriptweekly.com/link/163125/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Intl.DurationFormat&lt;/a&gt; moves to stage 4.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎄 Adrian Roselli has &lt;a href="https://javascriptweekly.com/link/163126/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;a roundup of development-themed advent calendars&lt;/a&gt; for you to enjoy this month, including &lt;a href="https://javascriptweekly.com/link/163127/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Advent of TypeScript&lt;/a&gt;. 'Tis the season!&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163128/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Porffor&lt;/a&gt; is an interesting ahead-of-time JavaScript compiler, now complete with a snazzy new homepage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163129/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;test262.fyi&lt;/a&gt; presents a technical view of how different JS engines fare on the official ECMAScript conformance suite.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;RELEASES:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163130/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;TypeScript 5.7&lt;/a&gt; – The final release of the typed JavaScript superset.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163131/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Node.js v22.12.0 (LTS)&lt;/a&gt; – A noteworthy release as it's the first Node LTS release with &lt;code&gt;require(esm)&lt;/code&gt; enabled by default.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163132/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Radon IDE 1.0&lt;/a&gt; – Turn VS Code or Cursor into a fully-fledged React Native IDE.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163133/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Prisma 6&lt;/a&gt; – Powerful Node.js + TypeScript ORM.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163134/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Vite 6.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163135/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;React Router 7.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163136/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Undici 7&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163137/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;ESLint v9.16.0&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163138/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meteor.js 3.1&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163139/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Relay 18.2&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163140/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Tailwind CSS v4.0 Beta&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163141/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Redux Toolkit 2.4&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163142/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Bun 1.1.38&lt;/a&gt;, &lt;a href="https://javascriptweekly.com/link/163143/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;NeutralinoJS 5.5&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📒 Articles &amp;amp; Tutorials&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🤖&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163144/rss" title="www.raymondcamden.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Using Transformers.js for AI in the Browser&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/163145/rss" style=" color: #3366aa;   "&gt;Transformers.js&lt;/a&gt; is a seriously impressive project we link from time to time that lets you run pretrained machine learning models in the browser. Here’s a practical look at actually playing with it yourself right now.&lt;/p&gt;
  &lt;p&gt;Raymond Camden &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163146/rss" title="www.trevorlasn.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Working with JavaScript's Scheduler API&lt;/a&gt;&lt;/span&gt; — A look at an API only available in Chromium/Edge for now, but that promises a way to prioritize and control task execution in a more refined way than was possible till now.&lt;/p&gt;
  &lt;p&gt;Trevor I. Lasn &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163147/rss" title="wallabyjs.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Quokka V2: Deeper Code Insights &amp;amp; Interactive Timeline with New UI&lt;/a&gt;&lt;/span&gt; — The #1 JavaScript scratchpad just got better! Quokka v2 brings a new UI, interactive timeline, and tools for faster prototyping.&lt;/p&gt;
  &lt;p&gt;Wallaby Team &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📉&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163148/rss" title="kurtextrem.de" style=" color: #3366aa;    font-size: 1.05em;"&gt;How To Improve 'Interaction to Next Paint' in React Apps&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://javascriptweekly.com/link/163149/rss" style=" color: #3366aa;   "&gt;Interaction to Next Paint (INP)&lt;/a&gt; is a Web performance metric based on the responsiveness of an app to user interactions – Google uses it as part of its ranking mechanism. Jacob offers up advice and resources for improving your INP scores in React apps.&lt;/p&gt;
  &lt;p&gt;Jacob 'Kurt' Groß &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163150/rss" title="medium.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;How Airtable Scaled TypeScript to Thousands of Projects&lt;/a&gt;&lt;/span&gt; — &lt;em&gt;“Today we have nearly 3000 TypeScript projects. That’s why we’re sharing our journey to so many projects, and how it reduced our typechecking time by 65%.”&lt;/em&gt;&lt;/p&gt;
  &lt;p&gt;Michael Mitchell (Airtable) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;▶  &lt;a href="https://javascriptweekly.com/link/163151/rss" title="www.youtube.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Building a Teleprompter App in 30 Minutes with AI&lt;/a&gt;&lt;/span&gt; — Building apps with AI powered tools isn’t unusual nowadays, but if you’ve never been through the process, this is a good look at how it works all the way through to deployment.&lt;/p&gt;
  &lt;p&gt;Kilian Ekamp &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163152/rss" title="bolt.new" style=" color: #3366aa;    font-size: 1.05em;"&gt;Build Fully Functional Apps in Minutes, Not Months&lt;/a&gt;&lt;/span&gt; — Create, run, edit, and deploy full-stack web apps with Bolt.&lt;/p&gt;
  &lt;p&gt;StackBlitz &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📺 &lt;a href="https://javascriptweekly.com/link/163153/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Four Talks from the London TypeScript Meetup&lt;/a&gt; – All top notch talks. &lt;cite&gt;Bloomberg&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163154/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Optimize JS Module Loading with &lt;code&gt;link rel='modulepreload'&lt;/code&gt;&lt;/a&gt;  &lt;cite&gt;Trevor I. Lasn&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163155/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Running Your Next.js SSR App on Deno Deploy&lt;/a&gt;  &lt;cite&gt;Orriols and Jiang (Deno)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://javascriptweekly.com/link/163156/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;From Jekyll to Astro: An AI-Assisted Migration&lt;/a&gt;  &lt;cite&gt;Kevin London&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://javascriptweekly.com/link/163157/rss" style=" color: #3366aa;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zqe6jaiisx38tybovkgx.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163157/rss" title="linkify.js.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Linkify 4.2: Link Up URLs, Emails, and More in Plain Text&lt;/a&gt;&lt;/span&gt; — Given plain text containing things like links, hashtags, IP addresses, and email addresses, this will generate the correct code to display it on the Web. &lt;a href="https://javascriptweekly.com/link/163158/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Hypercontext &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163159/rss" title="skia-canvas.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Skia Canvas 2.0: A 'Browserless' Canvas Environment for Node.js&lt;/a&gt;&lt;/span&gt; — Based on Google’s &lt;a href="https://javascriptweekly.com/link/163160/rss" style=" color: #3366aa;   "&gt;Skia engine&lt;/a&gt; and offers end results similar to Chrome’s own canvas system. GPU accelerated and can render images, paths, fonts, shapes, etc. v2.0 adds support for WOFF/WOFF2 fonts, WEBP, and more. &lt;a href="https://javascriptweekly.com/link/163161/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Christian Swinehart &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163162/rss" title="go.clerk.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;Introducing &amp;lt;&lt;code&gt;Waitlist/&lt;/code&gt;&amp;gt; Mode - A Virtual Queue for Your App&lt;/a&gt;&lt;/span&gt; — Launching a new product but not ready to open it up to everyone yet? Waitlist Sign-up mode is your solution.&lt;/p&gt;
  &lt;p&gt;Clerk &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #993 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163163/rss" title="mathjs.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Math.js 14.0: An Extensive Math Library&lt;/a&gt;&lt;/span&gt; — Work with complex numbers, fractions, units, matrices, symbolic computation, etc. A long standing library continuing to get frequent updates. &lt;a href="https://javascriptweekly.com/link/163164/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Jos de Jong &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163165/rss" title="onlook.dev" style=" color: #3366aa;    font-size: 1.05em;"&gt;Onlook: 'Figma'-Like Design App for React&lt;/a&gt;&lt;/span&gt; — A new open source, local-first design app (for Windows, Linux &amp;amp; macOS) targeting React apps. Design layouts directly on a live page and instantly write your changes to code. &lt;a href="https://javascriptweekly.com/link/163166/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;On Off Inc. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🕒&lt;/span&gt; &lt;a href="https://javascriptweekly.com/link/163167/rss" title="spacetime.how" style=" color: #3366aa;    font-size: 1.05em;"&gt;SpaceTime 7.7: A Lightweight Timezone Library&lt;/a&gt;&lt;/span&gt; — Use this to calculate times in other timezones. Has a Moment-like API but is immutable. No dependencies. Now updated for 2025. &lt;a href="https://javascriptweekly.com/link/163168/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Spencer Kelly &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163169/rss" title="github.com" style=" color: #3366aa;    font-size: 1.05em;"&gt;BunBuster: A Fast Web and TCP Fuzzer for Brute Forcing Servers&lt;/a&gt;&lt;/span&gt; — As always, use these sorts of things in a responsible way, but it’s interesting to see tools like this now being built in JavaScript, thanks to Bun’s speed and ease of distributing binaries.&lt;/p&gt;
  &lt;p&gt;Tiago Rangel &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163170/rss" title="kalumajs.org" style=" color: #3366aa;    font-size: 1.05em;"&gt;Kaluma: A Tiny JS Runtime for the Raspberry Pi Pico&lt;/a&gt;&lt;/span&gt; — Can a JS runtime squeeze into 64KB to run on the RP2040-based Raspberry Pi Pico? Kaluma can, even while offering Node.js-style niceties.&lt;/p&gt;
  &lt;p&gt;Kaluma Project &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://javascriptweekly.com/link/163171/rss" title="todoctor.azat.io" style=" color: #3366aa;    font-size: 1.05em;"&gt;Todoctor: A Tool to Analyze and Track TODO Comments&lt;/a&gt;&lt;/span&gt; — A CLI tool designed to collect and monitor TODO/FIXME-style comments in JavaScript and TypeScript projects. &lt;a href="https://javascriptweekly.com/link/163172/rss" style=" color: #3366aa;   "&gt;GitHub repo.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Azat S &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
	&lt;p&gt;📰 Classifieds&lt;/p&gt;
  &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🪝 &lt;a href="https://javascriptweekly.com/link/163173/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Hookdeck&lt;/a&gt;: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163174/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Meticulous automatically creates &amp;amp; maintains E2E UI tests&lt;/a&gt;. Zero flakes. Used by Lattice, Bilt Rewards and others.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🐍 &lt;a href="https://javascriptweekly.com/link/163175/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;PythonMonkey 1.1&lt;/a&gt; – Embed the SpiderMonkey JS engine into Python's VM.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163176/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;nrm 1.5&lt;/a&gt; – Fast switching between registries: npm, cnpm, nj, taobao.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163177/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;LogTape 0.8&lt;/a&gt; – Simple logging library for all major JS runtimes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163178/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Faker 9.3&lt;/a&gt; – Generate fabricated data to your heart's content.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163179/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;np 10.1&lt;/a&gt; – A better &lt;code&gt;npm publish&lt;/code&gt;. Now supports Bun too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163180/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;DOCX 9.1&lt;/a&gt; – Generate .docx / Word files from JavaScript.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://javascriptweekly.com/link/163181/rss" style=" color: #3366aa; font-weight: 500 !important;   "&gt;Preact 10.25&lt;/a&gt; – The 3KB React-compatible alternative.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://javascriptweekly.com/open/715/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 5 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://javascriptweekly.com/issues/715</guid>
    </item>
  </channel>
</rss>
