#​758 — October 24, 2025

Read on the Web

Together with  Fusion Auth

JavaScript Weekly

Vitest 4.0 Released: The Vite-Native Testing Framework — The Vite-powered, Jest-compatible testing framework introduces visual regression testing, makes its ‘Browser Mode’ stable (for running tests in a browser directly), adds Playwright Traces support, and more. Still unsure? You can compare it with other test runners here.

VoidZero and Contributors

💡 Starting from Angular 21, Vitest will become Angular's default test runner, replacing Karma and Jasmine.

The Most Customizable Auth for JavaScript Developers — See how FusionAuth gives you total customization freedom without building from scratch. Create fully branded login experiences that integrate with any JS stack. Downloadable and self-hostable. Watch the free on-demand webinar.

FusionAuth sponsor

Next.js 16 Released — Launched alongside this week’s Next.js Conf (you can ▶️ watch the livestream here), the popular React framework gains explicit caching components, an MCP server for AI-assisted debugging, both Turbopack and React Compiler support go stable, and more.

Lai, Story, Markbåge, and Neutkens

▶  The Nordic.js 2025 Talk VideosNordic.js took place earlier this month and they’ve just shared the videos of a fantastic set of talks. Some highlights include Christoph Porteneuve talking about ES2026 and ES2027, Kyle Simpson on passkeys, and Sara Vieira diving into writing an emulator in JavaScript.

Nordic.js

IN BRIEF:

RELEASES:

📖  Articles and Videos

Importing vs Fetching JSON — You’ve used import to load code, but what about loading JSON? Import attributes, now broadly supported across browsers, make it possible, but is there any point instead of using fetch? Jake investigates.

Jake Archibald

Rethinking Async Loops in JavaScript — Awaiting in loops runs your async operations one-by-one instead of all at once. And using map() with await? It doesn’t even wait. Matt breaks down some patterns that actually work, and why forEach with async is easy to get wrong.

Matt Smith

Build Your Apps Faster with a Ready-to-Use Backend — Forget about DevOps headaches. OneEntry gives frontend devs a ready-to-use cloud backend with built-in database, intuitive admin panel, and flexible data models that adapt to any project.

OneEntry sponsor

Building CLIs with Ace: A Bookmarks App in Node and BunAce (GitHub repo) is a CLI app framework built by the AdonisJS folks that you might not have encountered before.

Harminder Virk

Solving NYT's Pips Puzzle with TypeScript — I love doing the New York Times’ various puzzles, though I’m not a huge fan of their newest one: Pips. Nonetheless, it’s an interesting puzzle to consider how to solve algorithmically.

Andrew Healey

📄 React and Remix Choose Different Futures Brendan McLoughlin

📄 One Year with Next.js App Router — Why We're Moving On Paper Clover

📄 4 Unconventional Ways to Cast in TypeScript PolyWolf

🛠 Code & Tools

Ky 1.13: Tiny, Elegant Fetch-Based HTTP Client for Browsers — Makes the Fetch API tidier to use (as shown here), and is also a good modern alternative for Axios. v1.13 adds a ‘context’ feature making it easier to create reusable API clients that can accept custom parameters.

Sindre Sorhus

JustGage 2.0: Draw and Animate Dashboard-Style SVG Gauges — A big release for a project started over a decade ago, now brought into the modern age and using native SVG APIs. There's a playground that lets you play with the options and gauge styles.

Bojan Djuricic

Wallaby v3: Smarter Testing with Result Streaming & Cached Results — New Wallaby v3 streams live results, uses cached execution for instant startup, and prioritizes active files, making JS & TS test feedback faster and smarter than ever.

Wallaby Team sponsor

Solito 5.0: A Way to Use React Native with Next.jsSolito is a wrapper around React Navigation and Next.js that lets you share navigation code when building cross-platform apps. v5.0 supports Next.js 16 and Expo 54, and also drops React Native Web as a dependency.

Fernando Rojo

[.. 🔎..] MaxIntervalCover: Compute the Optimal Subset of Non-Overlapping Intervals

Robert Eisele

  • p-limit 7.2 – Run multiple promise-returning and async functions with limited concurrency. Now .map() can accept an iterable, not just an array.

  • Repomix 1.8 – Pack an entire repository into a single, LLM-friendly file. Now with official plugins for Claude Code.

  • ESLint Markdown Language Plugin 7.5 – Lint JS/TSX code blocks in Markdown documents.

📰 Classifieds

🕳️ 🥊 Hiring Now: Join Holepunch to build the peer-to-peer internet. No servers. Open source, privacy-first. Shape the future of apps. Remote worldwide.


Meticulous writes and maintains your E2E UI tests. Built for high-velocity teams who can’t afford flakes. Relied on by Notion, Dropbox, Wiz, Lattice, etc.

📢  Elsewhere in the ecosystem

A roundup of other interesting stories from the broader landscape: