Skip to content

Conversation

@lachlancollins
Copy link
Member

@lachlancollins lachlancollins commented Dec 5, 2025

🎯 Changes

Adjusts verify-links to ensure links can resolve locally (i.e. as intended), rather than having to resolve 1 level higher

The level adjusting is then handled by the TanStack website in #563

Summary by CodeRabbit

Documentation

  • Documentation

    • Restructured internal documentation links throughout guides, API references, and tutorials for improved navigation consistency.
    • Enhanced documentation link verification system for better reliability.
  • Chores

    • Updated build configuration to include new documentation testing workflow.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 5, 2025

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This PR systematically updates internal documentation links across the repository from parent-directory relative paths (../) to current-directory relative paths (./) or shorter paths (../../guide/../guide/). It also refactors the link verification script to use tinyglobby and improves error handling, while renaming a build script in package.json.

Changes

Cohort / File(s) Summary
Documentation Link Path Updates - Router API
docs/router/eslint/eslint-plugin-router.md, docs/router/framework/react/api/router.md, docs/router/framework/react/api/router/*.md (39 files)
Updated relative hyperlink paths from ../ to ./ across type definitions, class documentation, component/hook documentation, and function references throughout the Router API documentation hierarchy.
Documentation Link Path Updates - Router Guides
docs/router/framework/react/guide/*.md (13 files), docs/router/framework/react/decisions-on-dx.md, docs/router/framework/react/faq.md
Adjusted relative link paths from parent-directory (../) to current-directory (./) or shortened paths (e.g., ../../guide/../guide/) in routing guides, authentication, data loading, and FAQ documentation.
Documentation Link Path Updates - Router How-To
docs/router/framework/react/how-to/*.md (18 files)
Updated internal navigation links in how-to guides to use current-directory relative paths (./ instead of ../), and adjusted cross-references to align with new documentation structure.
Documentation Link Path Updates - Router Installation
docs/router/framework/react/installation/*.md (7 files), docs/router/framework/solid/installation/*.md (3 files), docs/router/integrations/query.md
Corrected relative paths to file-based routing API reference from deeper paths (e.g., ../../../../api/file-based-routing.md) to shorter paths (e.g., ../../../api/file-based-routing.md).
Documentation Link Path Updates - Router Routing
docs/router/framework/react/routing/*.md (5 files)
Updated file references from parent-directory paths to current-directory or shorter paths across code-based routing, file-based routing, file naming conventions, and route tree guides.
Documentation Link Path Updates - Start Framework
docs/start/framework/react/*.md (10 files), docs/start/framework/react/guide/*.md (10 files), docs/start/framework/react/tutorial/*.md, docs/start/framework/solid/**/*.md (8 files)
Adjusted relative documentation links from parent-directory references to current-directory or shorter paths, with special attention to migrate-from-next-js.md which includes migration pattern examples.
Link Verification Script Refactoring
scripts/verify-links.ts
Replaced fast-glob with tinyglobby for markdown file discovery; refactored link validation logic with improved error tracking (added top-level errors structure, enhanced relativeLinkExists function with hash/extension handling, added special example path validation, improved error reporting shape).
Build Configuration & Scripts
package.json, nx.json
Renamed verify-links script to test:docs in package.json; added nx configuration block with includedScripts: ["test:docs"]; added targetDefaults entry for test:docs in nx.json with cache and inputs configuration; bumped tinyglob dependency from ^0.2.12 to ^0.2.15.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Verify-links.ts refactoring: Logic changes including new error structure, library migration, and special example path handling require careful review to ensure validation correctness
  • Link path consistency: High volume of similar updates (~100+ files) requires spot-checking across different documentation sections to verify patterns are applied consistently
  • Script and configuration integration: Ensure package.json and nx.json changes integrate properly and the new test:docs target functions as expected
  • migrate-from-next-js.md complexity: Contains substantive code example changes alongside link updates that require verification

Possibly related PRs

Suggested labels

documentation

Suggested reviewers

  • schiller-manuel
  • brenelz
  • SeanCassiere

Poem

🐰 Hop, hop! The links now dance so bright,
From parent paths to siblings in sight,
With tinyglobby's hop, we verify with care,
The docs now flow with structure fair!
One test:docs to rule them all,
Let verification's bells now call! 🔗✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: correct local relative links' accurately describes the primary change: correcting relative link paths across documentation files and updating the verify-links validation logic.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🧹 Nitpick comments (4)
docs/router/framework/react/api/router/deferFunction.md (1)

9-9: Link updates align with PR objectives but may diverge from coding guideline.

The links have been correctly updated to use current-directory relative paths (./useAwaitedHook.md, ./awaitComponent.md), which aligns with the PR's stated goal of validating links against their "local resolution." However, the coding guideline specifies links should be "relative to docs/ folder (e.g., ./guide/data-loading)"—which would require docs-root-relative paths like ./router/framework/react/api/router/useAwaitedHook.md from any file in the docs tree.

The current implementation uses file-relative links, which is the conventional markdown approach and matches the PR's intent. The guideline example likely assumes links are always expressed from the docs/ root, but that doesn't scale to nested files without explicit parent traversal.

Clarification needed: Confirm whether the coding guideline should be updated to reflect file-relative links (as implemented in this PR) or if a different link format is expected. Based on learnings, the guideline appears to expect docs-root-relative links, but the PR treats links as file-relative.

If the guideline intent is indeed docs-root-relative links, the links should be:

[`useAwaited`](./router/framework/react/api/router/useAwaitedHook.md)
[`<Await>`](./router/framework/react/api/router/awaitComponent.md)

Otherwise, if file-relative links are the intended standard (as this PR suggests), the coding guideline should be updated to clarify this. Based on learnings, the guideline at this time specifies relative-to-docs-folder.

Also applies to: 21-21

docs/router/framework/react/routing/file-naming-conventions.md (1)

5-5: Hyphenate compound adjective "file-naming conventions".

When using multiple words as a compound adjective before a noun, they should be hyphenated. Change "file naming conventions" to "file-naming conventions" in the opening sentence.

-File-based routing requires that you follow a few simple file naming conventions to ensure that your routes are generated correctly.
+File-based routing requires that you follow a few simple file-naming conventions to ensure that your routes are generated correctly.
scripts/verify-links.ts (1)

25-28: stripExtension may not handle edge cases correctly.

Using extname with template literal replacement can produce unexpected results:

  • For paths without extensions, extname returns '', so p.replace('', '') does nothing (correct).
  • For paths like README.md, it correctly returns README.
  • However, using replace with a plain string only replaces the first occurrence. If a path contains .md multiple times (e.g., some.md.backup.md), only the first .md would be removed.

Consider using a more robust approach:

 function stripExtension(p: string): string {
-  return p.replace(`${extname(p)}`, '')
+  const ext = extname(p)
+  return ext ? p.slice(0, -ext.length) : p
 }
docs/router/framework/react/routing/file-based-routing.md (1)

5-5: ✓ Documentation links correctly updated; minor style suggestion.

All cross-references use correct relative paths:

  • Same-directory references: ./code-based-routing.md, ./virtual-file-routes.md
  • Parent-level installation guides: ../installation/with-vite, etc.

Line 106 uses informal language ("awesome"). Consider a more formal alternative such as "significant" or "substantial" for better documentation tone.

Also applies to: 106-106, 116-119

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 34d13e5 and c2022b5.

