SkillAgentSearch skills...

tanstack-router

Type-safe routing with TanStack Router v1 for React apps, including file-based routing, loaders, search params validation, auth guards, and TanStack Query integration

Install / Use

npx skills add PatrickJS/awesome-cursorrules

Installs into whichever agent you are using.

About this skill
📦

Other

Other agent config

Quality Score

91/100

Category

Automation

Supported Platforms

Cursor

Our assessment of tanstack-router

tanstack-router scores 91/100 on our quality scale, 63rd of 641 Automation skills we index (top 10%).

Its Other is 3.2 KB long, well organised into 9 sections with 7 code examples: a solid amount of guidance for an agent.

With 40,827 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
20/20
Description
15/15
Adoption
20/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • Our last check on 2026-09-21 found the source still online.
  • It is released under the CC0-1.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 98/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-23. Automated pattern scan on 2026-09-23. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

tanstack-router compared with similar skills

All 4 of these similar skills score higher than tanstack-router; compare them before choosing.

SkillScoreStarsUpdatedFormat
tanstack-router (this skill)by PatrickJS9140.8k4mo agoOther
Agent-Reachby Panniantong10085.1k8d agoCLAUDE.md
headroomby headroomlabs-ai10073.6ktodayCLAUDE.md
rufloby ruvnet10073.2ktodayCLAUDE.md
nanobotby HKUDS10048.5ktodayMCP Server

Frequently asked questions

How do I install tanstack-router?
Run npx skills add PatrickJS/awesome-cursorrules. The install tabs above show the steps for each supported agent.
Which AI agents does tanstack-router work with?
It is written for Cursor, as a Other file. Other agents that read the same format can often use it too.
Is tanstack-router safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is CC0-1.0-licensed and scores 98/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is tanstack-router still maintained?
The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

description: "Type-safe routing with TanStack Router v1 for React apps, including file-based routing, loaders, search params validation, auth guards, and TanStack Query integration" globs: ["src/routes/**/*", "src/routeTree.gen.ts", "app.config.ts"] alwaysApply: false

You are an expert in TanStack Router v1, React, TypeScript, and type-safe client-side routing.

Core Principles

  • TanStack Router is 100% type-safe — leverage TypeScript generics for params, search params, and loader data
  • Prefer file-based routing with @tanstack/router-vite-plugin for scalability
  • Always define routes with createFileRoute or createRootRoute
  • Route data loading belongs in loader functions, not in component useEffect
  • Search params are first-class — always define their schema with Zod for type safety

File-Based Route Conventions

src/routes/
  __root.tsx          ← Root layout
  index.tsx           ← / route
  posts/
    index.tsx         ← /posts
    $postId.tsx       ← /posts/:postId (dynamic)
    _layout.tsx       ← Layout route (no path segment)
  _auth/              ← Pathless auth layout group
    dashboard.tsx

Route Definition

export const Route = createFileRoute('/posts/$postId')({
  loader: async ({ params }) => fetchPost(params.postId),
  component: PostComponent,
  errorComponent: ({ error }) => <ErrorBanner message={error.message} />,
  pendingComponent: () => <PostSkeleton />,
})

function PostComponent() {
  const post = Route.useLoaderData()     // type-safe
  const { postId } = Route.useParams()  // type-safe
  return <div>{post.title}</div>
}

Type-Safe Search Params

  • Always define search params with Zod and validateSearch
  • Access with Route.useSearch() — never read window.location.search directly
const searchSchema = z.object({
  page: z.number().int().min(1).default(1),
  q: z.string().optional(),
})

export const Route = createFileRoute('/search')({
  validateSearch: searchSchema,
  component: SearchPage,
})

Navigation

  • Use <Link> for internal navigation — never <a href>
  • Always pass typed params and search — the compiler will catch mistakes
<Link to="/posts/$postId" params={{ postId: '123' }}>View Post</Link>

Loaders + TanStack Query Integration

export const Route = createFileRoute('/posts')({
  loader: ({ context: { queryClient } }) =>
    queryClient.ensureQueryData(postsQueryOptions()),
  component: PostsPage,
})

Router Context for Dependency Injection

// __root.tsx
interface RouterContext { queryClient: QueryClient; auth: AuthState }
export const Route = createRootRouteWithContext<RouterContext>()({ component: RootLayout })

// main.tsx
const router = createRouter({ routeTree, context: { queryClient, auth } })

Auth Guards

export const Route = createFileRoute('/_auth/dashboard')({
  beforeLoad: ({ context }) => {
    if (!context.auth.isAuthenticated) throw redirect({ to: '/login' })
  },
  component: Dashboard,
})

Performance

  • Set defaultPreload: 'intent' on router for automatic prefetching on hover/focus
  • Use React.lazy for route component code splitting
  • Install @tanstack/router-devtools and render <TanStackRouterDevtools /> in development

Related Skills

View on GitHub
GitHub Stars40.8k
CategoryAutomation
Updated3mo ago
Forks3.5k

Languages

JavaScript

Trust signals

98/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info