Remix 3.0 Dropped React — Here's What Every MERN Dev Needs to Think About

Remix 3.0 shipped stable this week, and buried in the changelog is something that'll make every MERN developer do a double take: it no longer requires React. The framework that helped bring server-side React back into fashion just... cut the cord. And if you've been treating React as the permanent "R" in your MERN stack, this is worth a slow read.
What Actually Changed in Remix 3.0
The headline is straightforward — Remix 3.0 is now framework-agnostic. You can use it with Vue, Svelte, Solid, or even plain HTML templates. React isn't gone; it's just no longer a hard dependency.
But to understand why this matters, you need to know what Remix actually does. Remix has always been less about UI rendering and more about web conventions: routing, form handling, data loading, and server/client data flow. The React part was always sort of... bolted on.
Here's what a simple Remix 3.0 route looks like now, without a JSX component in sight:
// app/routes/home.js — Remix 3.0, no React required
export async function loader({ request }) {
const users = await db.collection("users").find().toArray();
return Response.json({ users });
}
export default function template({ data }) {
return `
<ul>
${data.users.map(u => `<li>${u.name}</li>`).join("")}
</ul>
`;
}
And if you want React, you still just import it — Remix doesn't stop you. The difference is that React is now an adapter, not the foundation.
This Is Bigger Than Just One Framework Release
Remix 3.0 didn't appear in a vacuum. The same week, JavaScript Weekly's top essay asked why developers don't "use the platform" more — meaning: why do we keep rebuilding things browsers already support natively? Forms that work without JavaScript, native dialog and popover APIs, client-side routing primitives — a lot of this is genuinely solid now. But frameworks built six or seven years ago were designed to paper over a much buggier, less capable browser landscape. That landscape is gone. The scaffolding stuck around anyway.
A few other releases this week hint at the same momentum:
Preact 11 shipped with better hydration and went ESM-only — leaner by design
Nuxt 4.6 added Vue Vapor support (a compiled, vdom-free renderer) and built-in sessions
Effect 4.0 is a ground-up rewrite with 5x smaller minimal bundles
The pattern across all of them: less magic, smaller bundles, more reliance on what the browser and Node.js already do well. Remix 3.0 dropping React isn't a weird outlier — it's the logical endpoint of a trend that's been building for a couple of years.
What This Actually Means for Your MERN Stack
Here's the honest take: nothing breaks today. If you're running a production MERN app on React 18 or React 20, you don't need to touch anything.
But if you're planning a new project — or you've been eyeing Remix as a potential move from Create React App or Vite — the calculus just changed.
With Remix 3.0 framework-agnostic:
You can use Remix's routing and data conventions (which are genuinely excellent) without committing to a specific view layer
Your Express backend and MongoDB setup stay identical — Remix 3.0 still integrates with Node.js the same way
You can slowly swap the rendering strategy without full rewrites
Here's how you'd wire Remix 3.0 into an existing Express + MongoDB setup:
// server.js — Express + Remix 3.0 adapter
import express from "express";
import { createRequestHandler } from "@remix-run/express";
import { build } from "./build/server/index.js";
const app = express();
// Your existing MongoDB API routes stay completely untouched
app.use("/api", yourExistingApiRoutes);
// Remix handles everything else — with whatever UI layer you chose
app.all("*", createRequestHandler({ build }));
app.listen(3000);
Your API layer doesn't move. Your MongoDB queries don't move. Only the frontend rendering layer becomes a choice rather than a constraint.
Should You Actually Care?
Don't migrate for the sake of migrating. If your React codebase is working, the component ecosystem is enormous, and React 20's new compiler improvements are genuinely good. Ripping out React because a different framework dropped it as a dependency isn't a strategy — it's just churn.
But if you're starting fresh — especially if your app is more content-heavy or form-driven than SPA-heavy — Remix 3.0's framework-agnostic model is worth a serious look:
Built-in progressive enhancement (forms work without JavaScript by default)
Server-side data loading that's convention over configuration
No framework lock-in on the UI layer
Node.js 26 LTS as the runtime means you get the same backend stability regardless
And for MERN developers who are also dabbling in Python backends or Go microservices: the lesson here is more architectural than it is framework-specific. Your frontend framework shouldn't be load-bearing for your data model. The M, E, and N in MERN were always the durable, boring-in-the-best-way parts. The R was always the most likely to shift.
The Takeaway
Remix 3.0 going framework-agnostic is one of those releases that feels minor until you sit with it. The web platform is genuinely more capable than it was when most of our framework choices were made. The best framework is starting to look less like "React or Vue" and more like "the browser, with just enough structure."
If you're building something new and greenfield, now is a good time to ask whether you actually need a full SPA framework or whether Remix's conventions plus whatever rendering layer you prefer does the job with less overhead.
What's your current frontend setup? Are you watching these framework-agnostic moves, or staying put with React? Drop your thoughts in the comments.
About the author
- Love to code, gaming. And I use vim btw.
Comments
Join the discussionNo comments yet. Be the first to comment.