📒 Files selected for processing (134)
  • docs/router/eslint/eslint-plugin-router.md (1 hunks)
  • docs/router/framework/react/api/router.md (1 hunks)
  • docs/router/framework/react/api/router/ActiveLinkOptionsType.md (1 hunks)
  • docs/router/framework/react/api/router/FileRouteClass.md (2 hunks)
  • docs/router/framework/react/api/router/LinkOptionsType.md (2 hunks)
  • docs/router/framework/react/api/router/LinkPropsType.md (2 hunks)
  • docs/router/framework/react/api/router/NavigateOptionsType.md (2 hunks)
  • docs/router/framework/react/api/router/NotFoundRouteClass.md (2 hunks)
  • docs/router/framework/react/api/router/RedirectType.md (1 hunks)
  • docs/router/framework/react/api/router/RootRouteClass.md (2 hunks)
  • docs/router/framework/react/api/router/RouteApiClass.md (2 hunks)
  • docs/router/framework/react/api/router/RouteApiType.md (12 hunks)
  • docs/router/framework/react/api/router/RouteClass.md (2 hunks)
  • docs/router/framework/react/api/router/RouteMaskType.md (1 hunks)
  • docs/router/framework/react/api/router/RouteOptionsType.md (3 hunks)
  • docs/router/framework/react/api/router/RouteType.md (1 hunks)
  • docs/router/framework/react/api/router/RouterClass.md (2 hunks)
  • docs/router/framework/react/api/router/RouterEventsType.md (1 hunks)
  • docs/router/framework/react/api/router/RouterOptionsType.md (4 hunks)
  • docs/router/framework/react/api/router/RouterStateType.md (1 hunks)
  • docs/router/framework/react/api/router/RouterType.md (2 hunks)
  • docs/router/framework/react/api/router/ToMaskOptionsType.md (1 hunks)
  • docs/router/framework/react/api/router/UseMatchRouteOptionsType.md (1 hunks)
  • docs/router/framework/react/api/router/catchBoundaryComponent.md (1 hunks)
  • docs/router/framework/react/api/router/createFileRouteFunction.md (1 hunks)
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md (3 hunks)
  • docs/router/framework/react/api/router/createLazyRouteFunction.md (3 hunks)
  • docs/router/framework/react/api/router/createRootRouteFunction.md (1 hunks)
  • docs/router/framework/react/api/router/createRootRouteWithContextFunction.md (1 hunks)
  • docs/router/framework/react/api/router/createRouteFunction.md (1 hunks)
  • docs/router/framework/react/api/router/createRouteMaskFunction.md (1 hunks)
  • docs/router/framework/react/api/router/createRouterFunction.md (1 hunks)
  • docs/router/framework/react/api/router/deferFunction.md (2 hunks)
  • docs/router/framework/react/api/router/getRouteApiFunction.md (1 hunks)
  • docs/router/framework/react/api/router/isNotFoundFunction.md (2 hunks)
  • docs/router/framework/react/api/router/linkComponent.md (1 hunks)
  • docs/router/framework/react/api/router/linkOptions.md (1 hunks)
  • docs/router/framework/react/api/router/matchRouteComponent.md (1 hunks)
  • docs/router/framework/react/api/router/navigateComponent.md (1 hunks)
  • docs/router/framework/react/api/router/notFoundFunction.md (1 hunks)
  • docs/router/framework/react/api/router/redirectFunction.md (1 hunks)
  • docs/router/framework/react/api/router/rootRouteWithContextFunction.md (2 hunks)
  • docs/router/framework/react/api/router/useBlockerHook.md (1 hunks)
  • docs/router/framework/react/api/router/useCanGoBack.md (1 hunks)
  • docs/router/framework/react/api/router/useChildMatchesHook.md (2 hunks)
  • docs/router/framework/react/api/router/useLinkPropsHook.md (1 hunks)
  • docs/router/framework/react/api/router/useLoaderDataHook.md (2 hunks)
  • docs/router/framework/react/api/router/useLoaderDepsHook.md (1 hunks)
  • docs/router/framework/react/api/router/useLocationHook.md (2 hunks)
  • docs/router/framework/react/api/router/useMatchHook.md (4 hunks)
  • docs/router/framework/react/api/router/useMatchRouteHook.md (1 hunks)
  • docs/router/framework/react/api/router/useMatchesHook.md (2 hunks)
  • docs/router/framework/react/api/router/useNavigateHook.md (1 hunks)
  • docs/router/framework/react/api/router/useParamsHook.md (1 hunks)
  • docs/router/framework/react/api/router/useParentMatchesHook.md (2 hunks)
  • docs/router/framework/react/api/router/useRouterHook.md (1 hunks)
  • docs/router/framework/react/api/router/useRouterStateHook.md (2 hunks)
  • docs/router/framework/react/api/router/useSearchHook.md (1 hunks)
  • docs/router/framework/react/decisions-on-dx.md (3 hunks)
  • docs/router/framework/react/faq.md (2 hunks)
  • docs/router/framework/react/guide/authenticated-routes.md (2 hunks)
  • docs/router/framework/react/guide/code-splitting.md (2 hunks)
  • docs/router/framework/react/guide/creating-a-router.md (2 hunks)
  • docs/router/framework/react/guide/custom-search-param-serialization.md (1 hunks)
  • docs/router/framework/react/guide/data-loading.md (3 hunks)
  • docs/router/framework/react/guide/deferred-data-loading.md (3 hunks)
  • docs/router/framework/react/guide/external-data-loading.md (1 hunks)
  • docs/router/framework/react/guide/history-types.md (1 hunks)
  • docs/router/framework/react/guide/navigation-blocking.md (1 hunks)
  • docs/router/framework/react/guide/not-found-errors.md (1 hunks)
  • docs/router/framework/react/guide/path-params.md (2 hunks)
  • docs/router/framework/react/guide/route-masking.md (1 hunks)
  • docs/router/framework/react/guide/search-params.md (2 hunks)
  • docs/router/framework/react/guide/ssr.md (1 hunks)
  • docs/router/framework/react/guide/type-safety.md (1 hunks)
  • docs/router/framework/react/how-to/arrays-objects-dates-search-params.md (1 hunks)
  • docs/router/framework/react/how-to/debug-router-issues.md (2 hunks)
  • docs/router/framework/react/how-to/deploy-to-production.md (1 hunks)
  • docs/router/framework/react/how-to/integrate-framer-motion.md (0 hunks)
  • docs/router/framework/react/how-to/integrate-shadcn-ui.md (0 hunks)
  • docs/router/framework/react/how-to/migrate-from-react-router.md (3 hunks)
  • docs/router/framework/react/how-to/navigate-with-search-params.md (2 hunks)
  • docs/router/framework/react/how-to/setup-auth-providers.md (1 hunks)
  • docs/router/framework/react/how-to/setup-authentication.md (2 hunks)
  • docs/router/framework/react/how-to/setup-basic-search-params.md (3 hunks)
  • docs/router/framework/react/how-to/setup-rbac.md (2 hunks)
  • docs/router/framework/react/how-to/setup-ssr.md (3 hunks)
  • docs/router/framework/react/how-to/setup-testing.md (3 hunks)
  • docs/router/framework/react/how-to/share-search-params-across-routes.md (1 hunks)
  • docs/router/framework/react/how-to/test-file-based-routing.md (1 hunks)
  • docs/router/framework/react/how-to/use-environment-variables.md (1 hunks)
  • docs/router/framework/react/how-to/validate-search-params.md (3 hunks)
  • docs/router/framework/react/installation/manual.md (1 hunks)
  • docs/router/framework/react/installation/migrate-from-react-location.md (1 hunks)
  • docs/router/framework/react/installation/with-esbuild.md (1 hunks)
  • docs/router/framework/react/installation/with-router-cli.md (1 hunks)
  • docs/router/framework/react/installation/with-rspack.md (1 hunks)
  • docs/router/framework/react/installation/with-vite.md (1 hunks)
  • docs/router/framework/react/installation/with-webpack.md (1 hunks)
  • docs/router/framework/react/routing/code-based-routing.md (4 hunks)
  • docs/router/framework/react/routing/file-based-routing.md (3 hunks)
  • docs/router/framework/react/routing/file-naming-conventions.md (3 hunks)
  • docs/router/framework/react/routing/route-trees.md (2 hunks)
  • docs/router/framework/react/routing/routing-concepts.md (1 hunks)
  • docs/router/framework/solid/installation/with-esbuild.md (1 hunks)
  • docs/router/framework/solid/installation/with-rspack.md (1 hunks)
  • docs/router/framework/solid/installation/with-webpack.md (1 hunks)
  • docs/router/integrations/query.md (1 hunks)
  • docs/start/framework/react/build-from-scratch.md (2 hunks)
  • docs/start/framework/react/getting-started.md (1 hunks)
  • docs/start/framework/react/guide/authentication-overview.md (1 hunks)
  • docs/start/framework/react/guide/authentication.md (2 hunks)
  • docs/start/framework/react/guide/code-execution-patterns.md (2 hunks)
  • docs/start/framework/react/guide/environment-variables.md (1 hunks)
  • docs/start/framework/react/guide/hydration-errors.md (1 hunks)
  • docs/start/framework/react/guide/middleware.md (1 hunks)
  • docs/start/framework/react/guide/selective-ssr.md (1 hunks)
  • docs/start/framework/react/guide/server-functions.md (2 hunks)
  • docs/start/framework/react/guide/server-routes.md (1 hunks)
  • docs/start/framework/react/migrate-from-next-js.md (2 hunks)
  • docs/start/framework/react/quick-start.md (2 hunks)
  • docs/start/framework/react/tutorial/fetching-external-api.md (1 hunks)
  • docs/start/framework/solid/build-from-scratch.md (2 hunks)
  • docs/start/framework/solid/getting-started.md (1 hunks)
  • docs/start/framework/solid/guide/authentication.md (2 hunks)
  • docs/start/framework/solid/guide/code-execution-patterns.md (2 hunks)
  • docs/start/framework/solid/guide/environment-variables.md (1 hunks)
  • docs/start/framework/solid/guide/hydration-errors.md (1 hunks)
  • docs/start/framework/solid/guide/selective-ssr.md (1 hunks)
  • docs/start/framework/solid/guide/server-routes.md (1 hunks)
  • docs/start/framework/solid/quick-start.md (2 hunks)
  • nx.json (1 hunks)
  • package.json (2 hunks)
  • scripts/verify-links.ts (5 hunks)
💤 Files with no reviewable changes (2)
  • docs/router/framework/react/how-to/integrate-shadcn-ui.md
  • docs/router/framework/react/how-to/integrate-framer-motion.md
🧰 Additional context used
📓 Path-based instructions (3)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

Use relative internal documentation links relative to docs/ folder (e.g., ./guide/data-loading)

Files:

  • docs/start/framework/react/guide/middleware.md
  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/how-to/deploy-to-production.md
  • docs/router/framework/react/api/router/deferFunction.md
  • docs/router/framework/react/api/router/RouteType.md
  • docs/router/framework/react/api/router/createRootRouteWithContextFunction.md
  • docs/start/framework/react/tutorial/fetching-external-api.md
  • docs/start/framework/solid/guide/selective-ssr.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/framework/react/api/router/NavigateOptionsType.md
  • docs/router/framework/react/api/router/useNavigateHook.md
  • docs/router/framework/react/api/router/NotFoundRouteClass.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/react/guide/navigation-blocking.md
  • docs/router/framework/solid/installation/with-rspack.md
  • docs/start/framework/react/guide/selective-ssr.md
  • docs/router/framework/react/how-to/use-environment-variables.md
  • docs/router/framework/react/guide/history-types.md
  • docs/start/framework/solid/build-from-scratch.md
  • docs/router/framework/react/api/router/rootRouteWithContextFunction.md
  • docs/router/framework/react/guide/external-data-loading.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/installation/with-webpack.md
  • docs/start/framework/react/guide/environment-variables.md
  • docs/router/framework/react/api/router/RouteClass.md
  • docs/router/framework/react/api/router/RouterEventsType.md
  • docs/router/framework/react/api/router/useMatchesHook.md
  • docs/start/framework/react/migrate-from-next-js.md
  • docs/router/framework/react/api/router/createRouteFunction.md
  • docs/router/framework/react/api/router/useLinkPropsHook.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/api/router/useSearchHook.md
  • docs/router/framework/react/guide/authenticated-routes.md
  • docs/router/framework/react/api/router/matchRouteComponent.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/router/framework/react/api/router/RouterStateType.md
  • docs/router/framework/react/api/router/redirectFunction.md
  • docs/start/framework/solid/quick-start.md
  • docs/router/framework/react/api/router/createRouterFunction.md
  • docs/router/framework/react/how-to/setup-auth-providers.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/how-to/setup-rbac.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/router/framework/react/api/router/createLazyRouteFunction.md
  • docs/router/framework/react/guide/ssr.md
  • docs/router/framework/react/api/router/createRouteMaskFunction.md
  • docs/start/framework/solid/getting-started.md
  • docs/start/framework/react/guide/server-functions.md
  • docs/router/framework/react/guide/not-found-errors.md
  • docs/router/framework/react/guide/data-loading.md
  • docs/start/framework/react/guide/code-execution-patterns.md
  • docs/start/framework/solid/guide/hydration-errors.md
  • docs/router/framework/react/api/router/UseMatchRouteOptionsType.md
  • docs/router/framework/react/api/router/notFoundFunction.md
  • docs/router/framework/react/installation/manual.md
  • docs/router/framework/react/api/router/RootRouteClass.md
  • docs/router/framework/react/how-to/setup-ssr.md
  • docs/router/framework/react/api/router/navigateComponent.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-router-cli.md
  • docs/start/framework/react/guide/authentication-overview.md
  • docs/start/framework/react/guide/hydration-errors.md
  • docs/router/framework/react/api/router/useChildMatchesHook.md
  • docs/router/framework/react/api/router.md
  • docs/start/framework/solid/guide/server-routes.md
  • docs/router/framework/react/installation/with-vite.md
  • docs/router/framework/react/how-to/share-search-params-across-routes.md
  • docs/router/framework/react/api/router/useCanGoBack.md
  • docs/router/framework/react/api/router/RedirectType.md
  • docs/start/framework/react/getting-started.md
  • docs/router/framework/react/api/router/ActiveLinkOptionsType.md
  • docs/router/framework/react/how-to/validate-search-params.md
  • docs/router/integrations/query.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/guide/type-safety.md
  • docs/router/framework/react/api/router/useBlockerHook.md
  • docs/router/framework/react/api/router/useMatchRouteHook.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/guide/search-params.md
  • docs/router/framework/react/how-to/setup-authentication.md
  • docs/router/framework/react/api/router/ToMaskOptionsType.md
  • docs/router/framework/react/how-to/arrays-objects-dates-search-params.md
  • docs/router/framework/react/api/router/getRouteApiFunction.md
  • docs/router/framework/react/guide/custom-search-param-serialization.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/api/router/useRouterStateHook.md
  • docs/router/framework/react/api/router/catchBoundaryComponent.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/useLoaderDepsHook.md
  • docs/router/framework/react/guide/deferred-data-loading.md
  • docs/router/framework/react/api/router/RouterType.md
  • docs/start/framework/react/build-from-scratch.md
  • docs/start/framework/react/guide/authentication.md
  • docs/router/framework/react/api/router/LinkOptionsType.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/api/router/createRootRouteFunction.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/react/api/router/useParamsHook.md
  • docs/router/framework/react/api/router/RouteOptionsType.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/api/router/useMatchHook.md
  • docs/router/framework/react/api/router/FileRouteClass.md
  • docs/router/framework/react/api/router/isNotFoundFunction.md
  • docs/start/framework/solid/guide/code-execution-patterns.md
  • docs/router/framework/react/api/router/LinkPropsType.md
  • docs/router/framework/react/how-to/navigate-with-search-params.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/api/router/linkOptions.md
  • docs/router/framework/react/api/router/createFileRouteFunction.md
  • docs/start/framework/solid/guide/authentication.md
  • docs/start/framework/react/guide/server-routes.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/api/router/linkComponent.md
  • docs/router/framework/react/routing/routing-concepts.md
  • docs/router/framework/react/api/router/useParentMatchesHook.md
  • docs/router/framework/react/api/router/RouteApiType.md
  • docs/router/framework/react/api/router/useLoaderDataHook.md
  • docs/router/framework/react/guide/route-masking.md
  • docs/router/framework/react/installation/with-rspack.md
  • docs/start/framework/react/quick-start.md
  • docs/router/framework/react/api/router/RouteMaskType.md
  • docs/router/framework/react/how-to/setup-basic-search-params.md
  • docs/router/framework/react/api/router/RouterClass.md
  • docs/start/framework/solid/guide/environment-variables.md
  • docs/router/framework/react/api/router/useRouterHook.md
  • docs/router/framework/react/api/router/useLocationHook.md
  • docs/router/framework/react/api/router/RouteApiClass.md
