The current state of JavaScript on the Web

#​726 — March 7, 2025

Read on the Web

JavaScript Weekly

A Report on How the Web is Really Using JavaScript — Each year, the HTTP Archive puts together the Web Almanac, a report on the ‘state of the Web’. The JavaScript section has just gone live and goes into depth on how much JS we’re using (or failing to use!), the popularity of TypeScript, loading methods, Web Worker use, and, yes, jQuery still leads the way!

HTTP Archive

Lynx: A Fresh Way to Build Apps from Web TechnologiesLynx is a new set of tools for building JavaScript-powered native and Web apps that draws inspiration from React Native but aims to be more modular and flexible (and eventually framework agnostic). It comes from, and is used by, TikTok, and comes with its own QuickJS-based JavaScript engine.

Xuan Huang and the Lynx Team

Build Dynamic Forms with a JSON-Powered White-Label Form Builder — Create fully customizable, JSON-driven forms in your JavaScript app with SurveyJS. Our drag-and-drop form-building UI component integrates seamlessly with React, Angular, Vue 3, and vanilla JS, plus has no backend restrictions. Perfect for form-heavy apps.

SurveyJS sponsor

Announcing TypeScript 5.8 — Four months in the making, TypeScript 5.8 lands with a strong Node focus. You can now use require() for ES modules in the nodenext module, there’s a new node18 module for developers who want to keep targeting Node 18, and most notably there’s now an –erasableSyntaxOnly option to ensure no TypeScript-only runtime semantics can be used.

Microsoft

IN BRIEF:

The Svelte team shares its latest monthly update of what’s new.

Straightforward examples of basic design patterns implemented in pure JavaScript.

🤖 The folks behind the State of JS survey are running State of Web Dev AI, a new survey focused on the use of AI in modern Web development.

RELEASES:

Electron 35.0 – You can now attach a preload script to Service Workers. Dependencies are also bumped to Chromium 134 and Node 22.14.

Angular 19.2 – We mentioned this last week but there’s now an official post with more details.

React Aria March Release – Adobe’s fantastic suite of React components.

zx 8.4 – Google’s tool for better Node shell scripting.

eslint-plugin-vue v10.0.0, Readability.js 0.6, NodeBB 4.1

📒 Articles & Tutorials

JavaScript Fatigue Strikes Back — A developer with ‘a decade away’ from writing JavaScript returns to find that one thing hasn’t changed: “Choosing the right JavaScript framework is hard, man.”

Allen Pike

Dr. Axel’s ‘Sales Pitch’ for TypeScript — As one of JavaScript’s most esteemed writers, if Dr. Axel can’t convince you of the value of TypeScript, who could?

Dr. Axel Rauschmayer

Instrument, Monitor, Fix: A Hands-On Debugging Class — Join us for a hands-on session where you’ll build it, watch it break, debug it, and go from “no idea what’s wrong” to fixing issues.

Sentry sponsor

Reimplementing Crossy Road in JavaScript — Two well put together tutorials so far covering reimplementing Crossy Road with either Three.js or React Three Fiber. In both written or video form.

Hunor Márton Borbély

Node Just Added TypeScript Support. What Does That Mean for Deno? — The Deno team, who went all in on TypeScript from day one, reflects on the continued increase in levels of support for TypeScript in Node and how their approaches differ.

Andy Jiang and Ryan Dahl

📄 Creating an Image Comparison Slider in 6 Lines of JavaScript Muffin Man

📄 Is Biome Ready to Replace Prettier and ESLint? Nicolas Pendon

📄 Speeding Up the JS Ecosystem with Rust and JavaScript Plugins Marvin Hagemeister

📄 JavaScript Best Practice: Use return await Tamás Sallai

🛠 Code & Tools

TanStack Form v1.0: Headless, Type-Safe Form State Management — A type-safe, framework agnostic (React, Vue, Angular, Solid and Lit are all supported out of the box), headless and isomorphic way to create and work with forms, with this v1.0 release over two years in the making. If you already use things like Formik or React Hook Form and are wondering how it differs, here’s a comparison table.

Tanner Linsley

PDFSlick 2.2: View and Interact with PDF Documents — A full-featured PDF viewer for React, Solid, Svelte and other JS apps. Built on top of PDF.js, it uses Zustand to provide a reactive store for documents. Demo.

