tanstack-router-best-practices▌
deckardger/tanstack-agent-skills · updated Apr 18, 2026
Type-safe routing patterns, data loading strategies, and navigation best practices for TanStack Router in React.
- ›Covers 33 rules across 10 categories: type safety, route organization, data loading, search params, error handling, navigation, code splitting, preloading, and route context
- ›Emphasizes type inference through router registration, from parameters, and queryOptions integration to prevent runtime errors
- ›Includes data loading patterns with TanStack Query integration, deferred d
TanStack Router Best Practices
Comprehensive guidelines for implementing TanStack Router patterns in React applications. These rules optimize type safety, data loading, navigation, and code organization.
When to Apply
- Setting up application routing
- Creating new routes and layouts
- Implementing search parameter handling
- Configuring data loaders
- Setting up code splitting
- Integrating with TanStack Query
- Refactoring navigation patterns
Rule Categories by Priority
| Priority | Category | Rules | Impact |
|---|---|---|---|
| CRITICAL | Type Safety | 4 rules | Prevents runtime errors and enables refactoring |
| CRITICAL | Route Organization | 5 rules | Ensures maintainable route structure |
| HIGH | Router Config | 1 rule | Global router defaults |
| HIGH | Data Loading | 6 rules | Optimizes data fetching and caching |
| HIGH | Search Params | 5 rules | Enables type-safe URL state |
| HIGH | Error Handling | 1 rule | Handles 404 and errors gracefully |
| MEDIUM | Navigation | 5 rules | Improves UX and accessibility |
| MEDIUM | Code Splitting | 3 rules | Reduces bundle size |
| MEDIUM | Preloading | 3 rules | Improves perceived performance |
| LOW | Route Context | 3 rules | Enables dependency injection |
Quick Reference
Type Safety (Prefix: ts-)
ts-register-router— Register router type for global inferencets-use-from-param— Usefromparameter for type narrowingts-route-context-typing— Type route context with createRootRouteWithContextts-query-options-loader— Use queryOptions in loaders for type inference
Router Config (Prefix: router-)
router-default-options— Configure router defaults (scrollRestoration, defaultErrorComponent, etc.)
Route Organization (Prefix: org-)
org-file-based-routing— Prefer file-based routing for conventionsorg-route-tree-structure— Follow hierarchical route tree patternsorg-pathless-layouts— Use pathless routes for shared layoutsorg-index-routes— Understand index vs layout routesorg-virtual-routes— Understand virtual file routes
Data Loading (Prefix: load-)
load-use-loaders— Use route loaders for data fetchingload-loader-deps— Define loaderDeps for cache controlload-ensure-query-data— Use ensureQueryData with TanStack Queryload-deferred-data— Split critical and non-critical dataload-error-handling— Handle loader errors appropriatelyload-parallel— Leverage parallel route loading
Search Params (Prefix: search-)
search-validation— Always validate search paramssearch-type-inheritance— Leverage parent search param typessearch-middleware— Use search param middlewaresearch-defaults— Provide sensible defaultssearch-custom-serializer— Configure custom search param serializers
Error Handling (Prefix: err-)
err-not-found— Handle not-found routes properly
Navigation (Prefix: nav-)
nav-link-component— Prefer Link component for navigationnav-active-states— Configure active link statesnav-use-navigate— Use useNavigate for programmatic navigationnav-relative-paths— Understand relative path navigationnav-route-masks— Use route masks for modal URLs
Code Splitting (Prefix: split-)
split-lazy-routes— Use .lazy.tsx for code splittingsplit-critical-path— Keep critical config in main route filesplit-auto-splitting— Enable autoCodeSplitting when possible
Preloading (Prefix: preload-)
preload-intent— Enable intent-based preloadingpreload-stale-time— Configure preload stale timepreload-manual— Use manual preloading strategically
Route Context (Prefix: ctx-)
ctx-root-context— Define context at root routectx-before-load— Extend context in beforeLoadctx-dependency-injection— Use context for dependency injection
How to Use
Each rule file in the rules/ directory contains:
- Explanation — Why this pattern matters
- Bad Example — Anti-pattern to avoid
- Good Example — Recommended implementation
- Context — When to apply or skip this rule
Full Reference
See individual rule files in rules/ directory for detailed guidance and code examples.
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.6★★★★★71 reviews- ★★★★★Mei Lopez· Dec 28, 2024
tanstack-router-best-practices is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Pratham Ware· Dec 20, 2024
tanstack-router-best-practices fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Evelyn Thomas· Dec 20, 2024
Keeps context tight: tanstack-router-best-practices is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Dhruvi Jain· Dec 12, 2024
Useful defaults in tanstack-router-best-practices — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Diya Rao· Dec 8, 2024
tanstack-router-best-practices is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Aarav Harris· Nov 27, 2024
tanstack-router-best-practices reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Mateo Iyer· Nov 23, 2024
tanstack-router-best-practices fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Aanya Singh· Nov 23, 2024
We added tanstack-router-best-practices from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★Mei Thomas· Nov 19, 2024
tanstack-router-best-practices reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Noah Agarwal· Nov 11, 2024
Registry listing for tanstack-router-best-practices matched our evaluation — installs cleanly and behaves as described in the markdown.
showing 1-10 of 71