**/package.json

📄 CodeRabbit inference engine (AGENTS.md)

Use workspace protocol for internal dependencies (workspace:*)

Files:

  • package.json
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Use TypeScript strict mode with extensive type safety throughout the codebase

Files:

  • scripts/verify-links.ts
🧠 Learnings (14)
📓 Common learnings
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Applies to docs/**/*.md : Use relative internal documentation links relative to docs/ folder (e.g., ./guide/data-loading)
📚 Learning: 2025-11-25T00:18:21.282Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Applies to **/src/routes/**/*.{ts,tsx} : Use file-based routing in src/routes/ directories or code-based routing with route definitions

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/api/router/RouteType.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/solid/installation/with-rspack.md
  • docs/router/framework/react/how-to/use-environment-variables.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/installation/with-webpack.md
  • docs/router/framework/react/api/router/RouteClass.md
  • docs/router/framework/react/api/router/useMatchesHook.md
  • docs/start/framework/react/migrate-from-next-js.md
  • docs/router/framework/react/api/router/createRouteFunction.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/guide/authenticated-routes.md
  • docs/router/framework/react/api/router/matchRouteComponent.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/router/framework/react/api/router/RouterStateType.md
  • docs/router/framework/react/api/router/createRouterFunction.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/router/framework/react/api/router/createLazyRouteFunction.md
  • docs/router/framework/react/guide/not-found-errors.md
  • docs/router/framework/react/api/router/UseMatchRouteOptionsType.md
  • docs/router/framework/react/installation/manual.md
  • docs/router/framework/react/api/router/RootRouteClass.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-router-cli.md
  • docs/router/framework/react/api/router.md
  • docs/router/framework/react/installation/with-vite.md
  • docs/router/framework/react/how-to/share-search-params-across-routes.md
  • docs/router/framework/react/how-to/validate-search-params.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/guide/type-safety.md
  • docs/router/framework/react/api/router/useMatchRouteHook.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/api/router/getRouteApiFunction.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/RouterType.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/api/router/createRootRouteFunction.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/react/api/router/RouteOptionsType.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/api/router/FileRouteClass.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/api/router/createFileRouteFunction.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/routing/routing-concepts.md
  • docs/router/framework/react/api/router/RouteApiType.md
  • docs/router/framework/react/guide/route-masking.md
  • docs/router/framework/react/installation/with-rspack.md
📚 Learning: 2025-11-25T00:18:21.282Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Applies to packages/react-router/**/*.{ts,tsx} : React Router components and hooks should use the tanstack/react-router package

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/framework/react/api/router/useNavigateHook.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/react/guide/navigation-blocking.md
  • docs/router/framework/solid/installation/with-rspack.md
  • docs/router/framework/react/how-to/use-environment-variables.md
  • docs/router/framework/react/api/router/rootRouteWithContextFunction.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/installation/with-webpack.md
  • docs/router/framework/react/api/router/RouteClass.md
  • docs/router/framework/react/api/router/useMatchesHook.md
  • docs/start/framework/react/migrate-from-next-js.md
  • docs/router/framework/react/api/router/createRouteFunction.md
  • docs/router/framework/react/api/router/useLinkPropsHook.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/api/router/useSearchHook.md
  • docs/router/framework/react/guide/authenticated-routes.md
  • docs/router/framework/react/api/router/matchRouteComponent.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/router/framework/react/api/router/RouterStateType.md
  • docs/router/framework/react/api/router/redirectFunction.md
  • docs/router/framework/react/api/router/createRouterFunction.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/router/framework/react/guide/not-found-errors.md
  • docs/router/framework/react/guide/data-loading.md
  • docs/router/framework/react/api/router/UseMatchRouteOptionsType.md
  • docs/router/framework/react/installation/manual.md
  • docs/router/framework/react/api/router/RootRouteClass.md
  • docs/router/framework/react/how-to/setup-ssr.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-router-cli.md
  • docs/start/framework/react/guide/authentication-overview.md
  • docs/router/framework/react/api/router/useChildMatchesHook.md
  • docs/router/framework/react/api/router.md
  • docs/router/framework/react/installation/with-vite.md
  • docs/router/framework/react/how-to/share-search-params-across-routes.md
  • docs/router/framework/react/api/router/RedirectType.md
  • docs/start/framework/react/getting-started.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/guide/type-safety.md
  • docs/router/framework/react/api/router/useBlockerHook.md
  • docs/router/framework/react/api/router/useMatchRouteHook.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/guide/search-params.md
  • docs/router/framework/react/how-to/setup-authentication.md
  • docs/router/framework/react/api/router/getRouteApiFunction.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/api/router/useRouterStateHook.md
  • docs/router/framework/react/api/router/catchBoundaryComponent.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/RouterType.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/api/router/createRootRouteFunction.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/react/api/router/useParamsHook.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/api/router/useMatchHook.md
  • docs/router/framework/react/how-to/navigate-with-search-params.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/api/router/linkComponent.md
  • docs/router/framework/react/routing/routing-concepts.md
  • docs/router/framework/react/api/router/useParentMatchesHook.md
  • docs/router/framework/react/api/router/RouteApiType.md
  • docs/router/framework/react/installation/with-rspack.md
  • docs/start/framework/react/quick-start.md
  • docs/router/framework/react/how-to/setup-basic-search-params.md
  • docs/router/framework/react/api/router/RouterClass.md
  • docs/router/framework/react/api/router/useRouterHook.md
  • docs/router/framework/react/api/router/RouteApiClass.md
📚 Learning: 2025-11-25T00:18:21.282Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Applies to packages/solid-router/**/*.{ts,tsx} : Solid Router components and primitives should use the tanstack/solid-router package

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/solid/installation/with-rspack.md
  • docs/router/framework/react/how-to/use-environment-variables.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/installation/with-webpack.md
  • docs/start/framework/react/migrate-from-next-js.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/guide/authenticated-routes.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/router/framework/react/api/router/RouterStateType.md
  • docs/router/framework/react/api/router/createRouterFunction.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/start/framework/solid/getting-started.md
  • docs/router/framework/react/guide/not-found-errors.md
  • docs/router/framework/react/api/router/UseMatchRouteOptionsType.md
  • docs/router/framework/react/installation/manual.md
  • docs/router/framework/react/how-to/setup-ssr.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-router-cli.md
  • docs/router/framework/react/api/router.md
  • docs/start/framework/solid/guide/server-routes.md
  • docs/router/framework/react/installation/with-vite.md
  • docs/router/framework/react/how-to/share-search-params-across-routes.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/guide/type-safety.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/how-to/setup-authentication.md
  • docs/router/framework/react/guide/custom-search-param-serialization.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/api/router/useRouterStateHook.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/RouterType.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/how-to/navigate-with-search-params.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/routing/routing-concepts.md
  • docs/router/framework/react/api/router/RouteApiType.md
  • docs/router/framework/react/installation/with-rspack.md
  • docs/start/framework/react/quick-start.md
  • docs/router/framework/react/how-to/setup-basic-search-params.md
  • docs/router/framework/react/api/router/RouterClass.md
  • docs/router/framework/react/api/router/useRouterHook.md
📚 Learning: 2025-10-08T08:11:47.088Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5402
File: packages/router-generator/tests/generator/no-formatted-route-tree/routeTree.nonnested.snapshot.ts:19-21
Timestamp: 2025-10-08T08:11:47.088Z
Learning: Test snapshot files in the router-generator tests directory (e.g., files matching the pattern `packages/router-generator/tests/generator/**/routeTree*.snapshot.ts` or `routeTree*.snapshot.js`) should not be modified or have issues flagged, as they are fixtures used to verify the generator's output and are intentionally preserved as-is.

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/api/router/createRouteFunction.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/router/framework/react/api/router/RouterStateType.md
  • docs/router/framework/react/api/router/createRouterFunction.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-router-cli.md
  • docs/router/framework/react/api/router.md
  • docs/router/framework/react/how-to/validate-search-params.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/RouterType.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/api/router/FileRouteClass.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/guide/route-masking.md