Vancho Stojkov

🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.

WorkOS sponsor

Electron App Boilerplate with Modern Dependencies — A basic template app that uses React 19, Tailwind CSS 4, shadcn/ui, Electron Vite, Biome, and includes a GitHub Actions release workflow.

Dalton Menezes

Fable: A F# to JavaScript Compiler — If you fancy F#’s flavor of almost-entirely-functional development, this could be for you. GitHub repo.

Fable

React Data Table: Responsive Dynamic Table Component — Simple and clean, but flexible. Includes features like column sorting and pagination out of the box. Lots of demos and code examples. GitHub repo.

John Betancur

🖼️ Cropper.js 2.0 – JavaScript image cropping control. There’s an online playground where you get a feel for all its features.

📈 Perspective 3.4 – Streaming data viz and analytics component. The core is written in C++ and compiled to WebAssembly. The homepage shows it off well.

Happy DOM 17.3 – Cross-runtime JS implementation of a web browser sans UI.

EasyMDE 2.20 – A simple Markdown editor control. Demo.

LogTape 0.9 – Simple logging library for all major JS runtimes.

📰 Classifieds

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.

Meet Harmony – An open source library for composing consistent and highly performant platforms from independent business features.

🏎️ Cut Integration Time – CarsXE’s API ensures minimal setup and faster deployment for your project. Learn more.

Working with in-app PDFs can be frustrating. Try Nutrient’s PDF SDK which handles problems effortlessly, so you don’t have to spend time fixing them. Used by ~1 billion end users in more than 150 different countries.

📢  Elsewhere

A quick roundup of some of other interesting updates or useful resources in the broader developer landscape:

🗓️ endoflife.date is a handy, updated source of ‘end-of-life’ dates for hundreds of open source projects, including Angular, Node.js, and Vue. A great resource.

Dive into WebGPU is a fantastic four part series on using the Web’s most modern graphics API for creating striking visual effects.

FerretDB 2.0 is an interesting open source MongoDB alternative built on top of Postgres.

A look at initial support for functions in CSS. Currently an experimental Chrome Canary feature only.

Doom for TypeScript types

#​725 — February 28, 2025

Read on the Web

✏️ Whenever we include more than a few links about TypeScript, we get complaints from people who don’t like it. We get that, we love you folks, and we’re aware. TypeScript isn’t our main focus but we do cover it, including critical pieces. That in mind, prepare yourself for our top feature… but the rest of the issue is mostly JavaScript, promise! 😅
__
Peter Cooper, your editor

JavaScript Weekly

Developer Implements ‘Doom’ in TypeScript’s Type System — A curious quirk of TypeScript’s type system is that it is Turing-complete which has led some developers to implement apps entirely in the type system. One such developer has spent eighteen months producing 177 terabytes of types to get 1993’s Doom running with them. Ridiculous and amazing in equal measure, he ▶️ explains the project in this widely lauded 7-minute video. 👏

Sarah Gooding (Socket)

Functional JavaScript First Steps, v2 — A friendly, practical introduction to functional programming fundamentals in JavaScript. Learn the power of the pure function while exploring functional programming paradigms.

Frontend Masters sponsor

Bun v1.2.3 and v1.2.4 Released — The rapid pace of progress on the JavaScriptCore-based runtime is only increasing. v1.2.3 pushes frontend dev server features (run bun ./index.html and all the bundling is done for you). bun init can now be used to create a new React project. Meanwhile, Bun 1.2.4 builds macOS apps 60% faster and macOS executables can now be code signed.

Jarred Sumner et al.

What is TypeScript? An Overview for JavaScript Programmers — You may have noticed esteemed JavaScript developer and author Dr. Axel has been on a TypeScript odyssey recently. Here he does a good job at boiling down the what (rather than the ‘why’) of TypeScript. A handy primer on what’s going on, even if you don’t plan to use it, since you’ll end up interacting with it somewhere..

Dr. Axel Rauschmayer

IN BRIEF:

⭐ The Chromium team is progressing with shipping the Observable API. This is a big deal, especially for libraries like RxJS.

📊 BenchJS is an online JavaScript benchmarking sandbox worth playing with.

