MDN rebuilt its entire frontend this week and decided not to use React.
Not quietly. Not as a thought experiment. They published a full engineering deep-dive explaining why the most-read developer documentation site on the web now ships on web components and a homegrown server component system. The reasoning is simple: shipping React on every page to render mostly-static content is a tax they didn't want to keep paying.
That alone is news. But it wasn't the only team questioning the default this week. TanStack Start shipped experimental React Server Components as "Next.js, but opposite" — client owns the tree, RSCs are just async resources, and server actions are explicit functions instead of magic strings. Cloudflare's own Tanner-led team dropped ~153KB gzipped from their blog. And Railway migrated 200+ production routes off Next.js to Vite + TanStack Router, with zero downtime.
Meanwhile, Cloudflare ran what they called "Agents Week" and shipped nine separate products aimed at agent infrastructure — including Cloudflare Mesh (private networking for agents), Sandbox GA (each agent gets its own computer), and a new unified cf CLI that replaces Wrangler. They're not asking whether agents will need infrastructure. They're assuming it's already happened.
The pattern this week isn't that React is dying — it isn't. It's that the "just use Next.js" default that's owned frontend conversations for three years is getting its first real public pushback from teams with actual traffic. Here's everything else worth your time.
The full software lifecycle. Now in the age of AI.
WeAreDevelopers World Congress comes to San José, CA — September 23–25, 2026. 10,000+ developers, 500+ speakers, and the full software development lifecycle under one roof, in the heart of Silicon Valley.
Kelsey Hightower. Thomas Dohmke (fmr. CEO, GitHub). Christine Yen (CEO, Honeycomb). Mathias Biilmann (CEO, Netlify). Olivier Pomel (CEO, Datadog). The people actually building the tools you use every day — all on one stage.
AI, cloud, DevOps, security, architecture, and everything real builders ship with. Workshops, masterclasses, and the official congress party.
The Big 3
MDN, the web's most-used developer reference, just shipped a full rewrite of its frontend — replacing React with native web components and a custom server component system. The engineering deep-dive explains why: MDN pages are content-heavy and mostly static, so shipping React's runtime on every request was a permanent tax on load times for no benefit. The new stack uses vanilla web components for interactive bits and a homegrown SSC pattern for composition. It's one of the clearest public arguments yet that "React by default" isn't the right answer for every site — especially not the one developers open dozens of times a day.
TanStack Start added experimental React Server Components, but the design deliberately inverts Next.js. In Next, the server owns the tree and you opt into interactivity. In TanStack Start, the client owns the tree and RSCs are just Flight streams you fetch, cache, and render like any async resource — routed through TanStack Query with normal cache keys. Server actions are explicit functions created via createServerFn (avoiding the recent 'use server' CVEs), and a new "Composite Components" primitive lets server components leave slots for interactive client components without coupling. Migrating tanstack.com's own content pages dropped ~153KB gzipped and cut Total Blocking Time from 1,200ms to 260ms. The first serious "what if the React framework defaults are wrong?" in years.
Cloudflare dropped an entire infrastructure platform for AI agents across a single week. The headliners: Cloudflare Mesh (secure private networking for users, nodes, and autonomous agents), Sandbox GA (each agent gets a real, persistent computer with a shell and isolated filesystem), Managed OAuth for Access (makes internal apps "agent-ready" in one click), and a brand-new unified cf CLI designed to replace the sprawling Wrangler ecosystem with one consistent tool across 100+ products. They also shipped Durable Object Facets so every AI-generated app can get its own database, scoped API tokens with automated revocation, and Dynamic Sandbox auth with zero-trust egress. Whether or not you use Cloudflare, this is the most concrete bet any infrastructure company has made on agents being the dominant compute pattern going forward.
Articles & Tutorials
A Bug on the Dark Side of the Moon (12 min)
JUXT used their spec tool Allium to find a four-byte bug in the Apollo Guidance Computer code that failed to release a gyroscope resource lock during mid-torque "cage" events — a bug that sat in the code for decades, unnoticed by thousands of reviewers. A stunning demo of what behavioural specification catches that tests don't.
What We Learned Building a Rust Runtime for TypeScript (18 min)
Encore built a 67,000-line Rust runtime for TypeScript to break past Node's single-threaded limits. The architecture — tightly integrated with Node via N-API — gets them up to 9x higher throughput and 80% less latency than comparable frameworks.
Moving Railway's Frontend Off Next.js (7 min)
Railway migrated 200+ production routes from Next.js to Vite + TanStack Router with zero downtime, citing slow build times and a client-heavy architecture that didn't fit Next's model. A rare, detailed migration story from a team actually running it in production.
Why AI Sucks at Frontend (8 min)
Adam Argyle on why AI models consistently produce mediocre UI — they've been trained on a decade of average-to-bad frontend code, and the output reflects it. A sharp read on why "AI-generated CSS" rarely looks good.
Installing Every Firefox Extension (5 min)
One developer actually installed every Firefox extension ever published and documented the journey. It's Alice in Wonderland for web devs — genuinely delightful, and an entertaining window into the weirdest corners of the extension ecosystem.
The Intl API: The Best Browser API You're Not Using (6 min)
A code-heavy primer on what Intl actually does: locale-aware number formatting, relative time ("3 days ago"), plural rules, list formatting. Most devs are still hand-rolling this stuff.
7 View Transitions Recipes to Try (8 min)
Seven drop-in view transition patterns with code, covering page morphs, list reordering, and shared element transitions — the kind of UI polish that used to require a framework.
You Can't Cancel a Promise (Except Sometimes You Can) (5 min)
You can't cancel a Promise, but you can halt an async function by making it await a promise that never resolves. GC cleans up the rest. Useful pattern for long-running agent code.
Career & Takes
The Impact of AI on Software Engineers in 2026 (13 min)
Gergely Orosz's AI tooling survey finds mounting AI costs, more engineers hitting usage limits, and a growing split between teams treating AI as a productivity tool vs. those restructuring roles around it. Data, not vibes.
Do You Feel Like You're Losing Your Coding Ability Because of AI?
A thread that hit a nerve: hundreds of developers describing the specific skills they've noticed atrophying since adopting AI tooling full-time. Worth reading for the self-audit prompt alone.
Your Job Isn't Going Away. But Someone's Fundraise Depends on You Thinking It Is. (7 min)
A sharp counter-narrative to the "developers are obsolete" marketing pouring out of AI startups, arguing that fear is a go-to-market strategy, not a forecast.
Write Less Code, Be More Responsible (6 min)
Orhun argues the "let AI write the boring parts, you write the good parts" framing has it backwards — the boring parts are where long-term maintainability lives, and outsourcing them is where projects rot.
Tools & Releases
Phaser 4.0 (5 min)
The long-running 2D WebGL game framework celebrates its 13th birthday with a major perf-focused release — and ships dedicated AI skills files so agents can scaffold Phaser 4 apps correctly.
Bun 1.3.12 (4 min)
Bun now ships with native headless browser automation built into the runtime, plus an in-process cron scheduler via Bun.cron. No separate Puppeteer install needed.
React 19.2.5 / 19.1.6 / 19.0.5 — Security Patch (3 min)
Patch releases across all three supported React lines deploy a fix for a React Server Components vulnerability. If you're on 19.x, upgrade this week.
Mantine 9.0 (5 min)
The popular React component suite ships v9 with a full calendar scheduling component set — a gap that's sent plenty of teams to paid libraries in the past.
React Native 0.85 (4 min)
New animation backend and devtools improvements — with Expo now supporting iOS home-screen widgets and Live Activities as React components, no Xcode target needed.
GitHub Stacked PRs (3 min)
GitHub's private preview of stacked PRs is here — break large changes into small dependent PRs with native UI, a gh stack CLI, and one-click merge of the whole stack.
Ink 7.0 (4 min)
The React-for-terminals framework powering many popular CLIs lands on React 19.2, uses useEffectEvent internally for efficiency, and ships new hooks.
Watch
Are We Over-Engineering With Modern CSS? (10 min)
Kevin Powell asks whether container queries, @layer, and subgrid have pushed CSS into complexity creep — or whether we're just finally getting the tools we needed.
Next.js Vendor Lock-in No More (10 min)
Syntax interview with Tim Neutkens and Jimmi Lai from the Next.js team on the new adapter architecture — and whether it actually solves the "Next is tied to Vercel" critique.
React2Shell on TanStack Start?!? (10 min)
Jack Herrington digs into whether TanStack Start's new RSC support inherits the recent React2Shell vulnerability class — and how its design avoids it.
Other Links
Servo Is Now on crates.io — embeddable Rust browser engine ships v0.1.0
Core2 Rust Crate Yanked, Millions Affected — another supply chain wobble
Zig 0.16.0 "Juicy Main" Release Notes — detailed writeup worth the read
OpenSSL 4.0.0 — first major version in years
Google Will Penalise Back Button Hijacking in Search — effective June 2026
Squash and Stretch — Josh Comeau on Disney's 12 animation principles
The Radio State Machine — CSS-only state management pattern
No One Owes You Supply Chain Security — sharp take after a rough month
Everything Should Be Typed — scalar types aren't enough
JSON Alexander — Wes Bos's new JSON viewer extension
Claude Code Routines — Anthropic ships reusable routine definitions
Syncpack — dependency version consistency across monorepos
Three teams this week — MDN, Railway, TanStack — all decided the React/Next.js default wasn't the right call for their problem. None of them are abandoning React. All of them are saying "we thought about this and picked something else." That's a healthier conversation than the one the frontend world has been having, and I suspect we'll see more of it before the year is out. If you're sitting on a migration story of your own, hit reply — I want to hear it.
Until next week,
Niall