📚 Learning: 2025-11-25T00:18:21.282Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Applies to docs/**/*.md : Use relative internal documentation links relative to docs/ folder (e.g., ./guide/data-loading)

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/framework/react/how-to/use-environment-variables.md
  • docs/start/framework/solid/build-from-scratch.md
  • docs/router/framework/react/guide/external-data-loading.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/start/framework/react/guide/environment-variables.md
  • docs/router/framework/react/api/router/useMatchesHook.md
  • docs/router/framework/react/api/router/useLinkPropsHook.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/api/router/createLazyFileRouteFunction.md
  • docs/start/framework/solid/quick-start.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/how-to/setup-rbac.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/router/framework/react/guide/ssr.md
  • docs/start/framework/solid/getting-started.md
  • docs/start/framework/react/guide/server-functions.md
  • docs/router/framework/react/guide/data-loading.md
  • docs/start/framework/solid/guide/hydration-errors.md
  • docs/start/framework/react/guide/authentication-overview.md
  • docs/router/framework/react/how-to/share-search-params-across-routes.md
  • docs/start/framework/react/getting-started.md
  • docs/router/framework/react/how-to/validate-search-params.md
  • docs/router/integrations/query.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/routing/file-based-routing.md
  • docs/router/framework/react/guide/search-params.md
  • docs/router/framework/react/how-to/setup-authentication.md
  • docs/router/framework/react/api/router/useRouterStateHook.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/guide/deferred-data-loading.md
  • docs/start/framework/react/build-from-scratch.md
  • docs/start/framework/react/guide/authentication.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouteOptionsType.md
  • docs/router/framework/react/api/router/useMatchHook.md
  • docs/start/framework/solid/guide/code-execution-patterns.md
  • docs/router/framework/react/how-to/navigate-with-search-params.md
  • docs/router/framework/react/api/router/createFileRouteFunction.md
  • docs/router/framework/react/how-to/setup-testing.md
  • docs/router/framework/react/api/router/useLoaderDataHook.md
  • docs/router/framework/react/guide/route-masking.md
  • docs/start/framework/react/quick-start.md
  • docs/router/framework/react/how-to/setup-basic-search-params.md
  • scripts/verify-links.ts
📚 Learning: 2025-10-01T18:30:26.591Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: packages/router-core/src/router.ts:2231-2245
Timestamp: 2025-10-01T18:30:26.591Z
Learning: In `packages/router-core/src/router.ts`, the `resolveRedirect` method intentionally strips the router's origin from redirect URLs when they match (e.g., `https://foo.com/bar` → `/bar` for same-origin redirects) while preserving the full URL for cross-origin redirects. This logic should not be removed or simplified to use `location.publicHref` directly.

Applied to files:

  • docs/router/framework/react/guide/creating-a-router.md
  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/api/router/redirectFunction.md
  • docs/router/framework/react/api/router.md
  • docs/router/framework/react/api/router/RedirectType.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/installation/migrate-from-react-location.md
  • docs/router/framework/react/api/router/useRouterStateHook.md
  • docs/router/framework/react/how-to/debug-router-issues.md
  • docs/router/framework/react/api/router/RouteOptionsType.md
  • docs/router/framework/react/api/router/useLocationHook.md
📚 Learning: 2025-10-14T18:59:33.990Z
Learnt from: FatahChan
Repo: TanStack/router PR: 5475
File: e2e/react-start/basic-prerendering/src/routes/redirect/$target/via-beforeLoad.tsx:8-0
Timestamp: 2025-10-14T18:59:33.990Z
Learning: In TanStack Router e2e test files, when a route parameter is validated at the route level (e.g., using zod in validateSearch or param validation), switch statements on that parameter do not require a default case, as the validation ensures only expected values will reach the switch.

Applied to files:

  • docs/router/framework/react/how-to/test-file-based-routing.md
  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/solid/installation/with-rspack.md
  • docs/router/framework/react/installation/with-webpack.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/installation/with-esbuild.md
  • docs/router/framework/solid/installation/with-webpack.md
  • docs/router/framework/react/installation/with-vite.md
  • docs/router/framework/react/how-to/validate-search-params.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/how-to/setup-authentication.md
  • docs/router/framework/react/guide/custom-search-param-serialization.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
  • docs/router/framework/solid/installation/with-esbuild.md
  • docs/router/framework/react/how-to/navigate-with-search-params.md
  • docs/router/framework/react/faq.md
  • docs/router/framework/react/installation/with-rspack.md
  • docs/router/framework/react/how-to/setup-basic-search-params.md
📚 Learning: 2025-11-02T16:16:24.898Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5732
File: packages/start-client-core/src/client/hydrateStart.ts:6-9
Timestamp: 2025-11-02T16:16:24.898Z
Learning: In packages/start-client-core/src/client/hydrateStart.ts, the `import/no-duplicates` ESLint disable is necessary for imports from `#tanstack-router-entry` and `#tanstack-start-entry` because both aliases resolve to the same placeholder file (`fake-start-entry.js`) in package.json during static analysis, even though they resolve to different files at runtime.

Applied to files:

  • docs/router/eslint/eslint-plugin-router.md
  • docs/start/framework/react/migrate-from-next-js.md
  • docs/router/framework/react/how-to/setup-ssr.md
📚 Learning: 2025-10-01T18:31:35.420Z
Learnt from: schiller-manuel
Repo: TanStack/router PR: 5330
File: e2e/react-start/custom-basepath/src/routeTree.gen.ts:58-61
Timestamp: 2025-10-01T18:31:35.420Z
Learning: Do not review files named `routeTree.gen.ts` in TanStack Router repositories, as these are autogenerated files that should not be manually modified.

Applied to files:

  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/react/routing/route-trees.md
  • docs/router/framework/react/guide/code-splitting.md
  • docs/router/framework/react/installation/manual.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/api/router/FileRouteClass.md
  • docs/router/framework/react/faq.md
📚 Learning: 2025-09-22T00:56:53.426Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5182
File: e2e/react-router/basic-file-based/tests/non-nested-paths.spec.ts:167-172
Timestamp: 2025-09-22T00:56:53.426Z
Learning: In TanStack Router, underscores are intentionally stripped from route segments during path parsing, but preserved in base path segments. This is the expected behavior implemented in PR #5182.

Applied to files:

  • docs/router/eslint/eslint-plugin-router.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/decisions-on-dx.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/faq.md
📚 Learning: 2025-11-25T00:18:21.282Z
Learnt from: CR
Repo: TanStack/router PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-11-25T00:18:21.282Z
Learning: Test changes in relevant example apps by running cd examples/[framework]/[example] && pnpm dev

Applied to files:

  • docs/start/framework/solid/build-from-scratch.md
  • docs/start/framework/solid/quick-start.md
  • docs/start/framework/react/build-from-scratch.md
  • docs/start/framework/react/quick-start.md
📚 Learning: 2025-09-28T21:41:45.233Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5284
File: e2e/react-start/basic/server.js:50-0
Timestamp: 2025-09-28T21:41:45.233Z
Learning: In Express v5, catch-all routes must use named wildcards. Use `/*splat` to match everything except root path, or `/{*splat}` (with braces) to match including root path. The old `*` syntax is not allowed and will cause "Missing parameter name" errors. This breaking change requires explicit naming of wildcard parameters.

Applied to files:

  • docs/router/framework/react/routing/code-based-routing.md
  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/routing/file-naming-conventions.md
  • docs/router/framework/react/how-to/migrate-from-react-router.md
  • docs/router/framework/react/api/router/RouterOptionsType.md
📚 Learning: 2025-09-22T00:56:49.237Z
Learnt from: nlynzaad
Repo: TanStack/router PR: 5182
File: e2e/react-router/basic-file-based/src/routes/non-nested/named/$baz_.bar.tsx:3-5
Timestamp: 2025-09-22T00:56:49.237Z
Learning: In TanStack Router, underscores are intentionally stripped from route segments (e.g., `$baz_` becomes `baz` in generated types) but should be preserved in base path segments. This is the correct behavior as of the fix in PR #5182.

Applied to files:

  • docs/router/framework/react/guide/path-params.md
  • docs/router/framework/react/routing/file-naming-conventions.md
🪛 LanguageTool
docs/start/framework/react/guide/middleware.md

[style] ~519-~519: ‘exact same’ might be wordy. Consider a shorter alternative.
Context: ...server functions, so you can follow the exact same [Server Function Context Utilities](./s...

(EN_WORDINESS_PREMIUM_EXACT_SAME)

docs/router/framework/react/api/router/RouteType.md

[style] ~31-~31: Consider removing “of” to be more concise
Context: ...plitting. ### ...RouteApi methods - All of the methods from [RouteApi](./RouteApiTyp...

(ALL_OF_THE)

docs/start/framework/react/tutorial/fetching-external-api.md

[grammar] ~317-~317: Use a hyphen to join words.
Context: ...y for interactive features, you get fast loading pages plus all the modern functi...

(QB_NEW_EN_HYPHEN)

docs/router/framework/react/api/router/NavigateOptionsType.md

[style] ~53-~53: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... with ViewTransitionOptions["types"]. If the browser does not support viewTransi...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[grammar] ~53-~53: Ensure spelling is correct
Context: ...pes"]`. If the browser does not support viewTransition types, the navigation will fall back to...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/router/framework/react/api/router/useMatchesHook.md

[style] ~6-~6: Consider removing “of” to be more concise
Context: ...hook --- The useMatches hook returns all of the RouteMatch obj...

(ALL_OF_THE)

docs/router/framework/react/api/router/RouterStateType.md

[style] ~42-~42: Consider removing “of” to be more concise
Context: ...h>`](./RouteMatchType.md) - An array of all of the route matches that have been resolved a...

(ALL_OF_THE)


[style] ~47-~47: Consider removing “of” to be more concise
Context: ...h>`](./RouteMatchType.md) - An array of all of the route matches that are currently pendin...

(ALL_OF_THE)

docs/start/framework/solid/quick-start.md

[style] ~63-~63: Using many exclamation marks might seem excessive (in this case: 3 exclamation marks for a text that’s 1803 characters long)
Context: ...guide to learn how to use TanStack Start!

(EN_EXCESSIVE_EXCLAMATION)

docs/router/framework/react/api/router/useChildMatchesHook.md