A look behind the scenes at recent progress on the records & tuples proposal for JavaScript (currently stage 2 at TC39). You can play with the feature here.

Windows 95 in Electron is, unsurprisingly, Windows 95 running in an Electron app! v4.0 adds Office 95 and IE 5.5 for some (limited) browsing of the Web.

📊 The results of the State of React Native 2024 survey are out.

RELEASES:

Next.js 15.2 – Now with a redesigned debugging experience and experimental support for React’s new View Transitions API and using the Node.js runtime in middleware.

Astro 5.4 – Now with remote image optimization and experimental responsive image support in Markdown.

ESLint v9.21.0 – Now with a –ext CLI option to lint files with a particular extension.

Ember.js 6.2, Angular 19.2, Node.js v23.9 (Current)

📒 Articles & Tutorials

React Libraries for 2025 — Each year, prolific React blogger Robin updates his post covering his opinionated list of essential React ecosystem libraries. He covers a lot of angles from project creation and package management through to state management, animation, form creation, auth, and i18n.

Robin Wieruch

Turbocharging V8 with Mutable Heap Numbers — The V8 team uses the JetStream2 benchmark suite to investigate performance issues and has implemented a new optimization yielding not just a 2.5x improvement in the async-fs benchmark but in other areas too.

Victor Gomes (V8)

Wish Your AI Co-Pilot Actually Knew Your Codebase? — Try the most context-aware Developer AI. Augment deeply understands your codebase, documentation, and dependencies.

Augment Code sponsor

Subverting Control with Weak References — A weak reference differs from a normal reference in that it doesn’t prevent a referenced object from being garbage collected. Most modern JS runtimes support them and James shows how they can be useful.

James Long

How JIT (Just In Time) Compilation Makes JavaScript Faster Royal Bhati

📄 Using AI in the Browser for Typo Rewriting – A poke around one of Chrome’s newest AI features. Raymond Camden

📄 A Mere Mortal’s Introduction to JIT Vulnerabilities in JS Engines Josiah Pierce

📄 How to Do Visual Regression Testing in Vue with Vitest Alexander Opalic

📄 Why We Ditched Next.js and Never Looked Back Stewart and Snelling

📄 Micro Frontends with Angular and Native Federation Manfred Steyer (Angular Blog)

🛠 Code & Tools

Svelvet 11: Build Node-Based UIs with Svelte — A mature Svelte component library for creating interactive node-based UIs and diagrams. v11 adds the ability to toggle between ‘snap grid’ and freeform modes for manipulating elements. (There’s a live demo at the bottom of the homepage.)

Open Source Labs

React Native 0.78 Released — A big release for React Native as it ships React 19 support (which requires some tweaks when upgrading) and some more minor tweaks.

Novak, Cucci, Gupta and Cipolleschi (Meta)

🔒 Protect Against Bots, Fraud, and Abuse in Real Time — WorkOS Radar protects your app with advanced device fingerprinting — stop fake signups, free tier abuse, bot attacks and brute force attempts today.

WorkOS sponsor

Random: Seedable Random Number Generator — You’ve got Math.random but this library takes things a few steps further with easy ways to create random values of various types and using different distributions (e.g. normal distribution, Bernoulli, Poisson, Pareto and Weibull).

Travis Fischer

QuickJS Sandbox 2.0: Execute JS/TS in a QuickJS Powered SandboxQuickJS is a small, embeddable JavaScript engine built by Fabrice Bellard and this extends it to make it easy to run code in an isolated sandboxed environment, along with some basic Node module support and a virtual file system. GitHub repo.

Sebastian Wessel

PrimeVue 4.3 – A UI component suite for Vue, now with a new ‘theme designer’ tool including a Figma-to-code feature.

🗓️ React Big Calendar 1.18 – Google Calendar/Outlook-like calendar component. Now with React 19 support.

InversifyJS 7.0 – Inversion of control container for JavaScript. There’s a v6-to-v7 upgrade guide.

React Markdown 10.0 – Component to render markdown. (Demo.)

fast-png 6.3 – Pure JavaScript PNG image decoder and encoder.

Mercurius 16.1 – Implement GraphQL servers on top of Fastify.

Varlet 3.9 – Material Design-inspired component library for Vue 3.

file-type 20.4 – Detect the file type of a file, stream, or data.

