Remix 3 Breaks From React: A Full-Stack Framework Built on Web Standards

Remix has spent its life as a routing and data-loading layer that sat on top of React. Remix 3, currently in public beta, changes that relationship entirely: it drops the React runtime and rebuilds the framework around web platform primitives instead.
What actually changed
Remix 3 was announced by co-founder Michael Jackson, who reframed the project as a genuine full-stack framework rather than what he called the "center stack" of routing and rendering that earlier versions occupied. The beta is moving fast, with the team shipping new preview releases roughly every week.
On the server, routes are plain Fetch API handlers and controllers return standard web Response objects, so the server owns the request lifecycle directly instead of going through a framework-specific abstraction. Forms submit straight to URLs. On the frontend, Remix keeps JSX as the templating syntax developers already know, but underneath it swaps React for a forked version of Preact and moves to an imperative update model: state is a plain variable, and calling this.update() is what tells the framework something changed, rather than relying on React's re-render cycle.
Why break from React at all
The stated motivation is web-standards alignment: fewer framework-specific abstractions between the code you write and what the browser actually does, in both directions of the request/response cycle. Betting on Fetch API routes and native Response objects instead of a custom server abstraction is a bet that the platform itself is now good enough to build on directly, without the extra layer frameworks historically needed to add.
There is also a compatibility angle. Remix has been part of Shopify since 2022, and Shopify's storefront tooling has real weight behind this decision — a full-stack framework that owns both ends of the request lifecycle is a more attractive foundation for commerce infrastructure than one still routing everything through a client-side rendering framework it doesn't control.
The catch: no migration path
If you have a Remix 2 app, moving to Remix 3 is not an upgrade in the usual sense. The framework's own maintainers have said there is no automatic migration tooling, because the two versions' underlying philosophies diverge too sharply — you are not updating dependencies, you are re-architecting around a different rendering model and a different relationship with React entirely. For any team currently on Remix 2, that is the headline fact to plan around, not the framework's new capabilities.
Should you look at it now
Remix 3 is still at beta status, with weekly releases and details still shifting, so this is not yet a "migrate this quarter" decision for a production app. But it is worth tracking for two groups:
- Teams choosing a framework for a new project who want fewer layers between their code and the underlying HTTP request/response cycle, and who are comfortable with JSX decoupled from React specifically.
- Anyone already invested in Remix 2 who needs to budget for the fact that the next major version is a rewrite, not an upgrade, when planning longer-term roadmaps.
For teams not currently using Remix, the more interesting signal is the direction it points to: a full-stack framework built by people who spent years inside React's ecosystem, choosing to move away from it toward the raw web platform. Whether or not Remix 3 itself becomes widely adopted, it is a useful data point on how seriously some framework authors are taking "fewer abstractions, more platform" as the next phase of frontend architecture — alongside build-tool moves like Vite 8 landing on the Rust-based Rolldown bundler for large speed gains over the older Rollup-based pipeline.