[style] ~6-~6: Consider removing “of” to be more concise
Context: ...--- The useChildMatches hook returns all of the child [RouteMatch](./RouteMatchType.m...

(ALL_OF_THE)

docs/start/framework/react/getting-started.md

[style] ~24-~24: Using many exclamation marks might seem excessive (in this case: 3 exclamation marks for a text that’s 1018 characters long)
Context: ...guide to learn how to use TanStack Start!

(EN_EXCESSIVE_EXCLAMATION)

docs/router/framework/react/routing/file-based-routing.md

[style] ~106-~106: Consider using a more formal and expressive alternative to ‘awesome’.
Context: ...of your routes whilst still getting the awesome performance benefits of file-based rout...

(AWESOME)

docs/router/framework/react/routing/file-naming-conventions.md

[grammar] ~5-~5: Use a hyphen to join words.
Context: ...quires that you follow a few simple file naming conventions to ensure that your r...

(QB_NEW_EN_HYPHEN)

docs/router/framework/react/guide/deferred-data-loading.md

[style] ~80-~80: This phrase is redundant. Consider using “outside”.
Context: ...s the data fetching and caching for you outside of TanStack Router. So, instead of using ...

(OUTSIDE_OF)


[grammar] ~142-~142: Use a hyphen to join words.
Context: ... Guide](./ssr.md#streaming-ssr) for step by step instructions on how to set up yo...

(QB_NEW_EN_HYPHEN)


[grammar] ~142-~142: Use a hyphen to join words.
Context: ...ide](./ssr.md#streaming-ssr) for step by step instructions on how to set up your ...

(QB_NEW_EN_HYPHEN)

docs/router/framework/react/api/router/RouteOptionsType.md

[style] ~113-~113: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ll be passed to the onError function. If thrown during a preload event, the erro...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~114-~114: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...he console and the preload will fail. - If this function returns a promise, the ro...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~114-~114: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... to suspend until the promise resolves. If this route's pendingMs threshold is rea...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~114-~114: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onent` will be shown until it resolves. If the promise rejects, the route will be ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~115-~115: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e error will be thrown during render. - If this function returns a TRouteContext...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~116-~116: Consider a more expressive alternative.
Context: ...hem to a login page if they are not. To do this, you can either return or throw a ...

(DO_ACHIEVE)


[style] ~143-~143: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ll be passed to the onError function. If thrown during a preload event, the erro...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~144-~144: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...he console and the preload will fail. - If this function returns a promise, the ro...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~144-~144: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... to suspend until the promise resolves. If this route's pendingMs threshold is rea...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~144-~144: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...onent` will be shown until it resolves. If the promise rejects, the route will be ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~145-~145: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e error will be thrown during render. - If this function returns a TLoaderData o...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~146-~146: Consider a more concise word here.
Context: ... returned by your loaderDeps function in order to appear. > 🚧 opts.navigate has been ...

(IN_ORDER_TO_PREMIUM)

docs/router/framework/react/api/router/useMatchHook.md

[style] ~6-~6: Consider removing “of” to be more concise
Context: ...nent tree. The raw route match contains all of the information about a route match in the ...

(ALL_OF_THE)

docs/router/framework/react/api/router/LinkPropsType.md

[style] ~19-~19: Consider removing “of” to be more concise
Context: ...de) } ``` ## LinkProps properties - All of the props from [ActiveLinkOptions](./Acti...

(ALL_OF_THE)

docs/router/framework/react/api/router/useParentMatchesHook.md

[style] ~6-~6: Consider removing “of” to be more concise
Context: ...-- The useParentMatches hook returns all of the parent [RouteMatch](./RouteMatchType....

(ALL_OF_THE)

🪛 markdownlint-cli2 (0.18.1)
docs/start/framework/react/getting-started.md

18-18: No empty links

(MD042, no-empty-links)

docs/router/framework/react/installation/migrate-from-react-location.md

73-73: Link text should be descriptive

(MD059, descriptive-link-text)

docs/router/framework/react/routing/file-naming-conventions.md

21-21: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/router/framework/react/api/router/RouteOptionsType.md

118-118: Link text should be descriptive

(MD059, descriptive-link-text)


148-148: Link text should be descriptive

(MD059, descriptive-link-text)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Test

Comment on lines +7 to +88
- [`createFileRoute`](./router/createFileRouteFunction.md)
- [`createLazyFileRoute`](./router/createLazyFileRouteFunction.md)
- [`createRootRoute`](./router/createRootRouteFunction.md)
- [`createRootRouteWithContext`](./router/createRootRouteWithContextFunction.md)
- [`createRoute`](./router/createRouteFunction.md)
- [`createLazyRoute`](./router/createLazyRouteFunction.md)
- [`createRouteMask`](./router/createRouteMaskFunction.md)
- [`createRouter`](./router/createRouterFunction.md)
- [`defer`](./router/deferFunction.md)
- [`getRouteApi`](./router/getRouteApiFunction.md)
- [`isNotFound`](./router/isNotFoundFunction.md)
- [`isRedirect`](./router/isRedirectFunction.md)
- [`lazyRouteComponent`](./router/lazyRouteComponentFunction.md)
- [`linkOptions`](./router/linkOptions.md)
- [`notFound`](./router/notFoundFunction.md)
- [`redirect`](./router/redirectFunction.md)
- [`retainSearchParams`](./router/retainSearchParamsFunction.md)
- [`stripSearchParams`](./router/stripSearchParamsFunction.md)
- Components
- [`<Await>`](../router/awaitComponent.md)
- [`<CatchBoundary>`](../router/catchBoundaryComponent.md)
- [`<CatchNotFound>`](../router/catchNotFoundComponent.md)
- [`<ClientOnly>`](../router/clientOnlyComponent.md)
- [`<DefaultGlobalNotFound>`](../router/defaultGlobalNotFoundComponent.md)
- [`<ErrorComponent>`](../router/errorComponentComponent.md)
- [`<Link>`](../router/linkComponent.md)
- [`<MatchRoute>`](../router/matchRouteComponent.md)
- [`<Navigate>`](../router/navigateComponent.md)
- [`<NotFoundComponent>`](../router/notFoundComponentComponent.md)
- [`<Outlet>`](../router/outletComponent.md)
- [`<Await>`](./router/awaitComponent.md)
- [`<CatchBoundary>`](./router/catchBoundaryComponent.md)
- [`<CatchNotFound>`](./router/catchNotFoundComponent.md)
- [`<ClientOnly>`](./router/clientOnlyComponent.md)
- [`<DefaultGlobalNotFound>`](./router/defaultGlobalNotFoundComponent.md)
- [`<ErrorComponent>`](./router/errorComponentComponent.md)
- [`<Link>`](./router/linkComponent.md)
- [`<MatchRoute>`](./router/matchRouteComponent.md)
- [`<Navigate>`](./router/navigateComponent.md)
- [`<NotFoundComponent>`](./router/notFoundComponentComponent.md)
- [`<Outlet>`](./router/outletComponent.md)
- Hooks
- [`useAwaited`](../router/useAwaitedHook.md)
- [`useBlocker`](../router/useBlockerHook.md)
- [`useCanGoBack`](../router//useCanGoBack.md)
- [`useChildMatches`](../router/useChildMatchesHook.md)
- [`useLinkProps`](../router/useLinkPropsHook.md)
- [`useLoaderData`](../router/useLoaderDataHook.md)
- [`useLoaderDeps`](../router/useLoaderDepsHook.md)
- [`useLocation`](../router/useLocationHook.md)
- [`useMatch`](../router/useMatchHook.md)
- [`useMatchRoute`](../router/useMatchRouteHook.md)
- [`useMatches`](../router/useMatchesHook.md)
- [`useNavigate`](../router/useNavigateHook.md)
- [`useParentMatches`](../router/useParentMatchesHook.md)
- [`useParams`](../router/useParamsHook.md)
- [`useRouteContext`](../router/useRouteContextHook.md)
- [`useRouter`](../router/useRouterHook.md)
- [`useRouterState`](../router/useRouterStateHook.md)
- [`useSearch`](../router/useSearchHook.md)
- [`useAwaited`](./router/useAwaitedHook.md)
- [`useBlocker`](./router/useBlockerHook.md)
- [`useCanGoBack`](./router//useCanGoBack.md)
- [`useChildMatches`](./router/useChildMatchesHook.md)
- [`useLinkProps`](./router/useLinkPropsHook.md)
- [`useLoaderData`](./router/useLoaderDataHook.md)
- [`useLoaderDeps`](./router/useLoaderDepsHook.md)
- [`useLocation`](./router/useLocationHook.md)
- [`useMatch`](./router/useMatchHook.md)
- [`useMatchRoute`](./router/useMatchRouteHook.md)
- [`useMatches`](./router/useMatchesHook.md)
- [`useNavigate`](./router/useNavigateHook.md)
- [`useParentMatches`](./router/useParentMatchesHook.md)
- [`useParams`](./router/useParamsHook.md)
- [`useRouteContext`](./router/useRouteContextHook.md)
- [`useRouter`](./router/useRouterHook.md)
- [`useRouterState`](./router/useRouterStateHook.md)
- [`useSearch`](./router/useSearchHook.md)
- Types
- [`ActiveLinkOptions Type`](../router/ActiveLinkOptionsType.md)
- [`AsyncRouteComponent Type`](../router/AsyncRouteComponentType.md)
- [`HistoryState Interface`](../router/historyStateInterface.md)
- [`LinkOptions Type`](../router/LinkOptionsType.md)
- [`LinkProps Type`](../router/LinkPropsType.md)
- [`MatchRouteOptions Type`](../router/MatchRouteOptionsType.md)
- [`NavigateOptions Type`](../router/NavigateOptionsType.md)
- [`NotFoundError Type`](../router/NotFoundErrorType.md)
- [`ParsedHistoryState Type`](../router/ParsedHistoryStateType.md)
- [`ParsedLocation Type`](../router/ParsedLocationType.md)
- [`Redirect Type`](../router/RedirectType.md)
- [`Register Type`](../router/RegisterType.md)
- [`Route Type`](../router/RouteType.md)
- [`RouteApi Type`](../router/RouteApiType.md)
- [`RouteMask Type`](../router/RouteMaskType.md)
- [`RouteMatch Type`](../router/RouteMatchType.md)
- [`RouteOptions Type`](../router/RouteOptionsType.md)
- [`Router Type`](../router/RouterType.md)
- [`RouterEvents Type`](../router/RouterEventsType.md)
- [`RouterOptions Type`](../router/RouterOptionsType.md)
- [`RouterState Type`](../router/RouterStateType.md)
- [`ToMaskOptions Type`](../router/ToMaskOptionsType.md)
- [`ToOptions Type`](../router/ToOptionsType.md)
- [`UseMatchRouteOptions Type`](../router/UseMatchRouteOptionsType.md)
- [`ViewTransitionOptions Type`](../router/ViewTransitionOptionsType.md)
- [`ActiveLinkOptions Type`](./router/ActiveLinkOptionsType.md)
- [`AsyncRouteComponent Type`](./router/AsyncRouteComponentType.md)
- [`HistoryState Interface`](./router/historyStateInterface.md)
- [`LinkOptions Type`](./router/LinkOptionsType.md)
- [`LinkProps Type`](./router/LinkPropsType.md)
- [`MatchRouteOptions Type`](./router/MatchRouteOptionsType.md)
- [`NavigateOptions Type`](./router/NavigateOptionsType.md)
- [`NotFoundError Type`](./router/NotFoundErrorType.md)
- [`ParsedHistoryState Type`](./router/ParsedHistoryStateType.md)
- [`ParsedLocation Type`](./router/ParsedLocationType.md)
- [`Redirect Type`](./router/RedirectType.md)
- [`Register Type`](./router/RegisterType.md)
- [`Route Type`](./router/RouteType.md)
- [`RouteApi Type`](./router/RouteApiType.md)
- [`RouteMask Type`](./router/RouteMaskType.md)
- [`RouteMatch Type`](./router/RouteMatchType.md)
- [`RouteOptions Type`](./router/RouteOptionsType.md)
- [`Router Type`](./router/RouterType.md)
- [`RouterEvents Type`](./router/RouterEventsType.md)
- [`RouterOptions Type`](./router/RouterOptionsType.md)
- [`RouterState Type`](./router/RouterStateType.md)
- [`ToMaskOptions Type`](./router/ToMaskOptionsType.md)
- [`ToOptions Type`](./router/ToOptionsType.md)
- [`UseMatchRouteOptions Type`](./router/UseMatchRouteOptionsType.md)
- [`ViewTransitionOptions Type`](./router/ViewTransitionOptionsType.md)
- ⚠️ Deprecated
- [`FileRoute Class`](../router/FileRouteClass.md)
- [`Route Class`](../router/RouteClass.md)
- [`Router Class`](../router/RouterClass.md)
- [`RouteApi Class`](../router/RouteApiClass.md)
- [`RootRoute Class`](../router/RootRouteClass.md)
- [`NotFoundRoute Class`](../router/NotFoundRouteClass.md)
- [`rootRouteWithContext Function`](../router/rootRouteWithContextFunction.md)
- [`FileRoute Class`](./router/FileRouteClass.md)
- [`Route Class`](./router/RouteClass.md)
- [`Router Class`](./router/RouterClass.md)
- [`RouteApi Class`](./router/RouteApiClass.md)
- [`RootRoute Class`](./router/RootRouteClass.md)
- [`NotFoundRoute Class`](./router/NotFoundRouteClass.md)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix malformed link path on line 40.

Line 40 contains a double slash in the link path: ./router//useCanGoBack.md. This should be corrected to ./router/useCanGoBack.md to maintain consistency and prevent link resolution issues. All other link updates in this file correctly use the ./router/ prefix.

Apply this diff to fix the double slash:

-  - [`useCanGoBack`](./router//useCanGoBack.md)
+  - [`useCanGoBack`](./router/useCanGoBack.md)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [`createFileRoute`](./router/createFileRouteFunction.md)
- [`createLazyFileRoute`](./router/createLazyFileRouteFunction.md)
- [`createRootRoute`](./router/createRootRouteFunction.md)
- [`createRootRouteWithContext`](./router/createRootRouteWithContextFunction.md)
- [`createRoute`](./router/createRouteFunction.md)
- [`createLazyRoute`](./router/createLazyRouteFunction.md)
- [`createRouteMask`](./router/createRouteMaskFunction.md)
- [`createRouter`](./router/createRouterFunction.md)
- [`defer`](./router/deferFunction.md)
- [`getRouteApi`](./router/getRouteApiFunction.md)
- [`isNotFound`](./router/isNotFoundFunction.md)
- [`isRedirect`](./router/isRedirectFunction.md)
- [`lazyRouteComponent`](./router/lazyRouteComponentFunction.md)
- [`linkOptions`](./router/linkOptions.md)
- [`notFound`](./router/notFoundFunction.md)
- [`redirect`](./router/redirectFunction.md)
- [`retainSearchParams`](./router/retainSearchParamsFunction.md)
- [`stripSearchParams`](./router/stripSearchParamsFunction.md)
- Components
- [`<Await>`](../router/awaitComponent.md)
- [`<CatchBoundary>`](../router/catchBoundaryComponent.md)
- [`<CatchNotFound>`](../router/catchNotFoundComponent.md)
- [`<ClientOnly>`](../router/clientOnlyComponent.md)
- [`<DefaultGlobalNotFound>`](../router/defaultGlobalNotFoundComponent.md)
- [`<ErrorComponent>`](../router/errorComponentComponent.md)
- [`<Link>`](../router/linkComponent.md)
- [`<MatchRoute>`](../router/matchRouteComponent.md)
- [`<Navigate>`](../router/navigateComponent.md)
- [`<NotFoundComponent>`](../router/notFoundComponentComponent.md)
- [`<Outlet>`](../router/outletComponent.md)
- [`<Await>`](./router/awaitComponent.md)
- [`<CatchBoundary>`](./router/catchBoundaryComponent.md)
- [`<CatchNotFound>`](./router/catchNotFoundComponent.md)
- [`<ClientOnly>`](./router/clientOnlyComponent.md)
- [`<DefaultGlobalNotFound>`](./router/defaultGlobalNotFoundComponent.md)
- [`<ErrorComponent>`](./router/errorComponentComponent.md)
- [`<Link>`](./router/linkComponent.md)
- [`<MatchRoute>`](./router/matchRouteComponent.md)
- [`<Navigate>`](./router/navigateComponent.md)
- [`<NotFoundComponent>`](./router/notFoundComponentComponent.md)
- [`<Outlet>`](./router/outletComponent.md)
- Hooks
- [`useAwaited`](../router/useAwaitedHook.md)
- [`useBlocker`](../router/useBlockerHook.md)
- [`useCanGoBack`](../router//useCanGoBack.md)
- [`useChildMatches`](../router/useChildMatchesHook.md)
- [`useLinkProps`](../router/useLinkPropsHook.md)
- [`useLoaderData`](../router/useLoaderDataHook.md)
- [`useLoaderDeps`](../router/useLoaderDepsHook.md)
- [`useLocation`](../router/useLocationHook.md)
- [`useMatch`](../router/useMatchHook.md)
- [`useMatchRoute`](../router/useMatchRouteHook.md)
- [`useMatches`](../router/useMatchesHook.md)
- [`useNavigate`](../router/useNavigateHook.md)
- [`useParentMatches`](../router/useParentMatchesHook.md)
- [`useParams`](../router/useParamsHook.md)
- [`useRouteContext`](../router/useRouteContextHook.md)
- [`useRouter`](../router/useRouterHook.md)
- [`useRouterState`](../router/useRouterStateHook.md)
- [`useSearch`](../router/useSearchHook.md)
- [`useAwaited`](./router/useAwaitedHook.md)
- [`useBlocker`](./router/useBlockerHook.md)
- [`useCanGoBack`](./router//useCanGoBack.md)
- [`useChildMatches`](./router/useChildMatchesHook.md)
- [`useLinkProps`](./router/useLinkPropsHook.md)
- [`useLoaderData`](./router/useLoaderDataHook.md)
- [`useLoaderDeps`](./router/useLoaderDepsHook.md)
- [`useLocation`](./router/useLocationHook.md)
- [`useMatch`](./router/useMatchHook.md)
- [`useMatchRoute`](./router/useMatchRouteHook.md)
- [`useMatches`](./router/useMatchesHook.md)
- [`useNavigate`](./router/useNavigateHook.md)
- [`useParentMatches`](./router/useParentMatchesHook.md)
- [`useParams`](./router/useParamsHook.md)
- [`useRouteContext`](./router/useRouteContextHook.md)
- [`useRouter`](./router/useRouterHook.md)
- [`useRouterState`](./router/useRouterStateHook.md)
- [`useSearch`](./router/useSearchHook.md)
- Types
- [`ActiveLinkOptions Type`](../router/ActiveLinkOptionsType.md)
- [`AsyncRouteComponent Type`](../router/AsyncRouteComponentType.md)
- [`HistoryState Interface`](../router/historyStateInterface.md)
- [`LinkOptions Type`](../router/LinkOptionsType.md)
- [`LinkProps Type`](../router/LinkPropsType.md)
- [`MatchRouteOptions Type`](../router/MatchRouteOptionsType.md)
- [`NavigateOptions Type`](../router/NavigateOptionsType.md)
- [`NotFoundError Type`](../router/NotFoundErrorType.md)
- [`ParsedHistoryState Type`](../router/ParsedHistoryStateType.md)
- [`ParsedLocation Type`](../router/ParsedLocationType.md)
- [`Redirect Type`](../router/RedirectType.md)
- [`Register Type`](../router/RegisterType.md)
- [`Route Type`](../router/RouteType.md)
- [`RouteApi Type`](../router/RouteApiType.md)
- [`RouteMask Type`](../router/RouteMaskType.md)
- [`RouteMatch Type`](../router/RouteMatchType.md)
- [`RouteOptions Type`](../router/RouteOptionsType.md)
- [`Router Type`](../router/RouterType.md)
- [`RouterEvents Type`](../router/RouterEventsType.md)
- [`RouterOptions Type`](../router/RouterOptionsType.md)
- [`RouterState Type`](../router/RouterStateType.md)
- [`ToMaskOptions Type`](../router/ToMaskOptionsType.md)
- [`ToOptions Type`](../router/ToOptionsType.md)
- [`UseMatchRouteOptions Type`](../router/UseMatchRouteOptionsType.md)
- [`ViewTransitionOptions Type`](../router/ViewTransitionOptionsType.md)
- [`ActiveLinkOptions Type`](./router/ActiveLinkOptionsType.md)
- [`AsyncRouteComponent Type`](./router/AsyncRouteComponentType.md)
- [`HistoryState Interface`](./router/historyStateInterface.md)
- [`LinkOptions Type`](./router/LinkOptionsType.md)
- [`LinkProps Type`](./router/LinkPropsType.md)
- [`MatchRouteOptions Type`](./router/MatchRouteOptionsType.md)
- [`NavigateOptions Type`](./router/NavigateOptionsType.md)
- [`NotFoundError Type`](./router/NotFoundErrorType.md)
- [`ParsedHistoryState Type`](./router/ParsedHistoryStateType.md)
- [`ParsedLocation Type`](./router/ParsedLocationType.md)
- [`Redirect Type`](./router/RedirectType.md)
- [`Register Type`](./router/RegisterType.md)
- [`Route Type`](./router/RouteType.md)
- [`RouteApi Type`](./router/RouteApiType.md)
- [`RouteMask Type`](./router/RouteMaskType.md)
- [`RouteMatch Type`](./router/RouteMatchType.md)
- [`RouteOptions Type`](./router/RouteOptionsType.md)
- [`Router Type`](./router/RouterType.md)
- [`RouterEvents Type`](./router/RouterEventsType.md)
- [`RouterOptions Type`](./router/RouterOptionsType.md)
- [`RouterState Type`](./router/RouterStateType.md)
- [`ToMaskOptions Type`](./router/ToMaskOptionsType.md)
- [`ToOptions Type`](./router/ToOptionsType.md)
- [`UseMatchRouteOptions Type`](./router/UseMatchRouteOptionsType.md)
- [`ViewTransitionOptions Type`](./router/ViewTransitionOptionsType.md)
- ⚠️ Deprecated
- [`FileRoute Class`](../router/FileRouteClass.md)
- [`Route Class`](../router/RouteClass.md)
- [`Router Class`](../router/RouterClass.md)
- [`RouteApi Class`](../router/RouteApiClass.md)
- [`RootRoute Class`](../router/RootRouteClass.md)
- [`NotFoundRoute Class`](../router/NotFoundRouteClass.md)
- [`rootRouteWithContext Function`](../router/rootRouteWithContextFunction.md)
- [`FileRoute Class`](./router/FileRouteClass.md)
- [`Route Class`](./router/RouteClass.md)
- [`Router Class`](./router/RouterClass.md)
- [`RouteApi Class`](./router/RouteApiClass.md)
- [`RootRoute Class`](./router/RootRouteClass.md)
- [`NotFoundRoute Class`](./router/NotFoundRouteClass.md)
- [`createFileRoute`](./router/createFileRouteFunction.md)
- [`createLazyFileRoute`](./router/createLazyFileRouteFunction.md)
- [`createRootRoute`](./router/createRootRouteFunction.md)
- [`createRootRouteWithContext`](./router/createRootRouteWithContextFunction.md)
- [`createRoute`](./router/createRouteFunction.md)
- [`createLazyRoute`](./router/createLazyRouteFunction.md)
- [`createRouteMask`](./router/createRouteMaskFunction.md)
- [`createRouter`](./router/createRouterFunction.md)
- [`defer`](./router/deferFunction.md)
- [`getRouteApi`](./router/getRouteApiFunction.md)
- [`isNotFound`](./router/isNotFoundFunction.md)
- [`isRedirect`](./router/isRedirectFunction.md)
- [`lazyRouteComponent`](./router/lazyRouteComponentFunction.md)
- [`linkOptions`](./router/linkOptions.md)
- [`notFound`](./router/notFoundFunction.md)
- [`redirect`](./router/redirectFunction.md)
- [`retainSearchParams`](./router/retainSearchParamsFunction.md)
- [`stripSearchParams`](./router/stripSearchParamsFunction.md)
- Components
- [`<Await>`](./router/awaitComponent.md)
- [`<CatchBoundary>`](./router/catchBoundaryComponent.md)
- [`<CatchNotFound>`](./router/catchNotFoundComponent.md)
- [`<ClientOnly>`](./router/clientOnlyComponent.md)
- [`<DefaultGlobalNotFound>`](./router/defaultGlobalNotFoundComponent.md)
- [`<ErrorComponent>`](./router/errorComponentComponent.md)
- [`<Link>`](./router/linkComponent.md)
- [`<MatchRoute>`](./router/matchRouteComponent.md)
- [`<Navigate>`](./router/navigateComponent.md)
- [`<NotFoundComponent>`](./router/notFoundComponentComponent.md)
- [`<Outlet>`](./router/outletComponent.md)
- Hooks
- [`useAwaited`](./router/useAwaitedHook.md)
- [`useBlocker`](./router/useBlockerHook.md)
- [`useCanGoBack`](./router/useCanGoBack.md)
- [`useChildMatches`](./router/useChildMatchesHook.md)
- [`useLinkProps`](./router/useLinkPropsHook.md)
- [`useLoaderData`](./router/useLoaderDataHook.md)
- [`useLoaderDeps`](./router/useLoaderDepsHook.md)
- [`useLocation`](./router/useLocationHook.md)
- [`useMatch`](./router/useMatchHook.md)
- [`useMatchRoute`](./router/useMatchRouteHook.md)
- [`useMatches`](./router/useMatchesHook.md)
- [`useNavigate`](./router/useNavigateHook.md)
- [`useParentMatches`](./router/useParentMatchesHook.md)
- [`useParams`](./router/useParamsHook.md)
- [`useRouteContext`](./router/useRouteContextHook.md)
- [`useRouter`](./router/useRouterHook.md)
- [`useRouterState`](./router/useRouterStateHook.md)
- [`useSearch`](./router/useSearchHook.md)
- Types
- [`ActiveLinkOptions Type`](./router/ActiveLinkOptionsType.md)
- [`AsyncRouteComponent Type`](./router/AsyncRouteComponentType.md)
- [`HistoryState Interface`](./router/historyStateInterface.md)
- [`LinkOptions Type`](./router/LinkOptionsType.md)
- [`LinkProps Type`](./router/LinkPropsType.md)
- [`MatchRouteOptions Type`](./router/MatchRouteOptionsType.md)
- [`NavigateOptions Type`](./router/NavigateOptionsType.md)
- [`NotFoundError Type`](./router/NotFoundErrorType.md)
- [`ParsedHistoryState Type`](./router/ParsedHistoryStateType.md)
- [`ParsedLocation Type`](./router/ParsedLocationType.md)
- [`Redirect Type`](./router/RedirectType.md)
- [`Register Type`](./router/RegisterType.md)
- [`Route Type`](./router/RouteType.md)
- [`RouteApi Type`](./router/RouteApiType.md)
- [`RouteMask Type`](./router/RouteMaskType.md)
- [`RouteMatch Type`](./router/RouteMatchType.md)
- [`RouteOptions Type`](./router/RouteOptionsType.md)
- [`Router Type`](./router/RouterType.md)
- [`RouterEvents Type`](./router/RouterEventsType.md)
- [`RouterOptions Type`](./router/RouterOptionsType.md)
- [`RouterState Type`](./router/RouterStateType.md)
- [`ToMaskOptions Type`](./router/ToMaskOptionsType.md)
- [`ToOptions Type`](./router/ToOptionsType.md)
- [`UseMatchRouteOptions Type`](./router/UseMatchRouteOptionsType.md)
- [`ViewTransitionOptions Type`](./router/ViewTransitionOptionsType.md)
- ⚠️ Deprecated
- [`FileRoute Class`](./router/FileRouteClass.md)
- [`Route Class`](./router/RouteClass.md)
- [`Router Class`](./router/RouterClass.md)
- [`RouteApi Class`](./router/RouteApiClass.md)
- [`RootRoute Class`](./router/RootRouteClass.md)
- [`NotFoundRoute Class`](./router/NotFoundRouteClass.md)
🤖 Prompt for AI Agents
In docs/router/framework/react/api/router.md around lines 7 to 88, the link on
line 40 contains a double slash (`./router//useCanGoBack.md`); update that link
to the correct path `./router/useCanGoBack.md` so it matches the other entries
and resolves properly.