FxTS 1.5 – Functional library for TS/JS devs.

📰 Classifieds

🎹 STRICH: Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.

📣 Creators of the State of JS, Vue.js, Vite, Pino & Fastify — have you seen the new JSNation speakers? Get 10% off with code JSWEEKLY.

Bit – A build system framework for development of composable software. Natively to Harmony, and support Node.js, React apps (with Vite), NextJS, Angular, Vue and more.

📢  Elsewhere

A quick roundup of some of other interesting updates or useful resources in the broader developer landscape:

Remember Ajax? The popular term bringing together several technologies involving asychronous JavaScript making dynamic updates by calling the server was coined in this article 20 years ago this month.

🤖 Is it viable to have LLMs write alt-text for your images? Dries Buytaert put a few models through their paces.

GitHub is getting involved with the AI developer agent game and shows off a preview of its new Copilot ‘agent mode’.

🌊 A detailed look at the techniques behind high-performance, real-time fluid simulations with WebGPU.

Electronic Arts certainly doesn’t make a habit of open sourcing old games, but it’s just done that for 1996’s Command and Conquer: Red Alert, one of the pioneering games in the real time strategy genre.

The latest from TC39’s recent meeting

#​724 — February 21, 2025

Read on the Web

JavaScript Weekly

TC39 Advances 3 Proposals to Stage 4 — I love seeing Rob Palmer’s tweets about TC39’s progression of JavaScript proposals and this is a good roundup from this week’s meeting in Seattle. Areas covered include near-term features like Float16Array and import defer to more distant things like Math.clamp and Error.captureStackTrace entering stage 1.

Sarah Gooding

Deno 2.2 Released with Quality of Life Improvements — The Deno team took a break from taking on Oracle to get a new feature-packed release of its JavaScript runtime out. We get built-in OpenTelemetry integration, linter updates, a new interactive way to update dependencies, node:sqlite support, TypeScript 5.7, V8 13.4, and much more.

Iwańczuk and Jiang

A Powerful JavaScript Reporting Tool Built for the Web — ActiveReportsJS is the premier JavaScript reporting tool designed for advanced data visualizations in web applications. With many different advanced report builders and viewers, insights can be seamlessly shared with your entire user base.

MESCIUS Inc. sponsor

Interop 2025: Features Browser Devs Will Focus on This YearInterop is an ongoing process where browser devs cooperate on improving features in concert so more Web users can use those features sooner. This year’s focus points include the Storage Access API, pointer/mouse events, phasing out old mutation events, the scrollend event, URLPattern, and more JS/WASM integration.

Nicole Sullivan (WebKit)

IN BRIEF:

Last year, ESLint unveiled a plan to become a more general purpose linter and added JSON and Markdown linting in due course. The latest addition? ESLint is now a CSS linter too!

🕹️ Running Pong across 240 browser tabs is a creative combination of AppleScript and JavaScript. Next stop – Tetris?

RELEASES:

React Native 0.78 – Now complete with React 19.

Nano ID 5.1 – Tiny URL-friendly unique string ID generator.

TypeScript 5.8 RC, Node.js v18.20.7 (LTS)

📒 Articles & Tutorials

Do Lake Names Reflect Their Properties? — I know this sounds like a geographical piece, but this developer’s curiosity led to a fun blend of JavaScript and the always useful Overpass Turbo mapping tool.

Ivan Ludvig

React Officially Sunsetting Create React App — This move has been bubbling for a long time now, but the React team is now officially recommending CRA-powered apps migrate to a framework (like Next.js) or build tools like Vite.

Matt Carroll and Ricky Hanlon

Which AI Model Is Best for Fixing Unit Test Errors? Claude, o3-mini, GPT-4o? — Better context wins every time. Wallaby enters the chat to give AI what it needs – test coverage and runtime values – to debug smarter.

Wallaby Team sponsor

Why TypeScript 5.8’s –erasableSyntaxOnly Matters“It disables a bunch of features that I don’t think should ever have been part of TypeScript.”

Matt Pocock

📄 Svelte 5 and the Future of Frameworks: A Chat with Rich Harris Frederick O’Brien

📄 Implementing a Dissolve Effect with Shaders and Particles in Three.js Jatin Chopra

