🏖️ I'm back from an intense week of Disney vacationing with the family, so I feel more tired than before I left 😅… but it's time to catch up with all things JavaScript! __ Your editor, Peter Cooper
☕ Grab the biggest coffee you can if you intend to get through the release post. It's easily the longest I've ever seen in fifteen years of running this newsletter.
Webflow for Developers — Most tools make you choose between visual builders and real code. Webflow gives you both: APIs, SDKs, Code Components, and Webflow Cloud to deploy custom apps, plus an MCP server to build with agents.
Webflow sponsor
🎵Music Theory for JavaScript Developers — A from-first-principles tour of music theory, deriving the twelve notes, scales, chords and progressions from plain arithmetic, with runnable Web Audio examples throughout.
Luke Haas
Solid 2.0 RC: The Big <Reveal> — Async now lives in the reactive graph, so async data flows through ordinary memos. createResource, batch and startTransition are gone. SolidStart gets retired into a start: true flag on the Vite plugin, and the API is now frozen.
Electron 44 – No post yet, but it has dropped 32-bit support, requires macOS 13+, clipboard is now aligned with the W3C Clipboard API, and added net.WebSocket and the ability to set window opacity on Linux.
Waku 1.0 RC – Minimal RSC-first React framework, now API-frozen ahead of v1 final, adding type-safe navigation that catches bad routes at compile time and experimental instant paints from cached route shells.
The Wicked Reason Removing Code Beats Better Scheduling — A lot of performance work goes into shuffling when things load, when the bigger win is usually not sending the code at all. Alex Russell makes the case that this is a management problem more than a technical one.
Alex Russell
ESM and CommonJS: What import and require Actually Do — They look like the same operation, but Gabor shows how an ESM import stays wired to the exporter's binding, while a destructured require() only holds a copy. The consequences show up in circular dependencies and published packages.
Gabor Koos
Build with Strategy. Lead with Curiosity — Fidelity is looking for technologists that ask questions, challenge conventions and care about the impact of their products.
📄 Hiding Internal State in TypeScript Objects – How a non-exported unique symbol used as a property key keeps internal state out of Object.keys and JSON.stringify. Carlos Menezes
Formisch 1.0: Framework-Agnostic Schema-Based Form Library — A headless form library where a Valibot schema drives types and validation across eight frameworks. v1 adds Angular and React Native support, migration guides for TanStack Form/React Hook Form/Formik users, plus Markdown docs for agents.
Ionic Framework v9 – The mobile-first UI toolkit for React, Angular and Vue returns after a two-year gap with React Router 6 support, zoneless change detection in Angular 21+, and more. There's an upgrade guide for v8 users.
Papa Parse 5.7 – Fast, flexible CSV-to-JSON and JSON-to-CSV library.
🌐 MapLibre GL JS 6.6 – GPU-accelerated vector tile rendering library for interactive maps in the browser.
📊 Plotly.js 4.0 – Standalone library for creating interactive data visualizations.
GTKX 1.3 – Create native GTK-powered Linux desktop apps with React.
📺 YouTube.js 18.0 – JavaScript client for YouTube's internal API.
📢 Elsewhere in the ecosystem
Some other interesting tidbits in the broader landscape:
📊 Gajus Kuizinas has put together a CSS-in-JS Arena comparing StyleX, Panda CSS and his own brand new Bamboo CSS on the same React Router 8 app.
Did you know splitting a git commit is now a single command (in Git 2.54+)? git history split <ref> walks the change hunk by hunk and prompts for both messages.
🏖️ A brief scheduling note: We're taking a summer break next week, so we'll be back in your inbox on August 25. Catch you then! __ Your editor, Peter Cooper
JavaScript Weekly
Migrating a Large Flow Monorepo to TypeScript — Over several years, Yelp moved 1.4 million lines off Flow, and this writeup is more useful as a guide to running any long migration than as a Flow story. It was a big win on its own terms, with type coverage up from 83% to 96%.
Render Runs JavaScript, Front to Back — Link your repo and Render takes it from there. Wire up your Vite site to your Hono API to your BullMQ job to your distributed agent workflow, all on one platform. Loop in your agent with official Render /plugins for Codex and Claude Code. Start free and scale from there.
Render sponsor
Kitesurf: Cloudflare's Agent-First Browser in V8 Isolates — A browser engine that runs on Workers with one isolate per page. Aimed at agents rather than humans, it uses 3-7x less CPU and memory than Chromium, at the cost of being slower. You can try it out now in beta, and it'll be open sourced in due course.
Martinho, Constant, Figueira, and Duarte (Cloudflare)
How Baseline Can Help You Ship Less JavaScript — A practical audit method for your dependencies. Groups them into clusters (Intl, HTTP, UI primitives, lodash), gives you questions to ask before deleting things, and works through a case where a swap can make your bundle bigger (Day.js → Temporal). A familiar theme developed into a rigorous, reusable audit.
Jad Joubran
Making More npm Packages Work with jsDelivr ESM Mode — jsDelivr is a popular CDN used to load npm packages into pages without a build step. This is a thorough, technical tour of what happens when converting packages to browser ESM (via its /+esm endpoint) and all the ways CommonJS finds to make that hard.
Progressive Enhancement Inside of JavaScript — Working on a train, a patchy data connection got Remy to notice users can interact with a page before its JavaScript is ready, with a neat fix being to bind a handler early and replay the intent later.
celld: Durable Objects on Your Own S3 Bucket — A self-hosted take on Cloudflare's Workers and Durable Objects from Deno. V8 plus SQLite and Litestream's LTX coordinate through an S3 bucket with no consensus layer. GitHub repo.
Ryan Dahl (Deno)
😅 On self-hosting Durable Objects with workerd, "You beat us to it!" said Durable Objects creator Kenton Varda on Hacker News, later adding "celld is definitely ahead of us here. No doubt about that."
hucre 1.0: A Zero-Dependency Spreadsheet Engine — An MIT-licensed, tree-shakeable engine for reading and writing common spreadsheet formats, including support for things like embedded images, hyperlinks, password protection, and pivot tables.
Wind
vlt 1.0: An npm Alternative With CSS-Like Selectors — A drop-in npm alternative with a key draw being vlt query, which lets you use 60+ CSS-like selectors over your dependency graph (of which half are security related). vlt also offers hosted private package registries.
Which screen is slow, and on which devices? Expo Observe is production performance monitoring for your mobile app.
🤖 Block bots at login without slowing down real users. No CAPTCHAs, zero friction. Try Fingerprint for free.
⚡ Merget is Git for AI-written code. It reviews every coding session and catches what your agent missed. Free for teams now: merget.ai.
📢 Elsewhere in the ecosystem
The js1024 code golfing contest is over and we have three winners! Skydreams, a Super Monkey Ball-like experience, came in first place. You can read the readable and minified source if you want to see the techniques used.
Docker has entered the agent sandbox game with Docker Sandboxes, a free way to run coding agents in their own microVMs with a Docker daemon inside.
scriptc is a new, experimental TypeScript-to-native compiler from Vercel Labs. With --dynamic, unsupported or dynamic portions are run in a bundled QuickJS engine.
Frontend Architecture: Monoliths to Microfrontends — Maxi Ferreira walks through modular monoliths, monorepos, and microfrontends so you can pick the right structure for your codebase and know the real cost before you commit.
The Secure Way to Release an npm Package in 2026 — A practical guide to publishing npm packages more safely, written by the author of numerous popular packages (e.g. postcss). As well as showing how to use staged publishing and trusted publishing, he explains why they help.
Andrey Sitnik
💡 GitHub is continuing to focus on npm security, and is starting to scan every npm package for malware at publish time. This will have some implications, including a delay between publishing and availability for installation.
MobX 7.0 – The popular state manager slims down, removes deprecations, updates its React bindings, and now always uses Proxy-backed observable objects and arrays.
Javy 9.1 – Toolchain for compiling JavaScript to WebAssembly for WASM runtimes.
Your SPA is Leaking Memory: 'Soak Test' It — How to run a Playwright 'soak test' that loops a user flow within the same browser context, watches DOM node and listener counts, and fails CI when a memory leak creeps in.
Den Odell
Your JSON is Lying to You — A reminder that a JSON.parse/JSON.stringify round-trip is far from lossless, with big integers, undefined, Date, and more, altered or lost along the way. Gabor covers the nastier gotchas and practical ways to make the conversion boundaries explicit.
cdnjs at 9 Billion Requests a Day: A Migration Story — cdnjs is a popular, free CDN for loading JavaScript libraries without bundling or self-hosting (which LLMs really seem to like). Cloudflare explains how it now runs entirely on Workers and R2.
Simona Badoiu (Cloudflare)
Adding Go's defer to the TypeScript Compiler — In Go, defer delays the execution of a function call until the surrounding function finishes. Can you just fork TypeScript and add language features? Yes! Should you? Probably not, as using is already a good fit for the use case.
Andrew Healey
📄 Learning Remix 3 – By porting a Solid 2.0 demo to Remix 3's server-first model. Mark Malstrom
TanStack Charts: A New Chart Grammar Option — In the past few weeks, TanStack has been rapidly iterating on a new, framework-neutral way to declaratively specify a large number of chart-related visualizations in JavaScript. Output renders to SVG or canvas and can be styled as you wish. Here's a comparison against other established options.
🤖 GitHub's Sean Goedecke says LLMs reward expertise, with the most important prompting skill being expertise in the domain you're prompting for.
Microsoft is previewing a way to call native Windows APIs from Node (and therefore Electron) without native addons, via a new dynamic Windows Runtime API (WinRT) projection.
Rust Is Eating JavaScript (Still, in 2026) — Our most-read link of 2021 gets an update for 2026. Lee Robinson (then Vercel, now Cursor) predicted Rust would be used to reimplement more and more JavaScript ecosystem tooling, and Rspack, Biome, Turbopack, and Bun's recent rewrite keep proving him right.
Lee Robinson
Frontend Architecture: Monoliths to Microfrontends — Maxi Ferreira walks through modular monoliths, monorepos, and microfrontends so you can pick the right structure for your codebase and know the real cost before you commit.
Master.dev sponsor
Octane: React's Programming Model, But Compiled — From the creator of Inferno comes a successor: a compiled React-like framework (differences explained here) that generates reactivity ahead of time with no VDOM. Supports TSX/JSX and TSRX, with integrations for TanStack Query and Router, plus other common React libraries.
▶ The Creator of TypeScript Shows Off TypeScript 7 — Anders Hejlsberg demos the 10x speedup gained by the new Go-based TypeScript compiler on VS Code's 1.3M line codebase. He also covers the new LSP language server and why compiler API users (Vue, Astro, Svelte) must stay on TypeScript 6.
Bruno 4.0: An Open-Source HTTP API Client App — An open source, JavaScript-powered lightweight alternative to something like Postman for testing and making requests against HTTP APIs.
Anoop M D, Anusree P S and Contributors
tslog 5: Zero-Dependency Logger for Node, Deno, Bun and Browsers — A ground-up rewrite, now ESM-only, and also covers workers and React Native. Pretty output by default, JSON optionally, plus middleware, file/HTTP/worker transports, secret masking, and error stacks that resolve through source maps to your original .ts lines. GitHub repo.
Eugene Terehov
eslint-package-json: Powerful ESLint Rules for package.json — An ESLint plugin that catches package.json mistakes like invalid names, bad version ranges, broken exports, redundant files entries, and more, and fixes many of them automatically.
Sindre Sorhus
Shadscan: Deterministic UI Audits for shadcn Apps — A tool that statically analyzes your shadcn components using almost 60 deterministic checks (no AI or API keys needed) around fundamental accessibility, state, and composition best practices.
OrcDev
Slick 2.0 – Ken Wheeler's classic jQuery carousel control (demos). Now compatible with jQuery 4.0!
🤖 In How I Stopped Running Out of Tokens, a dev whose company uses Claude Enterprise shares tools you can use (e.g. rtk) to get more out of your limits.