> [!IMPORTANT]
> The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../../routing/file-based-routing.md#getting-started-with-file-based-routing).
> The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../routing/file-based-routing.md#getting-started-with-file-based-routing).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Incorrect relative path depth for cross-directory link.

The link ../routing/file-based-routing.md resolves to docs/router/framework/routing/ which does not exist. Since the target file is at docs/router/routing/, the path should use two levels of ../ to reach the router directory level first.

- > [!IMPORTANT]
- > The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../routing/file-based-routing.md#getting-started-with-file-based-routing).
+ > [!IMPORTANT]
+ > The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../../routing/file-based-routing.md#getting-started-with-file-based-routing).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../routing/file-based-routing.md#getting-started-with-file-based-routing).
> [!IMPORTANT]
> The automatic code-splitting feature is **ONLY** available when you are using file-based routing with one of our [supported bundlers](../../../routing/file-based-routing.md#getting-started-with-file-based-routing).
🤖 Prompt for AI Agents
In docs/router/framework/react/guide/code-splitting.md around line 74, the
relative link ../routing/file-based-routing.md resolves to
docs/router/framework/routing/ (nonexistent) instead of docs/router/routing/;
update the link to use two levels up (../../routing/file-based-routing.md) so it
correctly points to the target file under docs/router/routing/.

Comment on lines +740 to +743
- [File-Based Routing Guide](../routing/file-based-routing.md) - Detailed routing concepts
- [Navigation Guide](../guide/navigation.md) - Complete navigation patterns
- [Search Parameters Guide](../guide/search-params.md) - Advanced search param usage
- [Type Safety Guide](../guide/type-safety.md) - TypeScript integration details
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix incorrect relative link depths in Related Resources section.

The relative paths use insufficient .. segments. From docs/router/framework/react/how-to/, these paths need to ascend 4 levels to reach the docs root, then descend into the target directories.

Current paths (incorrect):

  • ../routing/file-based-routing.md → resolves to docs/router/framework/react/routing/file-based-routing.md
  • ../guide/navigation.md → resolves to docs/router/framework/react/guide/navigation.md

Correct paths should be:

  • ../../../routing/file-based-routing.mddocs/routing/file-based-routing.md
  • ../../../guide/navigation.mddocs/guide/navigation.md

Additionally, per coding guidelines for docs/**/*.md files, consider using docs-root-relative paths like ./routing/file-based-routing.md for consistency.

## Related Resources

-- [TanStack Router Documentation](https://tanstack.com/router) - Complete API reference
-- [File-Based Routing Guide](../routing/file-based-routing.md) - Detailed routing concepts
-- [Navigation Guide](../guide/navigation.md) - Complete navigation patterns
-- [Search Parameters Guide](../guide/search-params.md) - Advanced search param usage
-- [Type Safety Guide](../guide/type-safety.md) - TypeScript integration details
+- [TanStack Router Documentation](https://tanstack.com/router) - Complete API reference
+- [File-Based Routing Guide](../../../routing/file-based-routing.md) - Detailed routing concepts
+- [Navigation Guide](../../../guide/navigation.md) - Complete navigation patterns
+- [Search Parameters Guide](../../../guide/search-params.md) - Advanced search param usage
+- [Type Safety Guide](../../../guide/type-safety.md) - TypeScript integration details

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In docs/router/framework/react/how-to/migrate-from-react-router.md around lines
740 to 743, the Related Resources links use one-level-up paths (../...) that
resolve into the current section instead of the docs root; update each link to
the corrected path prefix (use ../../../routing/file-based-routing.md,
../../../guide/navigation.md, ../../../guide/search-params.md,
../../../guide/type-safety.md) so they resolve to docs/*, or alternatively
replace them with docs-root-relative paths per guidelines (e.g.,
./routing/file-based-routing.md) for consistency.

Comment on lines +543 to +544
- [SSR Guide (Detailed)](../guide/ssr.md) - Comprehensive SSR concepts, utilities, and theory
- [Data Loading](../guide/data-loading.md) - SSR-compatible data loading patterns
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align internal documentation links with coding guideline format.

Lines 543–544 use ../guide/ relative paths, but the coding guideline specifies links should use the ./guide/... format (relative to docs/ folder root).

Apply this diff to align with the guideline:

- [SSR Guide (Detailed)](../guide/ssr.md) - Comprehensive SSR concepts, utilities, and theory
- [Data Loading](../guide/data-loading.md) - SSR-compatible data loading patterns
+ [SSR Guide (Detailed)](./guide/ssr.md) - Comprehensive SSR concepts, utilities, and theory
+ [Data Loading](./guide/data-loading.md) - SSR-compatible data loading patterns

Based on coding guidelines: "Use relative internal documentation links relative to docs/ folder (e.g., ./guide/data-loading)"

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [SSR Guide (Detailed)](../guide/ssr.md) - Comprehensive SSR concepts, utilities, and theory
- [Data Loading](../guide/data-loading.md) - SSR-compatible data loading patterns
- [SSR Guide (Detailed)](./guide/ssr.md) - Comprehensive SSR concepts, utilities, and theory
- [Data Loading](./guide/data-loading.md) - SSR-compatible data loading patterns
🤖 Prompt for AI Agents
In docs/router/framework/react/how-to/setup-ssr.md around lines 543 to 544, the
two internal links use ../guide/... while the project's guideline requires
internal docs links be relative to the docs/ root using ./guide/.... Update each
link to use the ./guide/... form (e.g., change ../guide/ssr.md to ./guide/ssr.md
and ../guide/data-loading.md to ./guide/data-loading.md) so they follow the
coding guideline.

## Related Resources

- [Code-Based Routing Guide](../../routing/code-based-routing.md) - Understanding code-based routing
- [Code-Based Routing Guide](../routing/code-based-routing.md) - Understanding code-based routing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Incorrect relative path depth for cross-directory link.

The link ../routing/code-based-routing.md resolves to docs/router/framework/routing/ which does not exist. The target file is at docs/router/routing/, requiring two directory levels to be traversed from docs/router/framework/react/how-to/.

- - [Code-Based Routing Guide](../routing/code-based-routing.md) - Understanding code-based routing
+ - [Code-Based Routing Guide](../../routing/code-based-routing.md) - Understanding code-based routing
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [Code-Based Routing Guide](../routing/code-based-routing.md) - Understanding code-based routing
- [Code-Based Routing Guide](../../../routing/code-based-routing.md) - Understanding code-based routing
🤖 Prompt for AI Agents
In docs/router/framework/react/how-to/setup-testing.md around line 971 the
relative link ../routing/code-based-routing.md points to
docs/router/framework/routing/ which doesn't exist; update the link to traverse
two levels up to the actual target (use ../../routing/code-based-routing.md) so
it resolves to docs/router/routing/code-based-routing.md and ensure the link
text stays the same.

If these defaults work for your project, you don't need to configure anything at all! However, if you need to customize the configuration, you can do so by editing the configuration object passed into the `tanstackRouter` function.

You can find all the available configuration options in the [File-based Routing API Reference](../../../../api/file-based-routing.md).
You can find all the available configuration options in the [File-based Routing API Reference](../../../api/file-based-routing.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, check if the target file exists at the resolved path
find docs -name "file-based-routing.md" -type f

Repository: TanStack/router

Length of output: 212


🏁 Script executed:

# Verify the link path from the file's perspective
file_path="docs/router/framework/solid/installation/with-webpack.md"
link_target="../../../api/file-based-routing.md"

# Show the file structure to understand the path resolution
echo "=== File location ==="
echo "$file_path"

echo -e "\n=== Resolving link path from installation directory ==="
cd docs/router/framework/solid/installation
pwd
echo "Link: $link_target"
ls -la "$link_target" 2>&1 || echo "Link target not found at: $(pwd)/$link_target"
cd - > /dev/null

echo -e "\n=== Directory structure around target ==="
ls -la docs/router/api/ 2>&1 | head -20

Repository: TanStack/router

Length of output: 604


🏁 Script executed:

# Check the exact content around line 92 to confirm context
head -95 docs/router/framework/solid/installation/with-webpack.md | tail -10

Repository: TanStack/router

Length of output: 576


🏁 Script executed:

# Check how links are formatted in other docs files
echo "=== Sample links from other docs files ==="
rg '\]\(\.' docs/ --max-count=10 -t md | head -20

Repository: TanStack/router

Length of output: 4164


🏁 Script executed:

# Check the specific file for other links to understand the pattern
echo "=== All links in with-webpack.md ==="
rg '\]\(\.\.' docs/router/framework/solid/installation/with-webpack.md -t md

Repository: TanStack/router

Length of output: 227


🏁 Script executed:

# Check a nearby file for link patterns
echo "=== Links in other installation guides ==="
rg '\]\(' docs/router/framework/solid/installation/ -t md -A 1 | head -30

Repository: TanStack/router

Length of output: 3586


Link path does not follow the coding guideline for docs files.

The link uses a relative file path (../../../api/file-based-routing.md) that correctly resolves to the target file. However, the coding guideline specifies that links in docs/**/*.md files should use relative paths from the docs folder (e.g., ./router/api/file-based-routing.md). Update the link format to comply with the guideline.

🤖 Prompt for AI Agents
In docs/router/framework/solid/installation/with-webpack.md around line 92, the
link uses a relative path ../../../api/file-based-routing.md which doesn't
follow the docs guideline; update the link to the docs-relative path starting
from the docs folder (example: ./router/api/file-based-routing.md) so the
markdown link becomes the docs-compliant path pointing to
router/api/file-based-routing.md.

The start handler is responsible for matching an incoming request to a server route and executing the appropriate middleware and handler.

If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](../server-entry-point).
If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](./server-entry-point).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Add missing .md extension to link.

The link target is missing the .md file extension, which will break link resolution. All other documentation links in this PR include the extension—this should too.

-If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](./server-entry-point).
+If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](./server-entry-point.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](./server-entry-point).
If you need to customize the server handler, you can do so by creating a custom handler and then passing the event to the start handler. See [The Server Entry Point](./server-entry-point.md).
🤖 Prompt for AI Agents
In docs/start/framework/react/guide/server-routes.md around line 113, the link
to "The Server Entry Point" is missing the .md extension which can break link
resolution; update the markdown link target to include the .md extension (change
./server-entry-point to ./server-entry-point.md) so it matches other docs and
resolves correctly.