📄 How to Move the First Element to the End in JavaScript Josh Sherman

📄 Deeply Understand Currying in 7 Minutes Yazeed Bzadough

🛠 Code & Tools

Mastra: A TypeScript AI Framework from the Gatsby Team — From some of the folks behind the Gatsby React framework comes a new way to build LLM-powered agents that perform various tasks, use knowledge bases, and hold memory. Think a meta-framework like Next.js but for AI agents. GitHub repo.

Mastra

upfetch: An Advanced fetch Client Builder — A TypeScript library to enhance fetch with schema validation, automatic response parsing, and type-safety, while maintaining the familiar fetch API.

Laurent Blondy

Find. Fix. Test: An Intro to App Monitoring with Sentry — Code-level visibility, from pre- to post-release, lets devs find and fix errors and slowdowns and deploy with confidence.

Sentry sponsor

📄 jsPDF 3.0: Client-Side JavaScript PDF Generation — Create tickets, documents, certificates, etc. all on the fly. There’s a live demo on the project’s homepage.

Parallax

Heat.js: A Heat Map Visualization Library — Think the GitHub contributions heat map. No dependencies, small, responsive, and theme-able. There’s a live demo or its GitHub repo.

William Troup

Zoompinch: A Pinch-and-Zoom Experience for Vue 3 Apps — Designed to ‘feel native’ on mobile devices. Demo.

Elya Maurice Conrad

swrv: ‘stale-while-revalidate’ Data Fetching for Vue 3 — Uses a ‘stale-with-revalidate’ cache invalidation strategy (i.e. data is returned from cache immediately but then updated behind the scenes).

Kong

ExcellentExport.js: Export Table Data to Excel or CSV — If your app/page has some data in HTML tables and you’d like to export it to CSV or XLSX without any server involvement, this could help.

Jordi Burgos

Ts.ED 8.5 – Node + TypeScript framework on top of Express.

🖼️ pixelmatch 7.0 – Small, fast pixel-level image comparison library.

dash.js 5.0 – A reference implementation for playback of MPEG DASH.

DOCX 9.2 – Generate .docx / Word files from JavaScript.

ApexCharts 4.5 – Popular JS charting library. (Demos.)

Middy 6.1 – Node.js middleware engine for AWS Lambda.

Size Limit 11.2 – Performance budget tool for JavaScript.

🔈 useSound 5.0 – React hook for playing sound effects.

📰 Classifieds

Learn how to build session-based authentication into a Next.js application, including the sign-in/sign-up pages, and how to protect routes.

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by 1000s of orgs, including Dropbox, Lattice, Bilt Rewards and many more.

Design Meets Development: Amir Shalev shares his unique journey bridging the gap and seamlessly collaborating with developers using Bit.

😰 Is your vehicle data giving you anxiety? Mine too. That’s why I built CarsXE. Now I just have existential dread. Progress! Start for Free Now!

📢  Elsewhere

A quick roundup of some of other interesting updates or useful resources in the broader developer landscape:

The XOR operator, and logic gate, explained. (You can use XOR yourself in JavaScript with the ^ operator.)

Learn Shader Programming with Rick and Morty is a fun and accessible way to learn a bit about shaders and GLSL and, in particular, rendering shapes with shaders.

Beej, author of several popular guides to different programming concepts, has released Beej’s Guide to Git, a great zero-to-expert online resource for using the world’s most popular DVCS.

Most of them don’t apply to JavaScript, but I found this walkthrough of NASA’s “10 rules for software development” quite interesting.

It’s time to go ESM-only

#​723 — February 14, 2025

Read on the Web

JavaScript Weekly

Style Observer: A Library to Observe CSS Property Changes — Lea Verou is a developer who’s easy to admire because whenever she sets out to solve a problem, the results are always fully formed with no cut corners. So it goes with this ‘exhaustively tested’ JS library for observing changes to CSS properties which deftly handles lots of browser quirks. See the project homepage for more. (TIL there’s a .style TLD!)

Lea Verou

💡 Lea has many other projects to check out, including Color.js which similarly nails the whole process of handling and manipulating colors in JS and the browser.

