🗓️ As it's the last issue of 2025, a reminder that JavaScript Weekly moves to Tuesdays in January. See you again on January 6, 2026! __ Your editor, Peter Cooper
JavaScript Weekly
It's the final issue of the year, so we're going to cover a few new items, then look back at the top links of 2025 (based on reader engagement) and recap what happened in the ecosystem month-by-month this year.
The JavaScript Bundler Grand Prix — Bundlers now sit at the heart of many JavaScript workflows and are sometimes even integrated into runtimes (e.g. Bun’s). This piece surveys the landscape and argues the speed wars are mostly over, with the real battle shifting to artifact size and the code that actually ships to users.
1.A Perplexing JavaScript Parsing Puzzle — Hillel's deceptively simple puzzle – just 14 bytes of code – attracted by far the most attention this year. Despite working with JavaScript for most of its lifespan, I got it wrong!
4.How the Web is Using JavaScript — The JavaScript section of this year's HTTP Archive Web Almanac report went into depth on how much JS we’re using (and failing to use), the popularity of TypeScript, Web Worker usage, and.. yes, jQuery still dominates!
🎄 Give yourself the gift of time this Christmas. Let Meticulous observe your app and auto-build continuously evolving E2E UI tests while you celebrate. Book a call now.
Trigger.dev handles queues, retries, and long-running tasks so you can build production-ready agents and TypeScript workflows reliably at scale.
🎄 This is the final issue of JavaScript Weekly for 2025 – thanks for reading, submitting links, and supporting us! We're going to return on Tuesday, January 6, 2026. See you then! And, if we're really lucky, we might catch up on our inbox packed with submissions by then too... ;-)
Useful Patterns for Building HTML Tools — In many situations, you don’t need a full-on framework to build useful tools; just HTML, JavaScript and CSS in a single file will do the job fine. Simon’s become a bit of an expert by rolling out many such tools using LLMs, and shares his process and practices here. More please!
Simon Willison
Why Are the Top AI Companies Choosing SpreadJS? — Because SpreadJS brings a familiar Excel-like UI to JavaScript web apps. Trusted by leading AI innovators and organizations, it empowers devs to build finance, analytics, and more apps with Excel I/O, 500+ calc functions, charts, & more. View demos!
SpreadJS From MESCIUS sponsor
Deno 2.6 Released — The popular alternative runtime introduces a new npx-like tool called dx to run binaries from npm and JSR packages, adds a deno audit tool for identifying vulnerabilities in dependencies, adds more granular control over runtime permissions, implements source phase imports, and more.
🔒 GitHub shares an update on its npm token policies. All npm classic tokens have been revoked this week, and there's now a new process for getting a two hour session token or a granular access token instead.
A Proposal for Making Complex Web Apps Faster — From Microsoft comes an early-stage look at a proposal for a new Delayed Message Timing API to help deal with the slowdowns that multiple parallel contexts (iframes, threads, multiple windows, etc) can introduce. Feedback is being sought.
Building a Tiny 2D Physics Engine in JavaScript — A lovely, and rather old-school style post about building a simple physics engine from scratch in JavaScript then golfing it down to just 2KB of source as seen on its homepage (where there's a demo too).
💡 You don't need to be a Remix user to benefit from this code, either. For example, here's the code to the store's neat 'glitchy' 404 page which you could adapt to use elsewhere.
Toastflow: A Toast Notifications Library for Vue 3 — A really nifty web-based playground for playing around with toast notifications. I wish more projects had things like this. Toastflow is technically framework agnostic, but the only renderer so far is for Vue 3. GitHub repo.
Inertia 2.3 – Build single-page React, Vue and Svelte apps using classic server-side routing and controllers (ideally for integrating with server-side frameworks like Django, Rails, Laravel, etc.)
Some other interesting tidbits in the broader landscape:
📺 Earlier this year, Dimitri Mitropoulos wowed us by running Doom inside TypeScript's type system – now he's back ▶️ showing off TypeSlayer, a tool for diagnosing and fixing TypeScript performance problems with some fantastic 3D visualizations. It looks great, but isn't public yet.
Get up to speed with the latest developments in the world of CSS this year with the Chrome team's CSS Wrapped 2025.
🗳️ Rick Viscomi of the Google Chrome team has put out a call for you to vote for the web features you want to see in the future. This is a separate effort from the recent Interop 2025 voting process and votes will accumulate over the long term.
Over thirty years, JavaScript has cemented its place at the heart of the Web platform, and more broadly in desktop apps, operating systems (e.g. Windows' use of React Native), mobile apps, and even on microcontrollers.
P.S. Enjoy finding the 1995 references in our special birthday montage above.
How to Ship Enterprise Auth, Identity, and Security Features — Enterprise customers demand SSO, SCIM, RBAC, and audit logs that meet strict compliance standards. WorkOS offers developers a platform for shipping these features fast with a suite of easy-to-integrate APIs and a portal for streamlined customer onboarding.
WorkOS sponsor
Progress on TypeScript 7 — It’s been a quiet few months for the TypeScript project publicly, but behind the scenes they’ve been working hard on both TypeScript 6.0 and 7.0. v6.0 is going to be the final JavaScript-based release and act as a stepping stone to the native Go port (v7.0) which is already shaping up to be some 10x faster.
Daniel Rosenwasser (Microsoft)
Anthropic Acquires the Bun JavaScript Runtime — It’s been an intense few years for Bun, the JavaScriptCore-powered JS/TS runtime. Anthropic, best known for its Claude LLMs, is betting on Bun for powering its Claude Code agentic development tool and more. Jarred tells the full Bun story here and reassures us Bun will remain open and become better than ever as a result.
The Nuances of JavaScript Typing using JSDoc — If you prefer JavaScript over TypeScript (and I know there are plenty of you!) but still want some of the benefit of types, JSDoc provides an interesting alternative.
🤖TanStack AI: A Unified Interface for LLM/AI Providers — The latest member of the rapidly growing TanStack family of libraries offers a unified, framework agnostic interface to multiple AI APIs, complete with streaming, and Zod schema inference. Currently in alpha.GitHub repo.
TanStack
💡 Another newcomer is TanStack Pacer which offers framework-agnostic debouncing, throttling, rate limiting, queuing, and batching utilities.
Remend: Automatic Recovery of Broken Streaming Markdown — Bring intelligent incomplete Markdown handling to your app, particularly useful if working with LLMs, say. It’s extracted from Vercel’s Streamdown library, a drop-in replacement for react-markdown, designed for AI-powered streaming.
Hayden Bleasel (Vercel)
Tinybench 6.0: A Tiny, Simple Benchmarking Library — Uses whatever precise timing capabilities are available (e.g. process.hrtime or performance.now). You can then benchmark whatever functions you want, specify how long or how many times to benchmark for, and get a variety of stats in return – it runs across multiple runtimes. GitHub repo.
Tinylibs
Ruby2JS: A Ruby to JavaScript Transpiler — A transpiler aimed at keeping the resulting code looking ‘hand crafted’ rather than merely transpiled. Play with the live demo on the home page to get a feel for it.
Sam Ruby and Jared White
Chokidar 5.0 – Efficient cross-platform file watching library for Node.js.
Prisma 7.1 – Popular ORM for Node.js and TypeScript.
Some other interesting tidbits in the broader landscape:
🤖 Colin Eberhardt looks into using GitHub's Spec Kit for building a modern Svelte app using Spec-Driven Development (SDD) where the human and AI agents work in tandem.
DepX's badge generator gives you a graphical badge you can include in your README or on your project site to show how many (or how few!) dependencies your npm package has.
Over 150 Algorithms and Data Structures Demonstrated in JS — Examples of many common algorithms (e.g. bit manipulation, Pascal’s triangle, Hamming distance) and data structures (e.g. linked lists, tries, graphs) with explanations. Available in eighteen other written languages too.
Oleksii Trekhleb et al.
TypeScript: From First Steps to Professional — Learn TypeScript step-by-step with Anjana Vakil, and gain confidence writing code you can trust! Add strong types, reuse interfaces, and apply type safety throughout your app with hands-on projects converting JavaScript to TypeScript.
Tanner Linsley tells the tale of two years running TanStack (well known for TanStack Start, Query, and Form, among others) as an open source organization.
There's a variety of Black Friday deals offered by well-known members of the frontend community on courses and similar resources.
Node.js 24 is now a supported runtime on AWS Lambda (as nodejs24.x) and won't be deprecated until April 30, 2028.
RELEASES:
Prettier 3.7 – The popular opinionated code formatter.
pnpm 10.24 – The fast, efficiency-focused package manager gets even faster with adaptive network concurrency.
Bun 1.3.3 – The popular JS runtime adds CompressionStream and DecompressionStream, upgrades to SQLite 3.51.0, and other minor enhancements.
Playwright 1.57 – Microsoft's browser/Web automation library now has a 'speedboard' tab in its HTML reports to show you your tests sorted by slowness. It also switches from Chromium to Chrome for Testing.
The Performance Inequality Gap in 2026 — Esteemed browser and Web standards expert Alex Russell looks at the state of client-side Web performance, what sort of bandwidth you should be taking into account, what devices people are using, and warns against ever-growing JavaScript bundle sizes. A lot of data here.
Alex Russell
Why Use React? (On the Frontend) — Jeremy asks some big, potentially uncomfortable questions, but notes how React’s modern server-side powers are a real boon, while questioning React’s role on the frontend, where Preact might well suit you better.
How Vercel Built Its First Mobile App with React Native — Vercel has built an iOS app for its v0 AI-powered app development tool using React Native and Expo. This is a detailed look at how they tackled certain issues to make the UX smooth and responsive.
FullCalendar: A Full Sized JavaScript Calendar Control — Get a Google Calendar-style experience in your own apps. Has connectors for React, Vue and Angular, but can be used with plain JavaScript too. The base version is MIT licensed, but there’s a commercial version too with extra features.
Adam Shaw
Better Auth: A Comprehensive Authentication Framework for TypeScript — A framework agnostic authentication and authorization framework that provides email and password-based auth, OAuth and social sign-in, account and session management, 2FA, and more. v1.4 was just released with stateless/database-free session management support.
🦃 This Thanksgiving, skip writing tests. Meticulous observes your app and auto-builds continuously evolving E2E UI tests while you feast. Book a call now.
🏎️ Depot's new GitHub Actions Analytics: see job durations, failure rates, CPU/memory usage, and performance trends across all your repos at a glance.
TSDiagram: Diagrams as Code with TypeScript — Draft diagrams quickly with TypeScript. Define your data models through top-level type aliases and interfaces and it automatically lays out the nodes in an efficient way. GitHub repo.
Andrei Neculaesei
📢 Elsewhere in the ecosystem
Some other interesting tidbits in the broader landscape:
⚠️ GitHub reports secrets/tokens leaked in Git repos to the service providers so they can be revoked, but now it's reporting secrets in unlisted GitHub Gist posts too (so be careful when using it as a 'private' pastebin).
The RetroGameCoders IDE is a JavaScript and WebAssembly-powered online IDE/playground for coding against retro machines, now including the C64, Apple II, MSX, Atari 800, and others.
🤖 Addy Osmani has written a neat roundup of what's new in Gemini 3.0, the latest version of Google's leading LLMs. He touches on Nano Banana Pro image generation, Google's new Antigravity dev tool, and how the updates benefit developers. Not keen to be left behind, however, Anthropic released Claude Opus 4.5 earlier this week.