FlexGrid by Wijmo: The Industry-Leading JavaScript Datagrid — A fast and flexible DataGrid for building modern web apps. Key features and virtualized rendering are included in the core grid module. Pick & choose special features to keep your app small. Built for JavaScript, extended to Angular, React, and Vue.
Wijmo From MESCIUS sponsor
A Detailed Summary of the Latest TC39 Plenary — A thorough roundup of May’s major ECMAScript committee meeting with far more detail about each proposal’s development and the decisions made than we usually get to hear about. Topics include Array.fromAsync, explicit resource management, the Temporal API, and some brainstorming around AsyncContext.
What’s the Difference Between Ordinary Functions and Arrow Functions? — This sounds like basic stuff, but James always does a good job of digging in and explaining things in a way that gives you a more nuanced way to think about a concept, even if it’s just “Which function declaration syntax should I use?”
JavaScript Scope Hoisting is Broken — The creator of Parcel argues that scope hoisting (when bundlers inline modules into a shared scope) conflicts with modern JS patterns like code splitting and dynamic imports, causing subtle bugs and offering little benefit, so he’s considering removing it in Parcel v3.
Devon Govett
Codepoint–Safe Truncation: Fixing Emoji Slicing — An app’s CSV importer kept breaking on emoji-filled rows, triggering errors. James demonstrates how swapping slice for a code-point–aware spread fixes it.
Driver.js: Tours, Highlights, Contextual Help, and More — A vanilla JS library for making on-page tours and contextual help systems. It’s been around for several years, but is still maintained, and there are lots of examples to check out – it’s really smooth.
Kamran Ahmed
jsonrepair: Repair Invalid JSON Documents — This has lots of possible use cases, including dealing with weird JSON coming back from LLMs or non-compliant JSON spat out by poorly built software. You can use it from Node, as a CLI tool, or try a basic version online.
PlanetScale has shared a neat interactive article about caching that visually demonstrates the benefits of caching from several different angles, right down to the CPU level.
🖊️ 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.