Build Better with AWS, Using Tips and Tools from the Developer Center — Get hands-on with DevOps, Data & ML, and Generative AI. Use any language, level up your skills. Connect with like-minded devs all over the world on AWS Communities. The AWS Developer Center has everything you need in one place. Don’t miss out!

AWS sponsor

Why to Move On to ‘ESM-Only’ — The march to using ES modules has been going on for years, but if you’re still holding out, there’s probably a good reason why? However, while you can maintain packages supporting both ESM and CommonJS, Anthony thinks it’s time to go ‘ESM only’ and explains why.

Anthony Fu

💡 On that topic, Sarah Gooding writes about require(esm) being backported and stable on Node.js 20 which makes the transition even easier to justify.

IN BRIEF:

🤔 Developer industry analyst Kate Holterhoff asks “Is npm enough?” and questions why there are so many attempts to replace or extend npm in the JS package registry space.

📱 The React Native team has a roundup of what happened at the most recent contributor summit. Must read for React Native devs.

The Popover API is now considered a ‘baseline’ browser feature with broad support across all major browsers.

🤖 Reader Ishan Anand has been working on implementing GPT2 (a precursor to OpenAI’s current offerings) entirely in the browser to power some interesting browser-based spreadsheet data processing experiments.

RELEASES:

Node.js v23.8.0 (Current) and Node.js v22.14.0 (LTS)

Node.js v20.18.3 (LTS) – The backporting of import attributes and JSON modules is now stable.

pnpm 10.3 – The fast, efficiency-focused package manager adds a strict-dep-builds option to exit with a non-zero exit code if any dependencies have unreviewed build scripts.

Pixi.js 8.8 – Fast, flexible 2D WebGL renderer.

Astro 5.3, Prettier 3.5, Electron 34.2

📒 Articles & Tutorials

How and Why to Build ‘Copy Code’ Buttons — A commonly encountered way to give readers easier access to source shared on the Web. David Bushell has an interesting followup reflecting on his own experiences implementing the same feature.

Salma Alam-Naylor

The RegExp Escaping ECMAScript Proposal — RegExp.escape() is a function to create an escaped version of a supplied text that matches itself when used as, or in, a regular expression. Axel has also written an implementation in plain JS to get a feel for how it works.

Dr. Axel Rauschmayer

Build a Next.js Sign-Up Form with React Hook Form — Features progressive enhancement, dynamic validation, and secure password handling with Argon2.

Clerk sponsor

How to Start a React Project in 2025 — While there are many ways to start a React project, Robin examines the pros and cons of a few popular approaches.

Robin Wieruch

Learning How to Build Modern Web Extensions — It’s easy to run into outdated docs when building extensions. Lucky for us, Hui has been through the process and shares some tips.

Hui Jing

Testing 10 JavaScript Frameworks on Their HTML Defaults — Using a JavaScript framework is now ‘the way’ for many Web site developers, but how do the popular options fare at producing valid, error free HTML?

Jens Oliver Meiert

📄 Using Intl.DurationFormat for Localized Durations Raymond Camden

📄 How to Refactor Code with GitHub Copilot Anthony Grutta (GitHub)

📄 Using RxDB as a Database in a Vue.js Application RxDB

📄 Supporting Pasting Files into the Browser Fileber

🛠 Code & Tools

Ohm: A Parsing Toolkit for JavaScript and TypeScript — It’s been a few years since we covered this project and it’s come along a lot. It’s a library for building PEG-based parsers you can use in interpreter, compilers, analysis tools, etc. and you can even play with its grammar online.

Warth, Dubroy, et al.

Start Selling to Enterprise Faster with WorkOS — Add SSO, SCIM, and RBAC to your B2B SaaS app in minutes—not months.

WorkOS sponsor

Human Regex: Human-Friendly Regular Expression Builder with English Syntax — After 8 years of Perl, regexes are my friend, but most developers aren’t big fans? This library offers a natural, fluent approach. Magic Regexp and Super Expressive are alternatives to consider.

Ridwan Ajibola

Svader: Create GPU-Rendered Svelte ComponentsThe examples are a good way to get a feel for what this offers.

Holger Dal Mogensen

web-worker 1.5: Consistent Web Workers for the Browser and Node — Want to publish npm modules that use Web Workers and that work in both Node and client-side? In Node, it works as a web-compatible Worker implementation atop worker_threads. In the browser, it’s an alias for Worker.