You've successfully built a movie discovery app that integrates with an external API using TanStack Start. This tutorial demonstrated how to use route loaders for server-side data fetching and building UI components with external data.

While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast loading pages plus all the modern functionality users expect.
While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](/query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast loading pages plus all the modern functionality users expect.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Apply grammar fix: hyphenate compound adjective.

The phrase "fast loading pages" should be "fast-loading pages" to correctly hyphenate the compound adjective modifying "pages".

-While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](/query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast loading pages plus all the modern functionality users expect.
+While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](/query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast-loading pages plus all the modern functionality users expect.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](/query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast loading pages plus all the modern functionality users expect.
While fetching data at build time in TanStack Start is perfect for static content like blog posts or product pages, it's not ideal for interactive apps. If you need features like real-time updates, caching, or infinite scrolling, you'll want to use [TanStack Query](/query/latest) on the client side instead. TanStack Query makes it easy to handle dynamic data with built-in caching, background updates, and smooth user interactions. By using TanStack Start for static content and TanStack Query for interactive features, you get fast-loading pages plus all the modern functionality users expect.
🧰 Tools
🪛 LanguageTool

[grammar] ~317-~317: Use a hyphen to join words.
Context: ...y for interactive features, you get fast loading pages plus all the modern functi...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In docs/start/framework/react/tutorial/fetching-external-api.md around line 317,
the phrase "fast loading pages" uses an unhyphenated compound adjective; change
it to "fast-loading pages" to correctly hyphenate the compound adjective
modifying "pages."

If you'd like to use a different example, you can replace `start-basic` above with the slug of the example you'd like to use from the list below.

Once you've cloned the example you want, head back to the [Routing](../guide/routing) guide to learn how to use TanStack Start!
Once you've cloned the example you want, head back to the [Routing](./guide/routing) guide to learn how to use TanStack Start!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Add missing .md extensions to links.

Both links to the Routing guide are missing the .md file extension, which will break link resolution. All documentation links in this PR include the extension—these should too.

-Once you've cloned the example you want, head back to the [Routing](./guide/routing) guide to learn how to use TanStack Start!
+Once you've cloned the example you want, head back to the [Routing](./guide/routing.md) guide to learn how to use TanStack Start!
-Once you've clone or deployed an example, head back to the [Routing](./guide/routing) guide to learn how to use TanStack Start!
+Once you've clone or deployed an example, head back to the [Routing](./guide/routing.md) guide to learn how to use TanStack Start!

Also applies to: 63-63

🤖 Prompt for AI Agents
In docs/start/framework/solid/quick-start.md around lines 33 and 63, the two
links to the Routing guide are missing the .md extension which will break link
resolution; update both link URLs to include the .md suffix (e.g.,
./guide/routing.md) so they match the project's documentation link pattern and
resolve correctly.

@nx-cloud
Copy link

nx-cloud bot commented Dec 5, 2025

View your CI Pipeline Execution ↗ for commit ec0c7f3

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 7m 49s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1m 39s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-05 10:43:58 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Dec 5, 2025

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@6027

@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@6027

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@6027

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@6027

@tanstack/nitro-v2-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/nitro-v2-vite-plugin@6027

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@6027

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@6027

@tanstack/react-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-ssr-query@6027

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@6027

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@6027

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@6027

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@6027

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@6027

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@6027

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@6027

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@6027

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@6027

@tanstack/router-ssr-query-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-ssr-query-core@6027

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@6027

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@6027

@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@6027

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@6027

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@6027

@tanstack/solid-router-ssr-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-ssr-query@6027

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@6027

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@6027

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@6027

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@6027

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@6027

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@6027

@tanstack/start-static-server-functions

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-static-server-functions@6027

@tanstack/start-storage-context

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-storage-context@6027

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@6027

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@6027

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@6027

commit: ec0c7f3

@lachlancollins lachlancollins merged commit 15f8e9c into main Dec 5, 2025
6 checks passed
@lachlancollins lachlancollins deleted the docs-relative-links branch December 5, 2025 11:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Everything documentation related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants