The React Router v7 merger and Remix 3 divergence
Remix 3 shifts toward web platform primitives and a Preact runtime, while TanStack Start outperformed React Router by 25% in throughput during marketplace application benchmarks. Developers must now choose between React-centric frameworks and web-standard approaches.
The Remix split
The Remix team merged core features into React Router v7. This shift forces Remix 3 into a separate direction. Remix 3 rejects the React runtime to use a forked Preact. It focuses on web platform primitives like Fetch API routes and webResponse objects. Existing Remix 2 users should point to React Router v7 for continuation instead of attempting a direct upgrade to Remix 3. This version is a fresh start for those who want to avoid heavy framework abstractions. The framework bundles routes, request handlers, middleware, sessions, auth, forms, uploads, assets, data and database management, UI components, theming, networking, and tests under a single umbrella. Remix 3 includes "frames," which are server-rendered fragments that load and reload independently. It also uses an imperative model where state is a plain variable and a this.update() call signals changes. Events use a universal onprop, and async work uses standard AbortController signals. Remix 3 also uses "unbundling," where the runtime acts as the source of truth for assets. Alex Kotliarsky calls Remix 3 "the Grug Brain version of what Next.js should have been." While the Remix team provides a codemod to change imports for those moving to React Router v7, the transition to Remix 3 is a complete architectural overhaul that rejects the React runtime entirely.
Performance benchmarks and framework choices
Developers evaluating frameworks must look at throughput and latency. In a test using a trading card marketplace app with 5 games, 50 card sets, 10,000 cards, 100 sellers with ratings, and 50,000 listings, TanStack Start outperformed React Router by 25% in throughput and maintained 35% lower latency. The application included search, game detail, card detail, and seller list pages. Next.js struggled under this benchmark load. However, upgrading Next.js to version 16.2.0-canary.66 doubled its throughput and reduced latency six times. This improvement followed a 75% speedup in React RSC deserialization. Next.js provides SSR, API routes, and deployment capabilities out of the box.
| Specification | React Router v8 | TanStack Start | Next.js (Canary) |
|---|---|---|---|
| Min Node Version | 22.22.0+ | N/A | N/A |
| Min React Version | 19.2.7+ | Requires React | N/A |
| Min Vite Version | 7+ | N/A | N/A |
| Core Focus | ESM-only, Middleware | Performance, Type Safety | Ecosystem, RSC maturity |
You should consider how these numbers change under your specific production loads. TanStack Router provides type-safe routing and nested layouts. Next.js leads the market with mature React Server Components.
Routing, auth, and migration paths
The technical requirements and authentication methods vary across the landscape. React Router v8 uses ESM-only builds and makes middleware a baseline feature. This release also marks React Router v6 and Remix v2 as End of Life. The removal of the react-router-dom package means developers must import from react-router or react-router/dom. React Router v8 also includes future flags like v8_splitRouteModules, which enables splitting client-side route exports into separate chunks. It also includes v8_trailingSlashAwareDataRequests and v8_passThroughRequests to handle URL normalization. Authentication implementation differs based on the selected provider. WorkOS provides a dedicated @workos-inc/authkit-react-router SDK for React Router 7+. This SDK includes authkitLoader for protecting routes in loaders and manages sessions through encrypted cookies on the server. WorkOS works well for B2B applications that need organization management and enterprise SSO. In contrast, Auth0 requires manual token validation and session management within loaders. Developers using Auth0 must extract tokens from cookies or headers and verify them against a JWKS endpoint. TanStack libraries like TanStack Query handle server state management and caching, while TanStack Form manages form state and validation. TanStack Router provides end-to-end type safety and built-in stale-while-revalidate caching. Will the preference for web standards eventually diminish the popularity of React-centric frameworks?