Jason Miller

The React Data Table I Always Wanted — A look into a particularly fast and clean shadcn/ui-based data table component (GitHub repo). See a live demo.

Maximilian Kaske

📰 Classifieds

Telling the Bit story: Celebrating 10 Years of Composability. Ran Mizrahi reveals how Bit shifted from development stagnation to exponential progress using Composability.

🤯 Pfft, vehicle data is a joke without CarsXE. API goes brrrrr. VIN decoding, plate lookup, market value reports. Get Serious!

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by 1000s of orgs, including Lattice, Bilt Rewards and many more.

Other PDF SDKs promise a lot — then break at scale. Nutrient’s SDK doesn’t, handling billion-page workloads for over 10k devs — meaning you don’t have to debug PDFs.

Kaluma 1.2 – Tiny JavaScript runtime for the RP2040 (Raspberry Pi Pico).

bcrypt.js 3.0 – Optimized bcrypt in pure JS. Even in the browser.

Jasmine 5.6 – Testing framework for browsers & Node.

🤖 Midscene.js 0.11 – Let AI be your browser operator.

🔠 And a little typography bonus

GitHub Extends Its Monaspace Font FamilyMonaspace is a fantastic set of monospaced fonts from GitHub targeted at coding use cases. Its new v1.2 release ups the ante by including Nerd Fonts support and symbols, new box drawing glyphs, characters, character variants, ligatures, and more.

GitHub

Oracle dabbles in some JavaScript comedy

#​722 — February 7, 2025

Read on the Web

JavaScript Weekly

Oracle Claims ‘JavaScript’ Isn’t a Generic Term, and More — In this ‘motion to dismiss’ Oracle has responded to Deno’s attempt to prove Oracle shouldn’t hold the JavaScript™ trademark with the argument that “relevant consumers do not perceive JAVASCRIPT as a generic term” (does Oracle only consider people who give it money to be relevant?) among other comedic insights.

Ryan Dahl

There Are a Lot of Ways to Break Up Long Tasks in JavaScript — Due to how browsers and the event loop work, letting a single task hog the main thread is a quick way to freeze up your site’s UI. Alex explains the problem and uses a simple example to walk through the pros and cons of different solutions from basic use of setTimeout() to requestAnimationFrame(), channel messaging, and Web Workers.

Alex MacArthur

Debugging Shopping Cart Issues Faster — Vue/Nuxt devs: Get full insight into your shopping cart errors! Capture Pinia State wherever errors occur. Learn how on the Sentry blog ».

Sentry sponsor

▶  Angular: The Documentary — From the creators of the fantastic ▶️ Node.js and ▶️ Ruby on Rails documentaries comes this fresh story covering the ups and downs of the popular Angular (née AngularJS) framework starring a cast of veritable JavaScript luminaries.

Honeypot

IN BRIEF:

Chrome is shipping a new moveBefore DOM method for moving elements around a DOM tree without resetting the element’s state. React is already working on using it.

Would you like to write PHP inside Vue or React components? You might if you’re a Laravel user, and Aaron Francis shows off a way to do it. It’s not open source yet, but his demo is pretty cool.

Nx user? Nx has a whole new experience for Nx workspaces that’s faster, more efficient, and solves a variety of issues with TypeScript editor support for large monorepos.

Josh Goldberg explains the differences between ESLint and TypeScript, beyond the obvious.

RELEASES:

ES Module Shims 2.0 – Polyfills import maps and other ES Modules features on top of the baseline native ESM support in browsers.

pnpm 10.2 – The alternative, efficient package manager.

Turborepo 2.4

📒 Articles & Tutorials

Which Rich Text Editor Framework Should You Choose in 2025? — A round-up of actively developed WYSIWYG editor options you can drop into your apps along with the pros and cons of each.

Dexemple and Rowny (Liveblocks)

How to Publish ESM-Based npm Packages with TypeScript — Now that you can use the ES modules (almost) everywhere, it’s worth understanding how to package them up for use with npm. Axel digs into everything you need to know and shares some useful tools too.

Dr. Axel Rauschmayer

Locate and Resolve JavaScript Errors Instantly with Datadog — Troubleshoot frontend JavaScript errors faster with frontend to backend correlation and automatic error tracking.

