#740 — June 13, 2025
Together with
JavaScript Weekly
The State of React and the Community in 2025 — React continues to be a major dependency in the JavaScript world but recent innovations have led to much discussion about how it should move forward. Redux maintainer Mark Erikson gives an overview of React’s development over time, what led to some of its innovations, and dispels some ‘FUD and confusion’ about where it’s headed.
Mark Erikson
💡 While we cover the biggest React stories in JavaScript Weekly, React Status is our weekly newsletter dedicated to React, so check it out for more depth.
How Notion Cut Typing Latency By 15% — Stop guessing why your web app is slow. Palette’s production JS profiler tells you why, down to the line of code. Get started for free today.
Palette sponsor
Announcing Oxlint 1.0: The Super Fast Linter — First appearing just 18 months ago, Oxlint has made an impact by being an incredibly fast Rust-powered linter for JavaScript and TypeScript, boasting a 50~100x performance improvement over ESLint while still having support for hundreds of its rules. Now, it’s gone stable.
Boshen Chen and Cameron Clark
pnpm 10.12 Introduces an Experimental Global Virtual Store — pnpm has long been prized for its speed and efficiency over npm
. v10.12 takes things further introducing a ‘global virtual store’ that node_modules
symlinks to, enabling projects to share dependencies without them being installed numerous times.
Sarah Gooding (Socket)
IN BRIEF:
Surfin’ Safari? Apple’s WWDC25 event this week saw numerous developments that aren’t ‘liquid glass’ related, including a look at what’s new in Safari 26 (beta) including support for pattern modifiers in RegExp
objects.
A writeup of a vulnerability found in OpenPGP.js.
Matteo Collina gives us a public service announcement around the end-of-life of some recent Node.js versions and some tips on upgrading to v22.
Gleam is an easy to read/write language targeting both Erlang and JS runtimes. The big news is that Gleam compiled to JS is now 30% faster.
RELEASES:
H3 v2 Beta – Cross-runtime Web standards focused HTTP server framework.
Node.js v24.2 (Current) – import.meta.main
is a new boolean value available in ES modules that tells you if the current module was the entry point of the current process.
Visual Studio Code May 2025 – Big enhancements to MCP support, but VS Code extensions can now also use ES modules.
Deno 2.3.6, Rollup v4.43, Jasmine 5.8, Vue DevTools v7 for Firefox
📖 Articles and Videos
Suppressions of Suppressions — If you’re using a linter to keep your code clean, you may have silenced rules that feel too strict or irrelevant. But those suppressions can bury serious bugs. Dan Abramov argues for adding a rule to forbid disabling your most critical checks.
Dan Abramov
How JavaScript Was Written Back in the Day — It’s not the earliest JavaScript, but Trevor looks back at code written in the 2006-2015 pre-ES6 era.
Trevor I. Lasn
The Only Test Runner Fully Integrated with AI Agents — Wallaby upgrades your AI agent to an expert debugging partner with runtime data, coverage, execution paths, runtime dependencies and real-time insights.
Wallaby Team sponsor
Native Hot Module Reloading in Node via Module Hooks — A clever use of module hooks to implement ‘hot module’ functionality natively and efficiently.
Immaculata
📺 Don’t Use JSON.parse
& JSON.stringify
– Jack points out some of these functions’ shortcomings and possible workarounds. Jack Herrington
📄 How ESLint Language Plugins Enhance DSL Usability Nicholas C. Zakas
📄 Things to Avoid in JavaScript – A reminder of some basics. Suren Enfiajyan
📄 Angular 20 Might Seem Boring — 6 Reasons It’s Not Yan Sun
🛠 Code & Tools
npmgraph: A Tool to Visualize npm Module Dependencies — Give this Web-based tool one or more npm package names (or even your package.json
file) and you can see a visualization of the dependency graphs for those packages, including where they intersect. Packages can be colored by various criteria (such as number of maintainers) and you can download SVGs of the graphs.
Kieffer, Brigante, et al.
Jest 30: Faster, Leaner, and Better JS Testing — A ‘noticeably faster’ release of this popular testing framework, adding improved ESM and TypeScript support, performance improvements and more. Upgrade docs here.
Zaytsev & Nakazawa
Sync Clerk User Data to Supabase in Real Time with Webhooks — Stop polling and start syncing. This guide shows how to stream Clerk user updates into Supabase with ease.
Clerk sponsor
🍊 Orange ORM: An Active Record ORM for JavaScript and TypeScript — A powerful ORM for Node, Bun and Deno, supporting both TypeScript and JavaScript, and both CommonJS and ESM. It follows an Active Record-style querying approach, is well documented, and certainly worth a look if working with most of the popular SQL databases.
Lars-Erik Roald
Vue Equipment: A Toolkit for Nuxt and Vue.js — A collection of ready-to-use plugins and composables for building modern web apps with both Vue and Nuxt. Explained here.
Magic as a Service
🌓 DarkModeJS 2.0: A Utility Package for Managing Dark Mode — Uses the matchMedia
API and the prefers-color-scheme
media query to fire functions whenever a user is in dark mode (or changes the mode).
Assortment
🕹️ Odyc.js: A JS Library for Pixel Games/Stories — Has a bit of a 8-bit Game Boy Color vibe to it. You can create games, and try some examples, in this online playground.
Charles Cailleteau
🤖 Midscene.js 0.18 – Let AI and JavaScript be your browser operator.
Acorn 8.15 – Small, fast, JavaScript-based JavaScript parser.
xo 1.1 – Opinionated but configurable ESLint wrapper.
Mocha 11.6 – Test framework for Node & browsers.
JsBarcode 3.12 – Barcode generation library.
📰 Classifieds
“Change is just a merge away” - ✨ Automate code reviews with Infinitcode AI: Try free now.
🎹 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 Dropbox, Wiz, Lattice, Bilt Rewards, etc.
👀 Fun, fun, fun..
Here’s a selection of things from the broader ecosystem this week:
The billionth repo on GitHub (be warned, it has a mildly NSFW name) has just been created to much celebration.
Shopify explains its work on making import maps easier to use, including work on shims, the HTML spec, and encouraging browser developers to implement improvements.
GitHub’s remote MCP server is now in public preview. It enables AI agents and tools to access live GitHub context and work with various concepts like issues and pull requests.
You may recall the TypeScript team is porting the TypeScript compiler to Go to take advantage of both native compilation speedups and Go’s concurrency features. John Reilly and Ashley Claymore explain why Go is a ‘pragmatic choice’ for this project.
Published by Cooperpress and edited by Peter Cooper
‘JavaScript’ is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle.
#740 — June 13, 2025
Together with
JavaScript Weekly
The State of React and the Community in 2025 — React continues to be a major dependency in the JavaScript world but recent innovations have led to much discussion about how it should move forward. Redux maintainer Mark Erikson gives an overview of React’s development over time, what led to some of its innovations, and dispels some ‘FUD and confusion’ about where it’s headed.
Mark Erikson
💡 While we cover the biggest React stories in JavaScript Weekly, React Status is our weekly newsletter dedicated to React, so check it out for more depth.
How Notion Cut Typing Latency By 15% — Stop guessing why your web app is slow. Palette’s production JS profiler tells you why, down to the line of code. Get started for free today.
Palette sponsor
Announcing Oxlint 1.0: The Super Fast Linter — First appearing just 18 months ago, Oxlint has made an impact by being an incredibly fast Rust-powered linter for JavaScript and TypeScript, boasting a 50~100x performance improvement over ESLint while still having support for hundreds of its rules. Now, it’s gone stable.
Boshen Chen and Cameron Clark
pnpm 10.12 Introduces an Experimental Global Virtual Store — pnpm has long been prized for its speed and efficiency over npm
. v10.12 takes things further introducing a ‘global virtual store’ that node_modules
symlinks to, enabling projects to share dependencies without them being installed numerous times.
Sarah Gooding (Socket)
IN BRIEF:
Surfin’ Safari? Apple’s WWDC25 event this week saw numerous developments that aren’t ‘liquid glass’ related, including a look at what’s new in Safari 26 (beta) including support for pattern modifiers in RegExp
objects.
A writeup of a vulnerability found in OpenPGP.js.
Matteo Collina gives us a public service announcement around the end-of-life of some recent Node.js versions and some tips on upgrading to v22.
Gleam is an easy to read/write language targeting both Erlang and JS runtimes. The big news is that Gleam compiled to JS is now 30% faster.
RELEASES:
H3 v2 Beta – Cross-runtime Web standards focused HTTP server framework.
Node.js v24.2 (Current) – import.meta.main
is a new boolean value available in ES modules that tells you if the current module was the entry point of the current process.
Visual Studio Code May 2025 – Big enhancements to MCP support, but VS Code extensions can now also use ES modules.
Deno 2.3.6, Rollup v4.43, Jasmine 5.8, Vue DevTools v7 for Firefox
📖 Articles and Videos
Suppressions of Suppressions — If you’re using a linter to keep your code clean, you may have silenced rules that feel too strict or irrelevant. But those suppressions can bury serious bugs. Dan Abramov argues for adding a rule to forbid disabling your most critical checks.
Dan Abramov
How JavaScript Was Written Back in the Day — It’s not the earliest JavaScript, but Trevor looks back at code written in the 2006-2015 pre-ES6 era.
Trevor I. Lasn
The Only Test Runner Fully Integrated with AI Agents — Wallaby upgrades your AI agent to an expert debugging partner with runtime data, coverage, execution paths, runtime dependencies and real-time insights.
Wallaby Team sponsor
Native Hot Module Reloading in Node via Module Hooks — A clever use of module hooks to implement ‘hot module’ functionality natively and efficiently.
Immaculata
📺 Don’t Use JSON.parse
& JSON.stringify
– Jack points out some of these functions’ shortcomings and possible workarounds. Jack Herrington
📄 How ESLint Language Plugins Enhance DSL Usability Nicholas C. Zakas
📄 Things to Avoid in JavaScript – A reminder of some basics. Suren Enfiajyan
📄 Angular 20 Might Seem Boring — 6 Reasons It’s Not Yan Sun
🛠 Code & Tools
npmgraph: A Tool to Visualize npm Module Dependencies — Give this Web-based tool one or more npm package names (or even your package.json
file) and you can see a visualization of the dependency graphs for those packages, including where they intersect. Packages can be colored by various criteria (such as number of maintainers) and you can download SVGs of the graphs.
Kieffer, Brigante, et al.
Jest 30: Faster, Leaner, and Better JS Testing — A ‘noticeably faster’ release of this popular testing framework, adding improved ESM and TypeScript support, performance improvements and more. Upgrade docs here.
Zaytsev & Nakazawa
Sync Clerk User Data to Supabase in Real Time with Webhooks — Stop polling and start syncing. This guide shows how to stream Clerk user updates into Supabase with ease.
Clerk sponsor
🍊 Orange ORM: An Active Record ORM for JavaScript and TypeScript — A powerful ORM for Node, Bun and Deno, supporting both TypeScript and JavaScript, and both CommonJS and ESM. It follows an Active Record-style querying approach, is well documented, and certainly worth a look if working with most of the popular SQL databases.
Lars-Erik Roald
Vue Equipment: A Toolkit for Nuxt and Vue.js — A collection of ready-to-use plugins and composables for building modern web apps with both Vue and Nuxt. Explained here.
Magic as a Service
🌓 DarkModeJS 2.0: A Utility Package for Managing Dark Mode — Uses the matchMedia
API and the prefers-color-scheme
media query to fire functions whenever a user is in dark mode (or changes the mode).
Assortment
🕹️ Odyc.js: A JS Library for Pixel Games/Stories — Has a bit of a 8-bit Game Boy Color vibe to it. You can create games, and try some examples, in this online playground.
Charles Cailleteau
🤖 Midscene.js 0.18 – Let AI and JavaScript be your browser operator.
Acorn 8.15 – Small, fast, JavaScript-based JavaScript parser.
xo 1.1 – Opinionated but configurable ESLint wrapper.
Mocha 11.6 – Test framework for Node & browsers.
JsBarcode 3.12 – Barcode generation library.
📰 Classifieds
“Change is just a merge away” - ✨ Automate code reviews with Infinitcode AI: Try free now.
🎹 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 Dropbox, Wiz, Lattice, Bilt Rewards, etc.
👀 Fun, fun, fun..
Here’s a selection of things from the broader ecosystem this week:
The billionth repo on GitHub (be warned, it has a mildly NSFW name) has just been created to much celebration.
Shopify explains its work on making import maps easier to use, including work on shims, the HTML spec, and encouraging browser developers to implement improvements.
GitHub’s remote MCP server is now in public preview. It enables AI agents and tools to access live GitHub context and work with various concepts like issues and pull requests.
You may recall the TypeScript team is porting the TypeScript compiler to Go to take advantage of both native compilation speedups and Go’s concurrency features. John Reilly and Ashley Claymore explain why Go is a ‘pragmatic choice’ for this project.
Published by Cooperpress and edited by Peter Cooper
‘JavaScript’ is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle.
发布者