Personal note: I'm speaking at MongoDB.local London tomorrow (May 7) — if you're in town, come say hi.
Remix 3 entered beta this week and it's no longer a React framework.
That's the actual headline. The team that built React Router and then Remix as the prettier alternative to Next.js has shipped a 3.0 beta with its own UI component model, web standards-first, and React removed from the equation. The Shopify-acquired remnant has decided React isn't the load-bearing wall they want anymore.
Then, in the same week, the announcement that Bun is now part of Anthropic finally settled in. The runtime everyone has been quietly switching to in the last twelve months is now owned by one of the two AI labs whose tools half the industry already runs. The "I Am Worried About Bun" post on Hacker News got 500+ points in a day, the discussion was unusually nuanced, and the underlying question — whether a foundational JS runtime should be owned by an AI company — isn't going away.
Astro v7 alpha dropped at the same time, with a Rust compiler and Vite 8 underneath. Vitest's maintainers are openly discussing decoupling from Vite. Deno is experimenting with import defer. The same week, Mozilla and Cloudflare published the first prototype of WAICT — cryptographic verification that the JavaScript running in your browser matches what the site published.
Three things shifted ownership this week: a framework's relationship to React, a runtime's relationship to a vendor, and the trust model between a website and the JavaScript it actually serves you. Here's everything else worth your time.
Speak your PR description, bug reproduction, or Cursor prompt. Wispr Flow auto-tags file names, preserves variable names, and formats everything for immediate paste into GitHub, Jira, or your editor.
No re-typing. No context gaps. No mangled syntax. Works natively inside Cursor, Warp, and every IDE at the system level.
4x faster than typing. 89% of messages sent with zero edits. Used by engineering teams at OpenAI, Vercel, and Clay.
The Big 3
Remix 3 entered beta this week and the headline is buried in the beta notes: it's no longer a React framework. The team that created React Router in 2016, then Remix in 2020, then folded most of it back into React Router 7 in 2024, has shipped a 3.0 beta built on its own component model, web standards primitives, and zero React in the box. The pitch is that Remix can finally move at the speed of the platform — Web Components, Streams, Forms, real <a> tags — without the ergonomic and bundle-size penalties of dragging React along. Whether that's a good bet for your stack or not, the larger story is that the second prominent web framework this year (after MDN's frontend rewrite) has decided "React by default" wasn't the right call. The Shopify-owned project has now openly forked from the React community it grew out of.
The "Bun joins Anthropic" announcement crystallised this week with a viral counter-take: William Johnston's I Am Worried About Bun hit 500+ on Hacker News in a day, with one of the most thoughtful discussion threads HN has had on AI/OSS ownership in months. The argument isn't that Anthropic is a bad steward — it's that a foundational JavaScript runtime now sits inside a vendor whose primary business is selling tokens, and incentives drift in directions you don't always notice for years. Jarred Sumner's quiet experimental commit porting Bun from Zig to Rust the same week did not help calm the discourse. If you've been quietly migrating from Node to Bun, this is the week to think hard about what you actually depend on, what your fallback is, and whether your runtime should be owned by anyone who also sells you LLMs.
Astro shipped v6.2 stable and v7 alpha at the same time, and v7 is the bigger news. The framework now ships on top of Vite 8 with a Rust-based compiler doing the heavy lifting, with significantly faster cold-start and incremental builds on real projects. v7 also comes alongside a real-world v5 → v6 migration writeup from a developer running it in production — the kind of post that's more useful than any release notes for deciding when to pull the trigger. Combined with Remix walking away from React and Bun joining Anthropic, this is a week where the framework layer of the JS stack genuinely moved.
Articles & Tutorials
Trustworthy JavaScript for the Open Web (10 min)
Mozilla shipped the first Firefox Nightly prototype of WAICT — a draft spec for cryptographically verifying that the JavaScript running in a user's browser actually matches what the site published. Cloudflare's companion explainer is the clearer read on why this matters now.
Lessons for Agentic Coding: What Should We Do When Code Is Cheap? (12 min)
Drew Breunig's ten observations from running coding agents in real workflows. Less hype, more "here's what actually changes when generation is free and review is the bottleneck."
Three Ways to Convert JSON to TypeScript. Only One Is Deterministic. (6 min)
Aral Roca on the trade-offs between AST-based codegen, runtime introspection, and LLM-assisted conversion — and which one you want when reproducible builds actually matter.
Computer Use Is 45× More Expensive Than Structured APIs (8 min)
Reflex's benchmark on the cost gap between a Computer Use agent (clicking around a UI) and a structured API call to the same backend. A useful gut check for any "let the agent drive the browser" architecture.
Fixed-Height Cards: More Fragile Than They Look (11 min)
A practical CSS post on why locking card heights causes more layout pain than it solves, and the modern grid + intrinsic sizing patterns that quietly fix it.
Media Queries Range Syntax — An Interactive Walkthrough (5 min)
Ahmad Shadeed on the new range syntax for media queries (@media (width >= 600px)). Cleaner, less error-prone than the old min/max dance, and shipped widely enough to use today.
Testing Vue Components in the Browser (10 min)
Julia Evans sets up integration tests that run components directly in the browser, and walks through the surprises around mounting, DOM timing, and coverage measurement. Useful even if you're not on Vue.
I Got a $134 Cloudflare D1 Bill — Here's How I Cut It 95% (8 min)
Justin Ahinon's adventures running SvelteKit on Workers with D1 and Drizzle. A specific, instructive read on where edge SQLite costs come from and how to actually keep them down.
Career & Takes
When Everyone Has AI and the Company Still Learns Nothing (8 min)
A sharp argument that the productivity gains from AI vanish at the org level when nothing about how decisions get made or knowledge gets shared has changed. The tools are new; the organisation isn't.
The Three Inverse Laws of AI (6 min)
A short, well-aged essay-style framing of the counterintuitive economics of AI tooling: the cheaper generation gets, the more expensive everything around it becomes. Hit 400+ on HN.
AI Didn't Delete Your Database. You Did. (6 min)
On the recent rash of "the agent dropped my prod database" stories: the agent had the credentials, the loose permissions, and the unguarded shell because we gave them to it. A reframing piece worth sitting with.
Am I a Developer or Just a Prompt Engineer? (5 min)
A short, honest piece from a mid-career developer on the identity wobble of going from writing code to mostly directing it.
Tools & Releases
Cloudflare Dynamic Workflows (8 min)
Durable execution that follows the tenant — a new library that lets you route long-running workflows to tenant-provided code on the same multi-tenant runtime, without spinning up an isolate per customer. Useful pattern even if you're not on Workers.
Anime.js 4.4 (3 min)
The animation engine turns ten with a new scrambleText effect, an auto-grid layout mode for staggered grids, and what's quietly the best documentation site in the JS animation space.
PM2 7.0 (4 min)
The Node.js process manager gets a major refactor that slashes its dependency footprint, and extends cluster mode and the monitoring agent to Bun apps.
Vercel deepsec — Security Harness for Codebases (5 min)
A new agent-driven scanner that finds and proposes fixes for vulnerabilities in your code, scoped per project. The post-Vercel-breach UX is interesting on its own merits.
Cursor SDK (5 min)
Cursor opens up a real SDK for embedding its agent into other tools. The pitch: stop screenshotting your terminal — give your agent a programmatic surface.
Vercel Portless — Run Local Dev Over HTTPS .localhost (3 min)
Tired of localhost:3000? Portless gives you a real HTTPS hostname for your local dev servers, no certs to wrangle. Small quality-of-life win.
Watch
Doing Vibe Physics — Alex Lupsasca, OpenAI (45 min)
Latent Space's interview with the theoretical physicist who used GPT-5.x to derive new results in quantum gravity. Wild on the surface, useful underneath as a case study in how AI changes the shape of research work.
PyTorch Eng Director: Promo Hacking, Industry Shifts, Regrets (30 min)
John Myles White on the parts of big-company engineering nobody writes about — promo games, why senior people leave, what's changed in the last decade, and what he'd undo.
Snack Pack: A Programming Language Designed for AI to Write? (15 min)
Wes and Scott on the "should we design a language for LLMs to generate?" question that's been bouncing around. Skeptical, fair, and the right kind of short.
Other Links
Vitest Maintainer Proposes Going Framework-Agnostic — decoupling from Vite is on the table
DeepSeek v4 + the End of the OpenAI/Microsoft AGI Clause — the news cycle quietly skipped past this
Cloudflare Agentic Inbox — Open-Source Email App — React 19 + React Router 7 reference build
Chrome Silently Installs a 4 GB AI Model on Your Device — without explicit consent, per the report
Ladybird Browser April Update — JS engine and CSS progress, alpha later this year
Granite 4.1 3B SVG Pelican Gallery — Simon Willison's running benchmark, IBM's new entry
A LinkedIn Recruiter Sent Me Malware Disguised as a "Pre-Interview Code Review" — pattern is rising fast
AWS WorkSpaces Now Gives AI Agents Their Own Desktop — for legacy apps without APIs
Honker — Postgres-Style NOTIFY/LISTEN With SQLite — Node and Bun bindings, neat little library
If I Could Make My Own GitHub — Mat Duggan's affectionate, pointed wishlist
Crashcat — JS 3D Rigid-Body Physics for Games — the project homepage is a cat in a convertible
Cloudflare Code Orange — Fail Small Complete — full writeup of their resilience push
A framework dropped React, a runtime got an AI owner, and a browser started cryptographically verifying the JS it serves you. The week's theme is ownership — of code, of stacks, of trust. If you're at MongoDB.local London tomorrow, come find me; if you're not, hit reply with what's actually shifting in your stack this week — those are the replies I read first.
Until next week,
Niall