Datadog sponsor

An Introduction to WebAssembly in Deno — How to build a simple WASM module and use it to call Rust code from JavaScript.

Jiang and Sherret (Deno)

Vite with TypeScript — If you’ve created a JavaScript-based React project with Vite and want to get on the TypeScript train, here are the basic steps.

Robin Wieruch

📄 Building a Playful Stop-Motion Crayon Cursor in p5.js Jorge Toloza

📄 Keep Your Node Apps Secure with npx is-my-node-vulnerable Trevor I. Lasn

📄 Read-Only Accessibility in TypeScript – How to use the readonly keyword. Dr. Axel Rauschmayer

📄 How to Set WebGL Shader Colors with CSS and JavaScript Nicolas Mattia

🛠 Code & Tools

RE2JS 1.0: Linear Time Matching for Regular Expressions — RE2 is a regular expression engine built by Google designed to operate in time proportional to the size of the input, in order to avoid so-called ‘ReDoS’ problems caused by backtracking, and this brings such protection to the browser too.

Oleksii Vasyliev

Fuse.js 7.1: Lightweight Fuzzy-Search with No Dependencies — Want a simple search feature without a dedicated backend? This mature solution could help. Here’s a live demo.

Kiro Risk

Start Selling to Enterprise Faster with WorkOS — Add SSO, SCIM, and RBAC to your B2B SaaS app in minutes—not months.

WorkOS sponsor

🎨 tinygradient 2.0: A Gradient Generation Library — Generate color gradients with an unlimited number of color stops and steps in JavaScript to use as you wish. Supports named colors, hex colors, RGV, HSVa, and RGB CSS strings. GitHub repo.

Damien Sorel

parse-duration 2.0: Convert a Human Readable Duration to Milliseconds — You might wonder why a library that converts 1hr 20mins into 4800000 needs a version 2. Well, it now supports more units (mo, mth, microsec, and nanosec), has moved to ESM, and supports locales.

Jake Rosoman

Waveform Renderer — Quickly create a visual waveform from a MP3 or WAV — you can also edit the look. Think of it as a lighter alternative to Wavesurfer.js. GitHub repo.

Andres Felipe Alarcon

📰 Classifieds

🎹 STRICH: Add blazing fast and reliable 1D/2D Barcode Scanning to your web apps. Free demo app and 30-day trial available.

Meticulous automatically creates and maintains an E2E UI test suite with zero developer effort. Relied on by Lattice, Bilt Rewards, etc.

🌎 Get your FREE remote pass to 50% of the talks at the 2025 JS Nation conference. Invite 3 friends to unlock full access — including talks from Evan You, Thomas Steiner, and 50+ speakers.

Meet Harmony: An open source library for composing consistent and highly performant platforms from independent business features.

🍪 CookieConsent 3.1 – A lightweight, pure JS, GDPR-compliant cookie consent mechanism with which to annoy all your users meet regulatory requirements.

Happy DOM 17.0 – Cross-runtime JS implementation of a web browser sans UI. Now supports ES modules.

remove-unused-vars 0.0.4 – An experimental new tool for removing unused variables from code.

get-value 4.0 – Use property paths (a.b.c) get a nested value from an object.

mp4-muxer 5.2 – MP4 multiplexer in pure TypeScript with support for the WebCodecs API, video and audio.

🗺️ react-map-gl 8.0 – React friendly API wrapper around MapboxGL JS. (Demo.)

🗓️ Schedule-X 2.17 – Material Design event calendar and date picker.

Wasp 0.16Wasp is a Rails-like framework using Node, React & Prisma.

web-worker 1.5 – Consistent Web Workers in browser and Node.

Js_of_ocaml (jsoo) 6.0 – An OCaml to JavaScript compiler.

RxDB 16.5 – Offline-first, reactive database for JS apps.

🎵 A quick musical number..

A Protracker Module Player in Pure JavaScript — I’m a sucker for 90s tracker music, JavaScript experiments, and cool Web experiences, and this has all three. If you’re not familiar with tracker music, it’s a way to write music on a grid which triggers the playing of samples. This code manages to parse and play a Protracker file in pure JavaScript. (Note: The image above is of the original Protracker app, this experiment is more minimal and about the code.)

srtuss