Node.js v22: “Jod” Binaries Available
Month: December 2024
N|Solid Launches AI Powered Profiling: Unleashing the Power of CPU and Heap Insights
With N|Solid’s AI-powered profiling tools, you gain more than just data—you get actionable recommendations to diagnose and resolve issues.
Introducing the Latest N|Solid Release V6.1 with upgraded AI-Powered Insights and gRPC Integration
We’re thrilled to announce a new release of N|Solid, this release introduces two major features, gRPC and AI-Powered Profiling for CPU and Heap Insights
NodeSource Adopts gRPC: A Step Toward Greater Resilience, Scalability, and Open Standards
Recently, we took a significant step forward by adopting gRPC in N|Solid —a widely used open-source protocol for efficient communication between systems.
State of Node.js Performance 2024
This article revisits the State of Node.js performance, focusing on comparing versions 20 through 22. Providing how Node.js has evolved over the past year.
A 2024 JavaScript retrospective
#717 — December 19, 2024
🎄 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.
Then we’re on a Christmas break for two weeks and will be back in your inbox on Friday, January 10, 2025, — yes, we’re moving back to Fridays for 2025! We hope you have a Merry Christmas and a Happy New Year.
__
Peter Cooper and the Cooperpress team
JavaScript Weekly
The State of JavaScript 2024 Results — We recently encouraged you to take the annual State of JavaScript survey; the results are now out. 14,015 folks took part and we get to see what language features folks are using, experiences with popular libraries, build tool popularity, AI preferences, popular podcasts, runtime usage, and perhaps controversially, how more JavaScript developers are using TypeScript than not. There’s a lot to dig through here.
Sacha Greif
Complete Intro to React v9: New Project, Modern Stack — 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.
Frontend Masters sponsor
IN BRIEF:
🥇 JetBrains’ recent State of Developer Ecosystem report shows that JavaScript is “the most used programming language”, reports InfoWorld‘s Paul Krill. The report also claims “despite its gains, TypeScript will not replace JavaScript”.
🗓️ We’ve just finished 2024 wrap ups in the latest issue of Node Weekly and React Status, if you want more depth into those topics.
🤖 GitHub has made its Copilot AI assistant available for free (with limits). We also learn that there are now 150 million developers on GitHub.
🇵🇱 If you’re in Poland, consider heading along to the next WarsawJS meetup on January 8. Esteemed Polish computer scientist Andrzej Blikle will be speaking, amongst others.
🤖 Vercel is running a State of AI developer survey they’d like you to take.
RELEASES:
JerryScript 3.0 – ‘Ultra lightweight’ JS engine for IoT/embedded use cases with full ES 5.1 compliance and 84% Test262 conformance.
🤖 Transformers.js v3.2 – Run machine learning models in the browser. Now supporting Moonshine real-time speech recognition and Phi 3.5 Vision.
Bun 1.1.39 and 1.1.40 – The fast JS runtime gets a human-readble lockfile format, fetch bodies can now be streams, and Node compatibility improves.
Prisma 6.1 – Popular ORM for Node.js and TypeScript. Tracing is now GA.
pnpm 10.0 RC 0, ESLint v9.17.0, Recharts 2.15
Introducing Authentication Support for React Router — Add authentication and authorization to your React Router application in minutes with pre-built components and more.
Clerk sponsor
📄 Introducing TanStack Start – A new full-stack React framework powered by TanStack Router. Adam Rackis
📄 How to Create Multi-Step Forms with Vanilla JS and CSS Fatuma Abdullaho
📄 Summarizing Text with Transformers.js Raymond Camden
🗓️ What Happened to JavaScript in 2024
The JavaScript world has had a busy 2024, as you’d expect for the world’s most used programming language (despite the threat of being split into two). We looked back over the year and remembered some things that occurred:
In February, the React team posted a mega ‘React Labs’ update which framed the whole of React’s year, explaining the goals of the React Compiler and the eventual React 19 release (which went stable this month).
Alternative JavaScript runtimes had a great 2024, particularly Bun which introduced Bun Shell, Windows support and the ability to compile and run native C from JavaScript. Deno had a big year too, with the release of Deno 2 which included stronger Node.js/npm compatibility and package management tooling. Other systems continuing to progress this year include Boa JS, QuickJS, and Porffor.
Over at TC39, lots of language proposals were advanced this year (and that’s just a sample – here’s some more!). The ES2025 future is bright.
Boost Semantic Search with MongoDB Atlas Vector Search — Create embeddings, index them, and run semantic queries—just follow the quick start tutorial.
MongoDB sponsor
Deno decided to take the JavaScript trademark fight to Oracle and formally filed a petition with the USPTO to cancel it. We hope to see some developments here in 2025, but Oracle are prepared to defend it.
Not content to merely work on an edge platform, JS runtime, and fight Oracle, Deno also unveiled JSR, a fresh attempt at providing a registry for JavaScript packages.
There were lots of big releases generally for major JavaScript projects including Svelte v5, Node.js v23.0, Astro 5.0, TypeScript 5.7, Vite 6.0, React Native 0.76, Next.js 15, React Router v7, Rspack 1.0, Vue.js 3.5, and Angular 19.
The OG of JavaScript libraries jQuery 4.0 went into beta too! We keep our fingers crossed for a jQuery 4.0 final release in 2025.. 😉
🥇 Our Top Items of 2024
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:
1. console.delight — By far our most popular link of the year with over 20,000 clicks(!) – but who doesn’t use and love console.log? 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.
Zach Saucier
2. JavaScript Visualized: Promise Execution — 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.
Lydia Hallie
WorkOS: Sell to Enterprises with a Few Lines of Code — The modern identity platform for B2B SaaS, offering flexible, easy-to-use APIs to integrate SSO, SCIM, and FGA in minutes instead of months.
WorkOS sponsor
3. Is htmx Just Another JavaScript Framework? — Despite being five years old, htmx 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. v2.0 landed in June.
Alexander Petros
4. Ecma International Approves ECMAScript 2024: What’s New? — 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.
Dr. Axel Rauschmayer
5. JavaScript’s ??= Operator: Default Values Made Simple — The ??= nullish coalescing assignment operator snuck into JavaScript a few years ago via ES2021 and has been broadly supported almost everywhere for ages. Trevor showed off how it can tighten up your assignments.
Trevor I. Lasn
6. Eloquent JavaScript: The Fourth Edition — 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 “adjusted to the realities of 2024 and generally touched up.”
Marijn Haverbeke
7. 33 JavaScript Concepts Every Developer Should Know — A curated collection of links to tutorials on 33 different areas it’s worth understanding well, including types, closures, equality, scope, and different engines.
Leonardo Maldonado
8. How Google Handles JavaScript In Its Indexing Process — At one point if you wanted Google to index your content it needed to be directly written in HTML and not dynamically rendered with JavaScript. Things have since changed, of course, but by how much?
Zecchini, Moore, Siddle, Ubl (Vercel)
📰 Classifieds
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
Hookdeck: An alternative to Amazon API Gateway + Lambda + SQS. With local dev, debugging, and observability built-in.
🤗 Many thanks for reading JavaScript Weekly 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.
Benchmarking Node’s recent performance enhancements
#716 — December 12, 2024
JavaScript Weekly
Boa v0.20: An Alternative JavaScript Compiler — 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 Test262 suite, improves Temporal support, adds Atomics.pause, and more. This is no toy engine.
Boa Developers
React v19 Now Stable — First teased in a February 2024 update, React 19 has been in beta for 8 months, so there’s already a wealth of content about it, from the React 19 upgrade guide or an explanation of its compiler to cheat sheets and Vercel’s roundup of what’s new in React 19.
The React Team
Build with Gemini at Lightning Speeds — 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.
Google Gemini sponsor
IN BRIEF:
🎮 If you ever do any game development with JavaScript, it’s time to take the Gamedev.JS Survey 2024. If you don’t, you can head to JS13KGames and enjoy other people’s creative efforts instead 🙂
Apple has released Safari 18.2 which introduces a few enhancements to JavaScript support including Float16Array, more methods for Uint8Array, Promise.try, RegExp.escape, and more.
Did you know Douglas Crockford is Not Your Dad? Well, at least when it comes to putting comments in JSON..
RELEASES:
VS Code November Release – Now when you copy and paste JS/TS code, VS Code can add imports for the pasted code.
Next.js 15.1 – The popular React framework gets full React 19 support.
Node v23.4.0 (Current) – Say hello to assert.partialDeepStrictEqual and –trace-env for tracing environment variable usage.
Sheriff v25 – Opinionated TypeScript-first ESLint configuration. Now supporting ESLint v9.
Undici 7.1 – HTTP/2 support now marked as stable in the Node.js HTTP library.
pnpm 9.15, Dependency Cruiser 16.8, Redux Toolkit 2.5, YouTube.js 12.2
📒 Articles & Tutorials
The State of Node.js Performance in 2024 — 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.
Gonzaga and Parody (NodeSource)
How to Reduce TTFB? — High “time to first byte” affects web vitals. Learn to identify and fix issues slowing your TTFB.
Sentry sponsor
Publishing a Simple Client-Side JS Package to npm with GitHub Actions — As part of the process of building Prompts.js, a new library for creating simple await-able alternatives to alert(), confirm() and prompt(), Simon wanted to make it easy to publish as an npm package too.
Simon Willison
How to Build a SolidJS App with Deno — SolidJS is a declarative library for creating user interfaces that emphasizes fine-grained reactivity and minimal overhead and it plays well with Deno.
Andy Jiang
Get Cooking! Generative AI with MongoDB — See how MongoDB, the world’s most popular document database, integrates with RAG pipelines and cutting-edge AI agents.
MongoDB sponsor
📄 Building Your Own npm create Package – You’ll have seen (or used) various scaffolding tools using this technique. (A Different) Alex Chan
📄 What We Learned Migrating From Webpack to Vite Roman Zaynetdinov
📄 Understanding the Browser’s Main Thread Amrik Malhans
📺 An Honest Review of TanStack Start vs Next.js Ankita Kulkarni
📄 How React Compiler Performs on Real Code Nadia Makarevich
🛠 Code & Tools
Termo: An Easy to Use Terminal Control for Websites — 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 Xterm.js and presents a slick experience.
Raj Nandan Sharma
🖼️ wasm-vips: libvips Image Processing via WebAssembly — libvips 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 an interactive demo here.)
Kleis Auke Wolthuizen
Looking for a DIY Survey Solution? SurveyJS Has You Covered — Build, customize, and store surveys with ease. Total data control, JSON-driven, no backend restrictions—integrates into any JavaScript app.
SurveyJS sponsor
Civet 0.9: Code More with Less Using a TypeScript Superset — Two years old and well maintained, Civet offers an interesting approach. Think JavaScript but with Python style indentation, chained comparisons, built-in JSX, & more. This example alone shows off the potential for tighter, easier-to-write code.
Daniel X Moore and Contributors
Rockpack 5.0: An Alternative React App Starter — A Create React App-style tool aiming to get React project setup time as low as possible, complete with server side rendering support, bundling, linting and testing. GitHub repo.
Alex Sergey
jsesc: Get a Stringified, ASCII-Safe Representation of Any Data — Think JSON.stringify() but instead it returns JavaScript meaning it can support things like maps, sets, and BigInts.
Mathias Bynens
📊 Perspective 3.2 (above) – Data visualization and analytics component. The core is written in C++ and compiled to WebAssembly where it can be used from JavaScript. Their homepage shows it off well with a live example. Now supports newline delimited JSON (ndjson).
☎︎ International Telephone Input 25.2 – Component for entering and validating international phone numbers. Vue, React, and vanilla.
debug 4.4 – Tiny debugging utility modelled after Node.js core’s debugging approach (but for the browser too).
ExpressoTS 3.0 – TypeScript framework for server-side Node.js apps.
InversifyJS 6.2 – Inversion of control container for JavaScript.
📊 ApexCharts 4.2 – Popular JS charting library. (Demos.)
Vue3-Carousel 0.9 – Customizable, lightweight Vue 3 carousel component.
html-react-parser 5.2 – Isomorphic HTML to React parser.
AlaSQL.js 4.6 – Isomorphic JavaScript SQL database.
📰 Classifieds
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
If your work leans more towards the frontend, be sure to check out the latest issue of Frontend Focus, our sister newsletter focused on all things browser-side.
Oracle engages its lawyers and JavaScript turns 29
#715 — December 5, 2024
🗓️ 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 🙂
__
Your editor, Peter Cooper
JavaScript™ Weekly
Deno v. Oracle: Cancelling the JavaScript Trademark — 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.
Deno
⚖️ And, as of this week, it looks like Oracle is lawyering up to defend it [PDF].
🎂 JavaScript Turns 29 Years Old — If you’re wondering why Oracle has the JavaScript trademark, it’s because Sun owned the name and Oracle acquired Sun (which is also why it owns Java). As someone who was posting inane questions in comp.lang.javascript in 1996, this news makes me feel old – no-one could have anticipated what JavaScript would be today.
Netscape and Sun Microsystems
Add Excel-like Spreadsheet Functionality to Your JavaScript Apps — 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.
SpreadJS from MESCIUS inc sponsor
Astro 5.0: The Web Framework for Content-Driven Sites — Astro has taken the front-end world by storm and v5.0 keeps up its rapid pace of development. Content Layer makes it easy to load content from any source and Server Islands can combine cached, static content with dynamic content. There’s now a type-safe way to manage environment variables and Vite 6 is along for the ride too. You can play with Astro 5 using the astro.new site.
The Astro Team
Take the State of JavaScript 2024 Survey — 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 (see 2023’s). It’s open for a few more days, despite what the page says. (Or ▶️ watch someone else taking it?)
Devographics
IN BRIEF:
npmjs.com has a ‘new, streamlined search experience. It’s mostly a tweaking of the ‘sort’ options – so take a search like this one for ‘svg’, you can now sort by recent download counts and dependency levels.
TC39 News: Import Sync (explained here) is being promoted to stage 1, Error.isError moves to stage 3, and Intl.DurationFormat moves to stage 4.
🎄 Adrian Roselli has a roundup of development-themed advent calendars for you to enjoy this month, including Advent of TypeScript. ‘Tis the season!
Porffor is an interesting ahead-of-time JavaScript compiler, now complete with a snazzy new homepage.
test262.fyi presents a technical view of how different JS engines fare on the official ECMAScript conformance suite.
RELEASES:
TypeScript 5.7 – The final release of the typed JavaScript superset.
Node.js v22.12.0 (LTS) – A noteworthy release as it’s the first Node LTS release with require(esm) enabled by default.
Radon IDE 1.0 – Turn VS Code or Cursor into a fully-fledged React Native IDE.
Prisma 6 – Powerful Node.js + TypeScript ORM.
Vite 6.0, React Router 7.0, Undici 7, ESLint v9.16.0, Meteor.js 3.1, Relay 18.2, Tailwind CSS v4.0 Beta, Redux Toolkit 2.4, Bun 1.1.38, NeutralinoJS 5.5
📒 Articles & Tutorials
🤖 Using Transformers.js for AI in the Browser — Transformers.js 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.
Raymond Camden
Working with JavaScript’s Scheduler API — 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.
Trevor I. Lasn
Quokka V2: Deeper Code Insights & Interactive Timeline with New UI — The #1 JavaScript scratchpad just got better! Quokka v2 brings a new UI, interactive timeline, and tools for faster prototyping.
Wallaby Team sponsor
📉 How To Improve ‘Interaction to Next Paint’ in React Apps — Interaction to Next Paint (INP) 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.
Jacob ‘Kurt’ Groß
How Airtable Scaled TypeScript to Thousands of Projects — “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%.”
Michael Mitchell (Airtable)
▶ Building a Teleprompter App in 30 Minutes with AI — 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.
Kilian Ekamp
Build Fully Functional Apps in Minutes, Not Months — Create, run, edit, and deploy full-stack web apps with Bolt.
StackBlitz sponsor
📺 Four Talks from the London TypeScript Meetup – All top notch talks. Bloomberg
📄 Optimize JS Module Loading with link rel=’modulepreload’ Trevor I. Lasn
📄 Running Your Next.js SSR App on Deno Deploy Orriols and Jiang (Deno)
📄 From Jekyll to Astro: An AI-Assisted Migration Kevin London
🛠 Code & Tools
Linkify 4.2: Link Up URLs, Emails, and More in Plain Text — 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. GitHub repo.
Hypercontext
Skia Canvas 2.0: A ‘Browserless’ Canvas Environment for Node.js — Based on Google’s Skia engine 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. GitHub repo.
Christian Swinehart
Introducing <Waitlist/> Mode – A Virtual Queue for Your App — Launching a new product but not ready to open it up to everyone yet? Waitlist Sign-up mode is your solution.
Clerk sponsor
Math.js 14.0: An Extensive Math Library — Work with complex numbers, fractions, units, matrices, symbolic computation, etc. A long standing library continuing to get frequent updates. GitHub repo.
Jos de Jong
Onlook: ‘Figma’-Like Design App for React — A new open source, local-first design app (for Windows, Linux & macOS) targeting React apps. Design layouts directly on a live page and instantly write your changes to code. GitHub repo.
On Off Inc.
🕒 SpaceTime 7.7: A Lightweight Timezone Library — Use this to calculate times in other timezones. Has a Moment-like API but is immutable. No dependencies. Now updated for 2025. GitHub repo.
Spencer Kelly
BunBuster: A Fast Web and TCP Fuzzer for Brute Forcing Servers — 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.
Tiago Rangel
Kaluma: A Tiny JS Runtime for the Raspberry Pi Pico — 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.
Kaluma Project
Todoctor: A Tool to Analyze and Track TODO Comments — A CLI tool designed to collect and monitor TODO/FIXME-style comments in JavaScript and TypeScript projects. GitHub repo.
Azat S
📰 Classifieds
🪝 Hookdeck: A serverless queue to reliably send, receive, transform, filter, and route events across your event-driven apps.
Meticulous automatically creates & maintains E2E UI tests. Zero flakes. Used by Lattice, Bilt Rewards and others.
🐍 PythonMonkey 1.1 – Embed the SpiderMonkey JS engine into Python’s VM.
nrm 1.5 – Fast switching between registries: npm, cnpm, nj, taobao.
LogTape 0.8 – Simple logging library for all major JS runtimes.
Faker 9.3 – Generate fabricated data to your heart’s content.
np 10.1 – A better npm publish. Now supports Bun too.
DOCX 9.1 – Generate .docx / Word files from JavaScript.
Preact 10.25 – The 3KB React-compatible alternative.