Hey guys,
Welcome to another edition of Import React by Cosden Solutions!
Two big threads this week. Remix 3 finally shipped its beta - and it dropped React entirely, swapping it for a Preact fork and a "model-first, LLM-friendly" philosophy that's splitting the room. Meanwhile, after three straight weeks of supply-chain carnage, the ecosystem finally hit back: npm staged publishing is now live for everyone.
Plus: liquid glass rendered on the GPU, Expo UI going stable, and the Bun Rust rewrite gets its two-weeks-later reckoning.
Let's get into it.
⚡️ The Latest In React
💔 Remix 3 Beta Is Here - and It No Longer Uses React
The "wake up, Remix" saga reaches its first real milestone: a beta preview you can actually npx remix@next new today. The headline is still the same gut-punch - Remix 3 drops React for a fork of Preact and rebuilds the whole stack (routing, sessions, auth, forms, uploads, static files) with near-zero critical dependencies. The pitch this time is sharper: an imperative, web-standards model with "clear shapes" that are easy for humans and AI agents to reason about. It's a pre-release, not production-ready - but it's the clearest look yet at a post-React full-stack framework from the people who built React Router.
🛡️ npm Staged Publishing Is Now Live for Everyone
After mini-shai-hulud, the @tanstack compromise, and the 317-package burst, the registry is fighting back. As of May 22, every npm publish can now be routed to a staging queue where a human has to approve it with 2FA before it goes live - including publishes from CI/CD and OIDC trusted-publishing flows. GitHub calls it "proof of presence." New --allow-file/--allow-remote/--allow-directory install flags landed in npm 11.15.0 too, and pnpm 11.3 added pnpm stage. The timing is pointed: Socket disclosed the new TrapDoor campaign (34 packages, 384 versions across npm/PyPI/Crates) the same week.
📱 Expo UI Hits Stable - Native iOS & Android From One Import
With SDK 56, @expo/ui goes stable: one import ships real SwiftUI on iOS and Jetpack Compose on Android, actual platform components underneath, no bridge hacks. The release also drops native drop-in replacements for seven of the most-used React Native community packages. If you've been waiting for the "write once, render genuinely native" story to stop being a demo, this is the one to test.
🪟 Liquid DOM - Apple's Liquid Glass, Rendered on the GPU for the Web
Andrew Prifer's new monorepo does liquid-glass UI as a real WebGPU render layer, not a CSS approximation - with React 19 bindings, a Three.js adapter, and a React Three Fiber bridge. There's a renderer-agnostic layout engine doing SwiftUI-style measurement underneath, so you can describe glass UI declaratively in React and let it own the canvas. Easily the best-looking thing to land in the ecosystem this week.
📚 Storybook 10.4 Adds First-Class TanStack Support
10.4 ships first-class TanStack React support plus the ability for agents to set up Storybook in complex apps on their own. If your component workshop has been awkwardly bolted onto a TanStack Router/Start project, this is the upgrade that makes it click.
🌳 TanStack Router Keeps Shipping RSC - Latest Release Fixes Streaming
The RSC-in-Start work is moving fast. The newest router release lands streaming fixes for the experimental Server Components path plus a batch of stabilized tests across react-start-rsc and friends. If you're tracking TanStack's "RSC as data, not a server-owned tree" approach, the deltas are worth a skim before you pin a version.
Quick Links
Remix 3 Ditched React - Should You Stick With It? - The clearest explainer of the two-paths split: React Router 7 ("Remix 2, rebranded") vs the React-less Remix 3 rewrite. Read before you form an opinion in the group chat.
tinykeys 4.0 - Jamie Kyle's tiny, modern keybinding library just hit 4.0. Dead-simple API, live demos on the page. Bookmark for the next time you wire up
⌘K.Chrome Previews Declarative Partial Updates - New
<template for>plussetHTML/streamHTMLAPIs for updating HTML out of order without a framework. Experimental in Chrome 148, polyfills exist. The platform quietly absorbing more framework jobs.An Official Node.js Codemod: Axios → fetch - The Node team shipped a codemod that rewrites Axios calls to the Fetch API. One less dependency, one less supply-chain surface.
Hot Updater - Self-hosted over-the-air updates for React Native. Ship JS updates without an app-store round-trip, on your own infra.
Apache ECharts 6.1 - Point release of the heavyweight charting library. Relevant given how many React dashboards quietly wrap it.
Kysely 0.29 - The popular type-safe SQL query builder ships a new version. Still the cleanest "Prisma's types without Prisma" option for a lot of teams.
Modern Web Guidance - A suite of expert-vetted "skills" to steer AI agents toward good web patterns (e.g. "preload pages on hover over important links"). Useful if your agent keeps shipping mid frontend.
🧠 AI & General Programming
⚙️ The Bun Rust Rewrite, Two Weeks Later: The 13,000-Unsafe-Block Reckoning
Remember last week's million-line YOLO merge? The dust is settling and the number everyone's circling is 13,044 unsafe blocks - versus ~73 in comparable hand-written Rust. The 99.8% test pass rate is real, but as one widely-shared post argues, "code you don't understand should not run in production" - and AI-speed translation buys functional correctness while quietly embedding structural debt that still needs a human audit. The HN thread is the best place to watch the two camps go at it.
🦕 Deno 2.8 - The "Biggest Minor Release" to Date
The headline number is brutal for the runtime wars: Node.js compatibility jumped from 42% to 76.4% - now higher than Bun. Plus big perf gains across the board, deno audit fix to upgrade vulnerable deps, deno why, a built-in CPU profiler, and dropping the npm: prefix requirement. The "just use Node" gravity is real, but Deno keeps closing the gap.
🔥 AI-Assisted Engineers Are Burning Out: Is This Fine?
A pointed look at the quieter cost of agentic coding - the review fatigue, the context-switching, the "I shipped it but I don't understand it" dread. A good companion to the Bun discourse above, and a healthier framing than the usual "you're not using AI enough" guilt-tripping.
🛠️ How Yelp Cut Build Times in Half: Webpack → Rspack
A real migration writeup with real numbers: build times roughly halved by swapping in the Rust-powered, drop-in webpack replacement. The most useful part is what they learned about barrel files and re-exports quietly wrecking your build graph - applies whether or not you ever touch Rspack.
👋 Mozilla Says Goodbye to asm.js
Firefox's JS engine now disables asm.js optimizations by default. A small end-of-an-era moment: the thing that kickstarted "serious compute in the browser" before WebAssembly existed is officially being put out to pasture.
🧩 A JavaScript Crossword Where Every Answer Is JavaScript
Your reward for getting to the bottom: a hand-crafted puzzle that abuses every weird corner of the language (0103 == 67, tagged template literals, console.log\hi``...). People are either cheering or cursing on social. Take the win, or rage-quit gracefully.
See you next week,
Darius