🖊️ It’s been a quiet week with heatwaves and holidays seeming to slow the usual flow, but we've made it.. thanks to a few items out of left field 😅 For our US readers, happy Independence Day! __ Peter Cooper, your editor
☀️ JavaScript Weekly ☀️
Deno 2.4: deno bundle is Back — Deno 2.4 reintroduces the deno bundle command for creating single-file bundles for both the server and client side, complete with support for npm and JSR dependencies and automatic tree-shaking. You can also now include arbitrary files into modules using import, and Deno’s built-in OpenTelemetry support is now stable. It’s a substantial release.
Iwańczuk and Jiang
💡 Not to play favorites, Bun v1.2.18 is now out too.
JS1024 is an annual JavaScript code golfing contest. You've got till July 19 to submit a JavaScript program written in 1024 bytes or less on the theme of 'Creepy'.
How to Build Your Own Color Search Engine — A straightforward, practical look at bringing together several technologies and skills to create an AI powered color suggestion tool (which you can try here – results may vary, as seen above). The techniques covered can be used for many different practical ends.
The Road to Next — Learn full-stack web development with Next.js 15 and React 19. The perfect match for JavaScript developers ready to go beyond the frontend.
Robin Wieruch sponsor
⏪A Perplexing JavaScript Parsing Puzzle — The most popular item in JavaScript Weekly this year (so far) was simple in presentation but also deceptively simple in what it asked. 14 characters of JS and one straightforward question – can you get it right?
Hillel Wayne
Modern Node.js Patterns for 2025 — A reflection on the potential of Node as it stands right now. Ashwin reminds us of various developments, including the use of ES modules, built-in Web APIs, the test runner, watch mode, the permission model, import maps, and more.
Repomix 1.0: Pack a Codebase Into an AI-Friendly Format — Enter a GitHub URL, choose your settings (XML, MD, etc), and get a blob that's ideal if you want an LLM to answer questions about or analyze that repo. You can use it online or as a library in Node. GitHub repo.
snapDOM 1.8: Captures DOM Nodes as Images — A rapidly maturing, fast and accurate DOM-to-image capture mechanism to capture any HTML element as a scalable SVG image, preserving styles, fonts, background images, etc. The homepage is packed with examples.
🎨Spectral.js: A 'Paint-Like' Color Mixing Library — If you have two colors to transition between, tweening the RGB values can result in some ugly intermediate colors. Spectral.js uses Kubelka–Munk theory which more closely matches how paints work for a visually satisfying result.
Ronald van Wijnen
Protobuf-ES 2.6 – Full Protocol Buffers implementation for JS/TS.
If Cloudflare Workers are too limited for your use case, Cloudflare has a new option: Cloudflare Containers. Containers is integrated with Workers but, unsurprisingly, lets you package up your app in container images and run them in a flexible way.
🎵 If you fancy getting creative, Strudel is a neat way to code music in the browser. There's a lot to enjoy here with live examples throughout the docs.
Ecma International Approves ECMAScript 2025: What’s New? — It’s that time of year again. The Ecma General Assembly has approved the ES2025 language specification, which you can read in full here if you have a gallon of coffee to hand — or you can enjoy Dr. Axel’s more succinct explainer instead.
Dr. Axel Rauschmayer
What's Coming to JavaScript — The ES2025 spec is great, but what else is coming down the pike? The Deno team has put together a look, complete with code samples, at nine proposals progressing through TC39’s process right now.
Casonato and Jiang (Deno)
Fullstack without Frameworks — Maximiliano Firtman combines vanilla JavaScript and Go to create high-performance apps from scratch. Follow along in this video course and learn more about web components, dynamic client-side routing, authentication, logging and everything in between.
Frontend Masters sponsor
Vite 7.0 Released — At five years old, Vite has radically changed the frontend building experience and is an essential tool for many. v7 is an evolutionary step more than a revolutionary one and should prove an easy upgrade from v6.
Tips for Making Regular Expressions Easier to Use in JavaScript — Dr. Axel asks us to imagine if we had to write JavaScript without any whitespace or comments, so why should we have to write regexes that way? He has some tips for making the process more pleasant.
Dr. Axel Rauschmayer
Creating a Simple RSS Server Side Reader — Alex likes that blogs have feeds, but isn’t so keen on modern feed readers, so he put together a surprisingly simple Deno-based approach to scrape feeds and produce an automatically updated HTML page linking to the latest items.
Alex Kladov
How OAuth Works — A practical guide to OAuth Scoped Access with code examples, security tips, and how third-party integrations really work.
Hono 4.8: A Cross-Runtime Standards-Oriented Web Framework — Hono is a framework well worth exploring. It’s fast, lightweight, built on Web Standards, and can be used to build apps that work on numerous platforms from Node or Bun to Cloudflare or Fastly. v4.8 adds new route helper functions, improvements to JSX streaming and CORS, a new plugin system for static site generation, and more.
🤖Google Unveils Gemini CLI: An Open-Source AI Agent — Google has dipped its toe into the rapidly growing AI dev agent game with a terminal-based agent, built in TypeScript, with a striking high free usage allowance, making it a good way to give such tools a try if you haven’t so far.
🚀 Build VueJS forms your way with Enforma — UI-agnostic (PrimeVue, Vuetify, Quasar), schema-ready, repeatable fields, powerful validation.
🪐 Learn from Bun & SolidJS creators, Syntax.fm co-host & more JS stars at the West’s biggest planetarium! See you Nov 17–20 in NYC & online.
PLJS 1.0: JavaScript Language Plugin for Postgres — PLV8 has been the ‘go to’ way to use JavaScript as a procedural language within Postgres for years, but this QuickJS-based variant, from the same maintainer, has a far lighter footprint, is easier to maintain, and may be enough for your needs.
📊 Billboard.js 3.16.0 – The popular chart library adds 'trending lines' to bar charts, perf improvements, and other tweaks.
Hako 1.0 – An embeddable, lightweight, high-performance JavaScript engine built atop QuickJS.
React Admin 5.9 – Framework for building B2B frontend interfaces.
📊 AG Charts 12.0 – Full-featured, customizable charting library.
📈 Recharts 3.0 – D3-powered chart library for React.
🎁 A few bonus items..
Just some things I've seen that didn't fit anywhere else, but I wanted to give a quick mention:
🤖 Google has released Gemma 3n, its latest locally-runnable LLM. It performs very well for its size (5B and 8B parameter counts) and if you've got the right hardware, you can run it easily with Ollama and similar tools.
David Heinemeier Hansson, of Ruby on Rails fame, has released Omarchy – an 'opinionated Arch/Hyprland setup' to get Linux working in an aesthetically pleasing way for software developers, whether using Ruby or not.
A notably buff John Carmack recently gave a talk (complete with his first slide deck ever) about ▶️ his team's work and research directions around machine learning, multi-task learning, and getting AI to play Atari games.
📖Exploring JavaScript (ES2025 Edition) — Dr. Axel is back with his latest book covering all things relating to modern JavaScript at the language level (think built-in data types, modularity, how objects, classes and promises work, etc.). As with all of Axel's books, it’s available to buy but also to read online in HTML form for free. He’s also produced a set of flashcards to help you learn language features in both HTML and Anki forms.
Dr. Axel Rauschmayer
💡 The two sets of flashcards (including API flashcards) are worth a look on their own as you'll almost certainly learn/remember something useful looking through them.
Biome v2: The First Type-Aware Linter That Doesn't Require tsc — Boasts being the first JavaScript and TypeScript linter that doesn’t require the TypeScript compiler, while still offering type-aware linting rules. There’s a lot to enjoy here, including initial support for linter plugins and improved monorepo support, though note that Vue and Svelte templates aren’t yet supported.
Bun v1.2.16 – The high performance JS runtime adds support for returning files for routes via Bun.serve, along with a slew of bugfixes and Node compatibility improvements.
Astro 5.10 – The content-driven JS framework makes its responsive images feature stable, and adds a new experimental feature: live content collections.
ESLint v9.29.0 – Now supports the syntax used for explicit resource management (using and await using).
▶ Compiling JavaScript Ahead-of-Time — The creator of the Porffor JavaScript compiler talks about the various ways to make JavaScript faster to execute, before digging into Porffor’s approach.
Oliver Medhurst
Using await at the Top Level in ES Modules — Top-level await is supported in all modern browsers and in Node.js (beyond v16) in .mjs files or .js files specified as modules.
React Native 0.80 Released — React Native 0.80 lands with React 19.1, a new opt-in set of stricter TypeScript types, and experimental support for prebuilt dependencies on iOS to speed up builds. The legacy architecture is now officially 'frozen', with warnings for APIs slated for future removal.
react-searchable-dropdown: A Customizable Dropdown Component — A modern, accessible, and customizable dropdown component that supports large datasets with virtualization, lets users create new options, works with both simple and complex data, and is easy to style and extend. GitHub repo.
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.
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.
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.
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.
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.
🍊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.
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.