Remix just dropped its version 3 beta preview, and it's a big shift. Previous versions were what co-founder Michael Jackson calls "center stack." They handled routing and rendering, nothing else. Remix 3 goes full stack. Routing, middleware, sessions, auth, forms, uploads, data management, UI components, theming, tests. All of it lives under one umbrella, built from small composable packages that work standalone.

The technical approach is what Jackson calls "unbundling." The runtime becomes the source of truth, not the build tool. Routes are Fetch API routes. Controllers return responses. Forms submit to URLs. There's a new concept called "frames," server-rendered UI fragments with their own source URL that can load and navigate independently. Components use a procedural style with mixins instead of nested composition patterns like Higher-Order Components.

Remix 3 is built for agents first. The framework uses what Jackson calls "durable concepts," routes in one place, controllers returning responses, middleware owning request lifecycle, forms submitting to URLs. Clear building blocks that agents can reason about. The procedural style with flat mixins means LLMs can track state and behavior more accurately within limited context windows. Using standard web primitives like the Fetch API aligns the codebase with what's already in LLM training data, so agents generate more reliable code.

That's the bet. And it's a smart one.

Community reaction is split. Some developers question whether re-implementing full-stack capabilities in Remix beats what React Router 7 with TypeScript and Vite already does well. Jackson positions Remix 3 as a way to decouple from external roadmaps and reduce how much of your app depends on somebody else's plans. The beta is live now for experiments and feedback.