Nolan Lawson had Claude build the same app five times in each of twelve JS stacks to test common "X is better for agents" claims. Costs varied significantly between runs, and Gautam Parab found that the observed cost ranges overlapped or touched for most pairs of frameworks.
But a clearer difference was in the median amount of JavaScript sent to browsers: 0KB for Astro, 18K for Hono+htmx, 36K for SvelteKit, and 115–142K for React Router, TanStack Start and Next.js. If you've gone "hands-free", Nolan asks, why stick to a particular stack you chose when you wrote all the code? His benchmark is on GitHub to try for yourself.
Nolan Lawson
Run AI Coding Models on Your Own Machine — Local models are now good enough for everyday coding. Learn to run them on your own Mac or GPU, wire them into your editor and terminal agents, and keep your code private with no per-token bill.
Master.dev sponsor
Why Is This Fingerprinting Script 'Creating Bioweapons'? — A crawl of sites to collect canvas fingerprinting examples (which you can see, visually, at fingerprint.garden) found an anti-analysis technique where JavaScript identifiers were named after… taboo topics, with a prompt hidden in invisible Unicode, all designed to make LLMs refuse to work on the code!
Veritas
💡 Canvas fingerprinting is a technique that uses quirks of how different clients render canvas elements, in order to distinguish browser environments.
📊 GitHub's Octoverse 2026 report has TypeScript as the most used language on GitHub by contributors (with JS at third), and ~44% of merged TypeScript PRs showing AI involvement. Plus a lot more besides.
Cloudflare Workers now supports the Temporal API natively behind a temporal compatibility flag. It'll be available by default from December 1.
RELEASES:
Node.js v27.0 (Alpha) and v26.13.0 (LTS) – Node 26 is now the 'Lithium' LTS line, and 27 is the first ever Node 'alpha'. Under Node's new release process, every line spends six months in alpha before going Current.
Vitest 5.1 – A new --since-last-run flag reruns only tests affected by your edits, plus there's an interactive snapshot review feature.
Rspack 2.3 – The Rust-based webpack alternative adopts SWC Next and its rewritten parser. The team reports 5-20% faster builds and less peak memory use.
Leaflet 2.0 Beta 1 – The mapping library's first major in a decade goes tree-shakeable, ships TypeScript types, and drops its default export.
Shrinking clarity.js: When Cleaner Code Gzips Worse — Microsoft let an agent run 50+ size experiments on its analytics script. A big win came from dropping import * namespace objects, while good-practice refactors like extracting helpers actually made the gzipped output bigger.
'Nothing Installs at Our Company Until It's a Week Old' — Many recent package hijacks were caught within hours, so Bruno's company now makes new releases wait a week. He explains what this approach broke, what cooldowns don't stop, and settings for popular package managers.
Bruno Jurković
Timing Ten Design Systems, Then Fixing the Slow Ones — Den timed ten design systems (MUI, Ant Design, and Ionic among them) opening a 249-option select and ticking 100 checkboxes, then profiled the slow ones to find out why.
Handwired: Compile Regular JavaScript into a Neural Net — A new mind-bender from Pretext's creator: a compiler that turns JavaScript into an exact network of ReLUs and matrix multiplies that run on the GPU. Demos include a 130-layer 'mini desktop' and a WebGPU search over 100K JSON documents.
webframe: Run a Web Page Like a Command-Line Program — Point it at a URL or HTML file and it runs the page in a hidden system web view, piping console.log() to stdout and exceptions to stderr. No bundled browser or Playwright needed.
Jeff Lindsay
phoria2: A Small WebGL 2 Library for 3D Charts — A dependency-free 3D library aimed at dashboards and product viewers, with an API you can 'learn in an afternoon'. Plenty of live demos on the page.
Kevin Roast
Shiki 4.6 – Powerful code syntax highlighter, now with faster decoration handling and compressed Oniguruma WASM binary.
Preact 11.1 – A new preact/compat/compiler-runtime entry point lets code compiled by React Compiler run on Preact too.
Postgres.js 4.0 – The popular Postgres client for Node, Bun and Cloudflare Workers gets a rewrite and goes ESM-only.
📰 Classifieds
💸 Every OTP you send costs money. Fraudsters trigger them by the thousands. Fingerprint recognizes the device before you text. Learn how.
Your coding agent can write the app. Expo is the agentic mobile infrastructure that takes it from a repo to the App Store.
CodeAF fixed 2x OpenCode's issues and nearly 4x Claude Code's on the same open model, at up to 4.8x less per fix. Open source, Apache 2.0.
📢 Elsewhere in the ecosystem
Chrome 157 is due today with the headline feature being HTML-in-Canvas for drawing live, interactive DOM elements into 2D, WebGL and WebGPU canvases. This feature has numerous striking applications.
☕ CheerpJ 5.0 brings Java 21 and 25 to the browser via WebAssembly, ships the full JDK so you can compile Java in a tab, and previews a new WasmGC-based engine the team hopes will run Minecraft and IntelliJ one day.
Would You Let Your AI Agent Grade Its Own Homework? — Agents write code faster than ever. They even review their own work. But who’s reviewing them? Dropbox, Notion & ElevenLabs don’t take the risk. With Meticulous, every change is exhaustively verified, with zero developer effort.
Chrome 156 has reached stable and no longer caches module fetch failures, so a dynamic import() that fails due to a network or HTTP error can be retried.
Parser Combinators in TypeScript, Built From Scratch — Parser combinators sit between regexes and heavyweight tools like tree-sitter. This animated, step-by-step walkthrough shows the basic elements of building them, concluding in an example turning ping output into typed objects.
Florian Schindler
Dead Code Shouldn't Exist: How Sentry Cut 28,000 Lines — A talk Dominik has given at six conferences this year, now as swipeable slides with a full transcript. He covers how unused code can cost more than you might think, and how Sentry used Knip to remove 28,000 lines.
Building an Isolated Preview for AI-Generated HTML — Rendering model-written HTML in a srcdoc iframe runs it on your own origin. A security engineer breaks the naive approach, then rebuilds it using sandbox and a strict CSP, with demos showing what each one blocks.
Keshav Malik
A First Look at TypeScript 7.1's Content Mappers — TypeScript 7 ignores tsserver plugins, but 7.1's content mappers can turn non-TS files into TypeScript. Here's how they work, applied to CSS modules and .graphql files.
Introducing TanStack Redact: A Slimmer React Runtime — A build plugin swaps React and React DOM for a smaller reimplementation in the browser with no code changes. It works with Vite, Start, Vinext and Next.js, and while TanStack reports 20-70% smaller client builds, rendering is synchronous only.
Tanner Linsley (TanStack)
AI Tests That Catch Real Bugs — AI can write low-value tests that pass without checking much. Wallaby helps your agent refine assertions and catch bugs.
Biome 2.6 Adds Markdown, YAML and SCSS Support — The Rust-powered alternative to Prettier and ESLint adds formatting support for Markdown, YAML and SCSS, along with initial linting support. JavaScript plugins for custom lint rules are available as a developer preview.
Biome Core Team
☕ CoffeeScript 2.7.1 – The first release in four and a half years brings Node 22+ fixes and with { type: 'json' } import attributes.
oxlint 1.89 – The Rust-based linter now counts the upstream recommended rules of its React, Vue, Next.js, Jest/Vitest, and other plugins as 'recommended' so expect more reports if you upgrade.
Mutative 2.0 – Immer-style efficient immutable updates library. The author reports a 3.6x speedup over Immer across a benchmark suite.
SonicJS 3.0 – Headless CMS for Cloudflare Workers, built on Hono. v3 rebuilds the data layer, auth and plugin system. Homepage.
Chen, Mitropoulos and Nakazawa (Cloudflare / VoidZero)
💡 Max Schwenk started the port with agents writing the code, and tells the full tale here, including how it took his company's typecheck from 80 seconds to 7.
Send Webhooks from Your TypeScript API in Minutes — One typed npm package, one call per event. Svix handles retries, signing, delivery logs, and a portal for your customers, so you don't build any of it. Resend sends 200M+ webhooks a year through it.
Node.js v26.12.0 (Current) and v24.22.0 (LTS) – 26.12 can now synchronously load most ES modules and marks the config file stable; 24.22 gains util.throttle and util.debounce.
Astro 7.4 – Adds a --timings flag for astro build to see where build time is spent, plus experimental parallel prerendering across worker threads.
React Router 8.5 – Deprecates its own view transition APIs in favor of React's <ViewTransition> component, and adds an experimental 'API-only' mode.
Pretext 1.0 – Multiline text layout without touching the DOM. 1.0 ports browsers' own line breakers, so results more closely match what would render.
The Tetris Script That Becomes Snake Once Prettified? — You'd think pretty-printers and deobfuscators at least leave a script's logic alone, but no. See how chaining semantic quirks in such tools can turn the 'cleaned up' output into a different program!
▶ ViteConf 2026: The Full Replay — Last week's ViteConf brought ~30 talks including Evan You's keynote on tooling in the agentic era, plus updates on Vitest 5, Vite DevTools, and a faster parser coming to Oxc. It's 10 hours, but there's a hero with timestamps in the comments.
How to Gaslight JavaScript Programmers (with Proxies) — Proxy, introduced as part of ES6 back in the day, has plenty of practical uses but can also make objects behave in curious, unexpected ways. Complete with live, editable examples.
📊Chartist 2.0: The Lightweight SVG Charting Library Returns — A CSS-styled SVG charting library from 2014 that "went stale over the last years" makes a comeback with a composable API, server-side rendering to SVG, terminal charts, and still ~12KB gzipped for a line chart. There's a migration guide for 1.x users.
A new social network:/dev/null is a GitHub-oriented social network for developers, built from scratch in 48 hours. It already has over 8000 members, including me. It's been a lot of fun so far!
Deno is Joining Cloudflare (But…) — Maybe David Bushell saw the writing on the wall, as the Deno team isn't joining Cloudflare to keep working on Deno, but to fold celld into workerd so Durable Objects can be self-hosted (more on that here). The Deno runtime will get a final year of official fixes, Deno Deploy closes in six months, and JSR moves to Cloudflare's infrastructure.
Ryan Dahl
💡 On Hacker News, Ryan Dahl noted that Deno "has been sucked into the gravity well of Node compatibility" before asking: "Why reimplement Node? It works." But what happens to the JavaScript™ trademark case, I wonder…?
CodeAF: #1 of Ten Coding Harnesses on DeepSWE — Ten coding harnesses ran the same open model on 113 real GitHub issues. CodeAF solved the most and paid the least per solved issue: 3.4x less than Claude Code, 4.8x less than OpenCode. A new open-source coding harness built for open models.
AgentField AI sponsor
Bun 1.4.3 Adds bun check, a Built-In TypeScript Type Checker — bun check is a port of TypeScript 7's checker that reads your tsconfig.json, reports the same errors as tsc and, Jarred claims, runs 3-6x faster. It plugs into bun run/test/build too. Idle server processes now use far less CPU, and a JavaScriptCore upgrade picks up numerous perf gains.
Jarred Sumner
IN BRIEF:
AWS has launched Lambda Web Functions, which run an ordinary port-listening Node server (Express, Hono, Fastify, etc.) on Lambda with no handler rewrite, billing for active CPU time and separately for memory.
Last second addition:TanStack Start 1.0 has just dropped. Big news for full-stack React and Solid fans! :-)
🎉 Partytown 1.0 – A popular way to relocate third-party scripts to run in a Web Worker rather than on the main thread has left beta after five years in development.
Marionette 5.0 – Six years on, the Backbone-era framework returns with a core free of Backbone, jQuery and Underscore… and they explain why!
Bootstrap 6 Alpha – An early look at Bootstrap's first major release since 2021, leaning on modern CSS and making its JavaScript plugins ESM-only.
Express 5.3.0 – A maintenance release worth upgrading to, as patched qs, proxy-addr and body-parser dependencies close five CVEs.
How Sindre Sorhus' Personal Site is Now Made in Swift — One of JavaScript's most prolific developers explains how he's dropped Astro and now builds his personal site with Swift, including the styling and markup, with broken links and style typos failing at compile time (source).
📄 Six Months of Building with Remix 3 – What the post-React Remix (v3 was released earlier this month) is like to work with day to day. Sergio Xalambrí
🤖OpenCode 2.0: A Big Update for the Open Coding Agent — A full-featured agentic coding app, built on Bun, that's more akin to Claude Code than Pi, say. v2.0 overhauls it with background subagents, a 'code mode' to let models script MCP tool calls, and clients for vanilla JS and Effect code to drive it.
Anomaly / The OpenCode Team
💡 If you've not given OpenCode a try yet, you can get started here.
Tamagui 3: One React UI Codebase for Web and Native — A styling system and component kit for sharing UI between React web apps and React Native, with a compiler that keeps things fast on both. v3 adds Tailwind-style props and React Strict DOM support.
H3 v2: The UnJS HTTP Framework Rebuilt on Web Standards — The minimal HTTP framework behind Nitro and Nuxt's server layer is now stable in v2, a rewrite around standard Request and Response so the same app runs on Node, Bun, Deno, Workers, and even in the browser. Migration guide.
⚡️Add lightning-fast 1D/2D barcode scanning to your web app with STRICH. On-device processing, free trial and demo!
Durable AI agents built with the AI SDK you already use. Long-lived LLM sessions that survive deploys, crashes & refreshes. Test out chat.agent on Trigger.dev.
🎬 Your app needs video, not a video team. Upload any format to Hyperserve's API, get back MP4 on a global CDN. Ship video in an afternoon.
📢 Elsewhere in the ecosystem
In Fingerprints are the New Cookies, Roy Fish demonstrates the various ways web pages can assign a unique(ish) identity to you using JavaScript.
🤖 Theo Browne set AI agents loose on porting the TypeScript 7 compiler to Rust, and ts-rust is the (very experimental) result.
Fancy a retro robot voice in your web experience? Klattsch is a voice synthesizer you can use on the web or from Node.js as an npm package. Daiiisy, daiiisy…
Three years ago we mentioned Linus Groh's Zig-based Kiesel JavaScript engine. It passed 25% of test262 back then, but v0.4.0 has landed and it's now at 94.7% (not far behind V8) and supports modern language proposals like await dictionary and numerous iterator proposals.