#​766 — December 19, 2025

Read on the Web

🗓️ 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

Together with  Frontend Masters logo

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.

Kate Holterhoff

Coding with AI: The Practical Path for JavaScript Devs — Go beyond demos and hype. Learn real AI-powered workflows with JavaScript, from prompt engineering and coding agents to MCP, ML, and production-ready apps.

Frontend Masters sponsor

'I Ported JustHTML from Python to JavaScript with LLMs in 4.5 Hours' — Prolific AI blogger Simon Willison shares the tale of porting a standards-compliant HTML5 parser (which passes all 9200+ html5lib-tests) from Python to JavaScript using OpenAI’s Codex CLI and GPT 5.2. You can play with the end result or check out the code.

Simon Willison

IN BRIEF:

RELEASES:

🏆 The Top 10 Links of 2025

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!

Hillel Wayne

2. Ecma International Approved ECMAScript 2025: What’s New? — Each year, the Ecma General Assembly approves the latest ECMAScript language specification, and you can read the ES2025 spec in full. Better, though, is to enjoy Dr. Axel’s succinct explainer.

Dr. Axel Rauschmayer

MACROSCOPE - Free AI Code Review for Open Source — Free for non-commercial projects. Everyone else: use OSSAI for 50% off your first 2 months.

Macroscope sponsor

3. 'I Think the Ergonomics of Generators is Growing on Me' — If you've never worked with generator functions, this remains a great look at what they are and where they can be useful. Alex notes that “their practicality hasn’t exactly caught on” (yet..)

Alex MacArthur

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!

HTTP Archive

5. Some Features Every JavaScript Developer Should Know in 2025 — A quick list post breezing through some more modern areas of JavaScript including iterator helpers, structuredClone(), and set operations.

Suren Enfiajyan

6. How to Keep package.json Under Control – Covers 'dependency hygiene' and ways to keep things under control. Great tips and tool recommendations.

7. A Brief History of JavaScript – This epic timeline of JavaScript's history will remain a go-to resource for years.

8. War Story: The Hardest Bug I Ever Debugged – A former engineer on the Google Docs team told the tale of a bizarre error that afflicted Google Docs ten years ago.

9. Things People Get Wrong About Electron – One of Electron's maintainers defended the technical choices made by the project over the years.

10. Move On to ESM-Only – While you can maintain packages supporting both ESM and CommonJS, Anthony explained why it's finally time to go 'ESM only'.

🗓️  JavaScript in 2025: Month by Month

Let's step through the year and remember the biggest things that happened in JavaScript each month:

JANUARY – At the start of a very productive year for the alternative JS runtime, Bun took a big step forward with Bun 1.2. We also got a big update on progress with Express.js.

FEBRUARY – An epic documentary about Angular was released. The Deno vs Oracle battle over the JavaScript trademark rumbled on. TypeScript 5.8 was a big release for Node developers in particular. Meanwhile, a developer implemented Doom entirely in TypeScript's type system.

MARCH – Babylon.js 8.0, the latest version of Microsoft's epic JavaScript 3D engine, was released, as was Express 5.1.

APRIL – Koa 3.0 was released, a major Node.js collaboration summit took place in Paris, and p5.js 2.0 was released.

MAY – The Remix project had a huge shakeup. The GSAP animation toolkit was made freely available. The Glitch platform announced it was shutting down. The Deno team put together an epic timeline of JavaScript's history and Microsoft released its first preview of its new natively-compiled Go port of TypeScript.

JUNE – Oxlint 1.0 and Vite 7.0 were released. Dr. Axel unveiled the ES2025 edition of his Exploring JavaScript book. Biome v2 became the first type-aware linter that didn't require tsc, and Ecma International approved the ECMAScript 2025 spec.

When LLMs Hit Your Database, Schema Names Aren’t Enough — See how adding semantic context to Postgres helps LLMs query data correctly, and boosts SQL accuracy by 27%.

Tiger Data sponsor

JULY – The JS1024 code golfing contest took place, Deno 2.4 was released, and Vercel acquired NuxtLabs.

AUGUST – TypeScript 5.9 and Apache Echarts 6 were released. The jQuery team dropped a release candidate of jQuery 4.0 (we're still waiting for the final release, though).

SEPTEMBER – Mediabunny shook up the media processing scene. Chrome turned 17, and a messy few months for npm package security began with a variety of packages being compromised in a phishing attack. In response, pnpm added support for delayed dependency updates. macOS Tahoe users found Electron apps were laggy due to a change in a private API. The Deno project asked the community for $200k to help with its JavaScript trademark case.

OCTOBER – React Compiler v1.0 was released, as well as Node.js v25.0, and Node.js 24 became the active LTS release. The React team announced the React Foundation and moves to make React's ownership less attached to Meta. Bun 1.3 was released to much fanfare and Evan You announced Vite+. GitHub announced TypeScript had become the platform's #1 language.

NOVEMBER – The now-named Shai Hulud supply chain attack reared its ugly head in a 'version 2' form. The JavaScript Engines Zoo launched to show us just how rich the JS runtime and engine ecosystem is. Google unveiled Angular v21.

DECEMBER – JavaScript turned 30 years old. Microsoft shared an update on TypeScript 7.0 and Deno 2.6 was released. Node.js v24.12.0 (LTS) was also released, finally making type stripping stable in an LTS release.

📰 Classifieds

🎄 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... ;-)