Before you commit to a new tool, it's always nice to know how it stacks up against the competition!
This comparison table strives to be as accurate and as unbiased as possible. If you use any of these libraries and feel the information could be improved, feel free to suggest changes (with notes or evidence of claims) using the "Edit this page on GitHub" link at the bottom of this page.
Feature/Capability Key:
TanStack Router / Start | React Router DOM (Website) | Next.JS (Website) | |
---|---|---|---|
Github Repo / Stars | |||
Bundle Size | ❓ | ||
History, Memory & Hash Routers | ✅ | ✅ | 🛑 |
Nested / Layout Routes | ✅ | ✅ | 🟡 |
Suspense-like Route Transitions | ✅ | ✅ | ✅ |
Typesafe Routes | ✅ | 🟡 (1/5) | 🟡 |
Code-based Routes | ✅ | ✅ | 🛑 |
File-based Routes | ✅ | ✅ | ✅ |
Virtual/Programmatic File-based Routes | ✅ | ✅ | 🛑 |
Router Loaders | ✅ | ✅ | ✅ |
SWR Loader Caching | ✅ | 🛑 | ✅ |
Route Prefetching | ✅ | ✅ | ✅ |
Auto Route Prefetching | ✅ | ✅ | ✅ |
Route Prefetching Delay | ✅ | 🔶 | 🛑 |
Path Params | ✅ | ✅ | ✅ |
Typesafe Path Params | ✅ | ✅ | 🛑 |
Typesafe Route Context | ✅ | 🛑 | 🛑 |
Path Param Validation | ✅ | 🛑 | 🛑 |
Custom Path Param Parsing/Serialization | ✅ | 🛑 | 🛑 |
Ranked Routes | ✅ | ✅ | ✅ |
Active Link Customization | ✅ | ✅ | ✅ |
Optimistic UI | ✅ | ✅ | 🔶 |
Typesafe Absolute + Relative Navigation | ✅ | 🛑 | 🛑 |
Route Mount/Transition/Unmount Events | ✅ | 🛑 | 🛑 |
Devtools | ✅ | 🛑 | 🛑 |
Basic Search Params | ✅ | ✅ | ✅ |
Search Param Hooks | ✅ | ✅ | ✅ |
<Link/>/useNavigate Search Param API | ✅ | 🟡 (search-string only via the to/search options) | 🟡 (search-string only via the to/search options) |
JSON Search Params | ✅ | 🔶 | 🔶 |
TypeSafe Search Params | ✅ | 🛑 | 🛑 |
Search Param Schema Validation | ✅ | 🛑 | 🛑 |
Search Param Immutability + Structural Sharing | ✅ | 🔶 | 🛑 |
Custom Search Param parsing/serialization | ✅ | 🔶 | 🛑 |
Search Param Middleware | ✅ | 🛑 | 🛑 |
Suspense Route Elements | ✅ | ✅ | ✅ |
Route Error Elements | ✅ | ✅ | ✅ |
Route Pending Elements | ✅ | ✅ | ✅ |
<Block>/useBlocker | ✅ | 🔶 | ❓ |
SSR | ✅ | ✅ | ✅ |
Streaming SSR | ✅ | ✅ | ✅ |
Deferred Primitives | ✅ | ✅ | ✅ |
Navigation Scroll Restoration | ✅ | ✅ | ❓ |
Loader Caching (SWR + Invalidation) | 🔶 (TanStack Query is recommended) | 🛑 | ✅ |
Router Invalidation | ✅ | ✅ | ✅ |
"Actions" | 🔶 (TanStack Query, or router.invalidate recommended) | ✅ | ✅ |
<Form> API | 🛑 | ✅ | ✅ |
Runtime Route Manipulation (Fog of War) | 🛑 | ✅ | ✅ |
Full-Stack APIs | 🛑 | ✅ | ✅ |
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.