# TanStack/router — health index 77/100 (Good)

> Inspection of the public repository TanStack/router by inspect.software. It holds a health index of 77 out of 100, placing it in the Good band. The index is a signal derived from publicly visible practice, not a warranty, a security audit, or an endorsement, and it is independent of payment.

- Repository: https://github.com/TanStack/router
- Report page: https://inspect.software/software/TanStack/router
- Full JSON report: https://inspect.software/api/repositories/TanStack/router/report
- Badge: https://raw.githubusercontent.com/inspect-software/badges/main/v1/t/TanStack/router.svg
- Inspected: 2026-07-13
- Methodology: metrics 1.13.0, report schema 0.9.0 (https://inspect.software/methodology.md)

## Category summary

| Category | Weight | Index | Band |
|---|---|---|---|
| Vitality | 22% | 100/100 | Excellent |
| Community & Adoption | 18% | 83/100 | Good |
| Sustainability & Governance | 24% | 63/100 | Moderate |
| Engineering Quality | 20% | 85/100 | Excellent |
| Security | 16% | 52/100 | Moderate |
| AI Readiness | not counted | 74/100 | Good |

## Repository facts

| Field | Value |
|---|---|
| Description | 🤖 A client-first, server-capable, fully type-safe router and full-stack framework for the web (React and more). |
| Homepage | https://tanstack.com/router |
| Primary language | TypeScript |
| License | MIT |
| Stars | 14,792 |
| Forks | 1,763 |
| Created | 2019-01-14 |
| Last push | 2026-07-13 |
| Latest release | release-2026-07-03-0048 |
| Commits (last year) | 1,831 |
| Bus factor | 1 |
| Topics | framework, fullstack, javascript, react, route, router, routing, rpc, search, searchparams, server-functions, ssr, state-management, typesafe, typescript, url |

## Vitality — 100/100 (Excellent)

Is the project alive — is code being written and are releases shipping? Weight: 22% of the overall index.

### Development activity — 100/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Push recency | met | 36 / 36 | last push 0 days ago |
| Commit cadence | met | 36 / 36 | 52/52 weeks with commits |
| Commit volume | met | 18 / 18 | 1831 commits in the last year |
| OpenSSF Scorecard: Maintained | met | 10 / 10 | 30 commit(s) and 26 issue activity found in the last 90 days -- score normalized to 10 |

### Release discipline — 100/100 (Excellent)

Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Ships releases | met | 27 / 27 | 100 releases published |
| Release recency | met | 36 / 36 | latest release 10 days ago |
| Release cadence | met | 27 / 27 | a release every ~0.1 days |
| OpenSSF Scorecard: Signed-Releases | excluded | 0 / 10 | no releases found |

### Abandonment — 100/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Project is still maintained | met | 100 / 100 | maintenance record not established from the collected data |

## Community & Adoption — 83/100 (Good)

Does the project have users, downloads, attention, and a welcoming setup for contributors? Weight: 18% of the overall index.

### Popularity & adoption — 94/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Stars | met | 60 / 60 | 14,792 stars |
| Forks | met | 25 / 25 | 1,763 forks |
| Watchers | partial | 9.1 / 15 | 45 watchers |

### Community health — 70/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| README | met | 22.5 / 22.5 | — |
| License | met | 22.5 / 22.5 | recognized license (MIT) |
| CONTRIBUTING guide | met | 18 / 18 | — |
| Code of conduct | not met | 0 / 13.5 | — |
| Issue template | not met | 0 / 7.2 | — |
| PR template | not met | 0 / 6.3 | — |

## Sustainability & Governance — 63/100 (Moderate)

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep? Weight: 24% of the overall index.

### Maintainer resilience (bus factor) — 42/100 (At risk)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Bus factor | partial | 9 / 54 | 1 contributor(s) cover half of all commits |
| Commit distribution | partial | 9.6 / 22.5 | top contributor authored 57% of commits |
| Contributor breadth | met | 13.5 / 13.5 | 100 contributors |
| OpenSSF Scorecard: Contributors | met | 10 / 10 | project has 35 contributing companies or organizations |

### Issue & PR responsiveness — 75/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Issue resolution | partial | 40.3 / 46.8 | 86% of issues closed |
| PR acceptance | partial | 30.4 / 38.2 | 3032/3819 decided PRs merged |
| OpenSSF Scorecard: Code-Review | partial | 4.5 / 15 | Found 11/28 approved changesets -- score normalized to 3 |

### Ownership & stewardship — 77/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Ownership backing | met | 30 / 30 | organization-owned |
| Verified domain | not met | 0 / 20 | — |
| Owner reach | met | 25 / 25 | 10,946 followers of TanStack |
| Track record | partial | 21.9 / 25 | 26 public repos, account ~5 yr old |

## Engineering Quality — 85/100 (Excellent)

Are baseline engineering and documentation practices in place? Weight: 20% of the overall index.

### Engineering practices — 82/100 (Good)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| CI workflows | met | 24 / 24 | 8 workflow(s) |
| Tests present | met | 24 / 24 | — |
| Linter config | met | 16 / 16 | eslint.config.js |
| Pre-commit hooks | not met | 0 / 9.6 | — |
| .editorconfig | not met | 0 / 6.4 | — |
| OpenSSF Scorecard: CI-Tests | partial | 18 / 20 | 29 out of 30 merged PRs checked by a CI test -- score normalized to 9 |

### Documentation — 90/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| README | met | 30 / 30 | — |
| Documentation directory | met | 25 / 25 | — |
| Documentation / homepage site | met | 15 / 15 | https://tanstack.com/router |
| Repository description | met | 10 / 10 | — |
| Topics | met | 10 / 10 | 16 topics |
| Wiki | not met | 0 / 10 | — |

## Security — 52/100 (Moderate)

Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure? Weight: 16% of the overall index.

### Security posture — 52/100 (Moderate)

Excluded from scoring (no data or not applicable): Packaging, Signed-Releases. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Binary-Artifacts | met | 7.5 / 7.5 | no binaries found in the repo |
| Branch-Protection | partial | 2.2 / 7.5 | branch protection is not maximal on development and all release branches |
| CI-Tests | partial | 2.2 / 2.5 | 29 out of 30 merged PRs checked by a CI test -- score normalized to 9 |
| CII-Best-Practices | not met | 0 / 2.5 | no effort to earn an OpenSSF best practices badge detected |
| Code-Review | partial | 2.2 / 7.5 | Found 11/28 approved changesets -- score normalized to 3 |
| Contributors | met | 2.5 / 2.5 | project has 35 contributing companies or organizations |
| Dangerous-Workflow | met | 10 / 10 | no dangerous workflow patterns detected |
| Dependency-Update-Tool | met | 7.5 / 7.5 | update tool detected |
| Fuzzing | not met | 0 / 5 | project is not fuzzed |
| License | met | 2.5 / 2.5 | license file detected |
| Maintained | met | 7.5 / 7.5 | 30 commit(s) and 26 issue activity found in the last 90 days -- score normalized to 10 |
| Packaging | excluded | 0 / 5 | packaging workflow not detected |
| Pinned-Dependencies | partial | 4 / 5 | dependency not pinned by hash detected -- score normalized to 8 |
| SAST | not met | 0 / 5 | SAST tool is not run on all commits -- score normalized to 0 |
| Security-Policy | not met | 0 / 5 | security policy file not detected |
| Signed-Releases | excluded | 0 / 7.5 | no releases found |
| Token-Permissions | not met | 0 / 7.5 | detected GitHub workflow tokens with excessive permissions |
| Vulnerabilities | not met | 0 / 7.5 | 155 existing vulnerabilities detected |

### High-Risk Jurisdiction Exposure — 100/100 (Excellent)

Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Policy exposure multiplier | met | 100 / 100 | no confirmed policy-scope location match |

## AI Readiness — 74/100 (Good)

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

### Agent context & guidance — 75/100 (Good)

Excluded from scoring (no data or not applicable): Legible commit history. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Agent instructions | met | 45 / 45 | AGENTS.md |
| Machine-readable docs (llms.txt) | not met | 0 / 15 | — |
| Legible commit history | excluded | 0 / 40 | no data |

### Verify loop (build / test / typecheck) — 76/100 (Good)

Excluded from scoring (no data or not applicable): Demonstrated agent practice, Automated maintenance. Remaining weights renormalized.

| Criterion | Status | Points | Detail |
|---|---|---|---|
| One-command bootstrap | not met | 0 / 18 | — |
| Automated tests | met | 22 / 22 | — |
| Lint / format config | met | 11 / 11 | eslint.config.js |
| Static type checking | met | 11 / 11 | benchmarks/bundle-size/tsconfig.json, benchmarks/client-nav/react/tsconfig.json, benchmarks/client-nav/scenarios/async-pipeline/react/tsconfig.json, benchmarks/client-nav/scenarios/async-pipeline/solid/tsconfig.json, benchmarks/client-nav/scenarios/async-pipeline/vue/tsconfig.json, benchmarks/client-nav/scenarios/control-flow/react/tsconfig.json, benchmarks/client-nav/scenarios/control-flow/solid/tsconfig.json, benchmarks/client-nav/scenarios/control-flow/vue/tsconfig.json, benchmarks/client-nav/scenarios/head/react/tsconfig.json, benchmarks/client-nav/scenarios/head/solid/tsconfig.json, benchmarks/client-nav/scenarios/head/vue/tsconfig.json, benchmarks/client-nav/scenarios/history/react/tsconfig.json, benchmarks/client-nav/scenarios/history/solid/tsconfig.json, benchmarks/client-nav/scenarios/history/vue/tsconfig.json, benchmarks/client-nav/scenarios/links/react/tsconfig.json, benchmarks/client-nav/scenarios/links/solid/tsconfig.json, benchmarks/client-nav/scenarios/links/vue/tsconfig.json, benchmarks/client-nav/scenarios/loaders/react/tsconfig.json, benchmarks/client-nav/scenarios/loaders/solid/tsconfig.json, benchmarks/client-nav/scenarios/loaders/vue/tsconfig.json, benchmarks/client-nav/scenarios/mount/react/tsconfig.json, benchmarks/client-nav/scenarios/mount/solid/tsconfig.json, benchmarks/client-nav/scenarios/mount/vue/tsconfig.json, benchmarks/client-nav/scenarios/nested-params/react/tsconfig.json, benchmarks/client-nav/scenarios/nested-params/solid/tsconfig.json, benchmarks/client-nav/scenarios/nested-params/vue/tsconfig.json, benchmarks/client-nav/scenarios/preload/react/tsconfig.json, benchmarks/client-nav/scenarios/preload/solid/tsconfig.json, benchmarks/client-nav/scenarios/preload/vue/tsconfig.json, benchmarks/client-nav/scenarios/rewrites/react/tsconfig.json, benchmarks/client-nav/scenarios/rewrites/solid/tsconfig.json, benchmarks/client-nav/scenarios/rewrites/vue/tsconfig.json, benchmarks/client-nav/scenarios/route-tree-scale/react/tsconfig.json, benchmarks/client-nav/scenarios/route-tree-scale/solid/tsconfig.json, benchmarks/client-nav/scenarios/route-tree-scale/vue/tsconfig.json, benchmarks/client-nav/scenarios/search-params/react/tsconfig.json, benchmarks/client-nav/scenarios/search-params/solid/tsconfig.json, benchmarks/client-nav/scenarios/search-params/vue/tsconfig.json, benchmarks/client-nav/solid/tsconfig.json, benchmarks/client-nav/tsconfig.json, benchmarks/client-nav/vue/tsconfig.json, benchmarks/memory/client/scenarios/interrupted-navigations/react/tsconfig.json, benchmarks/memory/client/scenarios/interrupted-navigations/solid/tsconfig.json, benchmarks/memory/client/scenarios/interrupted-navigations/vue/tsconfig.json, benchmarks/memory/client/scenarios/loader-data-retention/react/tsconfig.json, benchmarks/memory/client/scenarios/loader-data-retention/solid/tsconfig.json, benchmarks/memory/client/scenarios/loader-data-retention/vue/tsconfig.json, benchmarks/memory/client/scenarios/mount-unmount/react/tsconfig.json, benchmarks/memory/client/scenarios/mount-unmount/solid/tsconfig.json, benchmarks/memory/client/scenarios/mount-unmount/vue/tsconfig.json, benchmarks/memory/client/scenarios/navigation-churn/react/tsconfig.json, benchmarks/memory/client/scenarios/navigation-churn/solid/tsconfig.json, benchmarks/memory/client/scenarios/navigation-churn/vue/tsconfig.json, benchmarks/memory/client/scenarios/preload-churn/react/tsconfig.json, benchmarks/memory/client/scenarios/preload-churn/solid/tsconfig.json, benchmarks/memory/client/scenarios/preload-churn/vue/tsconfig.json, benchmarks/memory/client/scenarios/unique-location-churn/react/tsconfig.json, benchmarks/memory/client/scenarios/unique-location-churn/solid/tsconfig.json, benchmarks/memory/client/scenarios/unique-location-churn/vue/tsconfig.json, benchmarks/memory/client/tsconfig.json, benchmarks/memory/server/scenarios/aborted-requests/react/tsconfig.json, benchmarks/memory/server/scenarios/aborted-requests/solid/tsconfig.json, benchmarks/memory/server/scenarios/aborted-requests/vue/tsconfig.json, benchmarks/memory/server/scenarios/error-paths/react/tsconfig.json, benchmarks/memory/server/scenarios/error-paths/solid/tsconfig.json, benchmarks/memory/server/scenarios/error-paths/vue/tsconfig.json, benchmarks/memory/server/scenarios/peak-large-page/react/tsconfig.json, benchmarks/memory/server/scenarios/peak-large-page/solid/tsconfig.json, benchmarks/memory/server/scenarios/peak-large-page/vue/tsconfig.json, benchmarks/memory/server/scenarios/request-churn/react/tsconfig.json, benchmarks/memory/server/scenarios/request-churn/solid/tsconfig.json, benchmarks/memory/server/scenarios/request-churn/vue/tsconfig.json, benchmarks/memory/server/scenarios/serialization-payload/react/tsconfig.json, benchmarks/memory/server/scenarios/serialization-payload/solid/tsconfig.json, benchmarks/memory/server/scenarios/serialization-payload/vue/tsconfig.json, benchmarks/memory/server/scenarios/server-fn-churn/react/tsconfig.json, benchmarks/memory/server/scenarios/server-fn-churn/solid/tsconfig.json, benchmarks/memory/server/scenarios/server-fn-churn/vue/tsconfig.json, benchmarks/memory/server/scenarios/streaming-peak/react/tsconfig.json, benchmarks/memory/server/scenarios/streaming-peak/solid/tsconfig.json, benchmarks/memory/server/scenarios/streaming-peak/vue/tsconfig.json, benchmarks/memory/server/tsconfig.json, benchmarks/ssr/react/tsconfig.json, benchmarks/ssr/scenarios/assets/react/tsconfig.json, benchmarks/ssr/scenarios/assets/solid/tsconfig.json, benchmarks/ssr/scenarios/assets/vue/tsconfig.json, benchmarks/ssr/scenarios/before-load/react/tsconfig.json, benchmarks/ssr/scenarios/before-load/solid/tsconfig.json, benchmarks/ssr/scenarios/before-load/vue/tsconfig.json, benchmarks/ssr/scenarios/control-flow/react/tsconfig.json, benchmarks/ssr/scenarios/control-flow/solid/tsconfig.json, benchmarks/ssr/scenarios/control-flow/vue/tsconfig.json, benchmarks/ssr/scenarios/global-middleware/react/tsconfig.json, benchmarks/ssr/scenarios/global-middleware/solid/tsconfig.json, benchmarks/ssr/scenarios/global-middleware/vue/tsconfig.json, benchmarks/ssr/scenarios/head/react/tsconfig.json, benchmarks/ssr/scenarios/head/solid/tsconfig.json, benchmarks/ssr/scenarios/head/vue/tsconfig.json, benchmarks/ssr/scenarios/loaders/react/tsconfig.json, benchmarks/ssr/scenarios/loaders/solid/tsconfig.json, benchmarks/ssr/scenarios/loaders/vue/tsconfig.json, benchmarks/ssr/scenarios/rewrites/react/tsconfig.json, benchmarks/ssr/scenarios/rewrites/solid/tsconfig.json, benchmarks/ssr/scenarios/rewrites/vue/tsconfig.json, benchmarks/ssr/scenarios/selective-ssr/react/tsconfig.json, benchmarks/ssr/scenarios/selective-ssr/solid/tsconfig.json, benchmarks/ssr/scenarios/selective-ssr/vue/tsconfig.json, benchmarks/ssr/scenarios/serialization/react/tsconfig.json, benchmarks/ssr/scenarios/serialization/solid/tsconfig.json, benchmarks/ssr/scenarios/serialization/vue/tsconfig.json, benchmarks/ssr/scenarios/server-fn-transport/react/tsconfig.json, benchmarks/ssr/scenarios/server-fn-transport/solid/tsconfig.json, benchmarks/ssr/scenarios/server-fn-transport/vue/tsconfig.json, benchmarks/ssr/scenarios/server-fns/react/tsconfig.json, benchmarks/ssr/scenarios/server-fns/solid/tsconfig.json, benchmarks/ssr/scenarios/server-fns/vue/tsconfig.json, benchmarks/ssr/scenarios/server-routes-middleware/react/tsconfig.json, benchmarks/ssr/scenarios/server-routes-middleware/solid/tsconfig.json, benchmarks/ssr/scenarios/server-routes-middleware/vue/tsconfig.json, benchmarks/ssr/scenarios/server-routes/react/tsconfig.json, benchmarks/ssr/scenarios/server-routes/solid/tsconfig.json, benchmarks/ssr/scenarios/server-routes/vue/tsconfig.json, benchmarks/ssr/scenarios/streaming/react/tsconfig.json, benchmarks/ssr/scenarios/streaming/solid/tsconfig.json, benchmarks/ssr/scenarios/streaming/vue/tsconfig.json, benchmarks/ssr/solid/tsconfig.json, benchmarks/ssr/tsconfig.json, benchmarks/ssr/vue/tsconfig.json, e2e/e2e-utils/tsconfig.json, e2e/eslint-plugin-start/tsconfig.json, e2e/react-router/basepath-file-based/tsconfig.json, e2e/react-router/basic-esbuild-file-based/tsconfig.json, e2e/react-router/basic-file-based-code-splitting/tsconfig.json, e2e/react-router/basic-file-based/tsconfig.json, e2e/react-router/basic-react-query-file-based/tsconfig.json, e2e/react-router/basic-react-query/tsconfig.json, e2e/react-router/basic-scroll-restoration/tsconfig.json, e2e/react-router/basic-virtual-file-based/tsconfig.json, e2e/react-router/basic-virtual-named-export-config-file-based/tsconfig.json, e2e/react-router/basic/tsconfig.json, e2e/react-router/escaped-special-strings/tsconfig.json, e2e/react-router/generator-cli-only/tsconfig.json, e2e/react-router/i18n-paraglide/tsconfig.json, e2e/react-router/js-only-file-based/tsconfig.json, e2e/react-router/match-params/tsconfig.json, e2e/react-router/rspack-basic-file-based/tsconfig.json, e2e/react-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json, e2e/react-router/scroll-restoration-sandbox-vite/tsconfig.json, e2e/react-router/sentry-integration/tsconfig.json, e2e/react-router/view-transitions/tsconfig.json, e2e/react-start/basic-auth/tsconfig.json, e2e/react-start/basic-cloudflare/tsconfig.json, e2e/react-start/basic-react-query/tsconfig.json, e2e/react-start/basic-tsr-config/tsconfig.json, e2e/react-start/basic/tsconfig.json, e2e/react-start/clerk-basic/tsconfig.json, e2e/react-start/csp/tsconfig.json, e2e/react-start/css-inline/tsconfig.json, e2e/react-start/css-modules/tsconfig.json, e2e/react-start/custom-basepath/tsconfig.json, e2e/react-start/custom-server-rsbuild/tsconfig.json, e2e/react-start/deferred-hydration/tsconfig.json, e2e/react-start/dev-ssr-styles/tsconfig.json, e2e/react-start/early-hints/tsconfig.json, e2e/react-start/flamegraph-bench/tsconfig.json, e2e/react-start/hmr/tsconfig.json, e2e/react-start/i18n-paraglide/tsconfig.json, e2e/react-start/import-protection-custom-config/tsconfig.json, e2e/react-start/import-protection/tsconfig.json, e2e/react-start/query-integration/tsconfig.json, e2e/react-start/rsc-deferred-hydration/tsconfig.json, e2e/react-start/rsc-query/tsconfig.json, e2e/react-start/rsc-rsbuild/tsconfig.json, e2e/react-start/rsc/tsconfig.json, e2e/react-start/scroll-restoration/tsconfig.json, e2e/react-start/selective-ssr/tsconfig.json, e2e/react-start/serialization-adapters/tsconfig.json, e2e/react-start/server-functions-global-middleware/tsconfig.json, e2e/react-start/server-functions/tsconfig.json, e2e/react-start/server-routes-global-middleware/tsconfig.json, e2e/react-start/server-routes/tsconfig.json, e2e/react-start/spa-mode/tsconfig.json, e2e/react-start/split-base-and-basepath/tsconfig.json, e2e/react-start/start-manifest/tsconfig.json, e2e/react-start/static-server-functions/tsconfig.json, e2e/react-start/streaming-ssr/tsconfig.json, e2e/react-start/transform-asset-urls/tsconfig.json, e2e/react-start/virtual-routes/tsconfig.json, e2e/react-start/website/tsconfig.json, e2e/solid-router/basepath-file-based/tsconfig.json, e2e/solid-router/basic-esbuild-file-based/tsconfig.json, e2e/solid-router/basic-file-based-code-splitting/tsconfig.json, e2e/solid-router/basic-file-based/tsconfig.json, e2e/solid-router/basic-scroll-restoration/tsconfig.json, e2e/solid-router/basic-solid-query-file-based/tsconfig.json, e2e/solid-router/basic-solid-query/tsconfig.json, e2e/solid-router/basic-virtual-file-based/tsconfig.json, e2e/solid-router/basic-virtual-named-export-config-file-based/tsconfig.json, e2e/solid-router/basic/tsconfig.json, e2e/solid-router/generator-cli-only/tsconfig.json, e2e/solid-router/js-only-file-based/tsconfig.json, e2e/solid-router/rspack-basic-file-based/tsconfig.json, e2e/solid-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json, e2e/solid-router/scroll-restoration-sandbox-vite/tsconfig.json, e2e/solid-router/sentry-integration/tsconfig.json, e2e/solid-router/view-transitions/tsconfig.json, e2e/solid-start/basic-auth/tsconfig.json, e2e/solid-start/basic-cloudflare/tsconfig.json, e2e/solid-start/basic-solid-query/tsconfig.json, e2e/solid-start/basic-tsr-config/tsconfig.json, e2e/solid-start/basic/tsconfig.json, e2e/solid-start/csp/tsconfig.json, e2e/solid-start/css-modules/tsconfig.json, e2e/solid-start/custom-basepath/tsconfig.json, e2e/solid-start/deferred-hydration/tsconfig.json, e2e/solid-start/query-integration/tsconfig.json, e2e/solid-start/scroll-restoration/tsconfig.json, e2e/solid-start/selective-ssr/tsconfig.json, e2e/solid-start/serialization-adapters/tsconfig.json, e2e/solid-start/server-functions/tsconfig.json, e2e/solid-start/server-routes/tsconfig.json, e2e/solid-start/solid-query-layout-suspense/tsconfig.json, e2e/solid-start/spa-mode/tsconfig.json, e2e/solid-start/start-manifest/tsconfig.json, e2e/solid-start/virtual-routes/tsconfig.json, e2e/solid-start/website/tsconfig.json, e2e/vue-router/basepath-file-based/tsconfig.json, e2e/vue-router/basic-esbuild-file-based/tsconfig.json, e2e/vue-router/basic-file-based-jsx/tsconfig.json, e2e/vue-router/basic-file-based-sfc/tsconfig.json, e2e/vue-router/basic-scroll-restoration/tsconfig.json, e2e/vue-router/basic-virtual-file-based/tsconfig.json, e2e/vue-router/basic-virtual-named-export-config-file-based/tsconfig.json, e2e/vue-router/basic-vue-query-file-based/tsconfig.json, e2e/vue-router/basic-vue-query/tsconfig.json, e2e/vue-router/basic/tsconfig.json, e2e/vue-router/generator-cli-only/tsconfig.json, e2e/vue-router/js-only-file-based/tsconfig.json, e2e/vue-router/rspack-basic-file-based/tsconfig.json, e2e/vue-router/rspack-basic-virtual-named-export-config-file-based/tsconfig.json, e2e/vue-router/scroll-restoration-sandbox-vite/tsconfig.json, e2e/vue-router/sentry-integration/tsconfig.json, e2e/vue-router/view-transitions/tsconfig.json, e2e/vue-start/basic-auth/tsconfig.json, e2e/vue-start/basic-cloudflare/tsconfig.json, e2e/vue-start/basic-tsr-config/tsconfig.json, e2e/vue-start/basic-vue-query/tsconfig.json, e2e/vue-start/basic/tsconfig.json, e2e/vue-start/css-modules/tsconfig.json, e2e/vue-start/custom-basepath/tsconfig.json, e2e/vue-start/query-integration/tsconfig.json, e2e/vue-start/scroll-restoration/tsconfig.json, e2e/vue-start/selective-ssr/tsconfig.json, e2e/vue-start/serialization-adapters/tsconfig.json, e2e/vue-start/server-functions/tsconfig.json, e2e/vue-start/server-routes/tsconfig.json, e2e/vue-start/spa-mode/tsconfig.json, e2e/vue-start/start-manifest/tsconfig.json, e2e/vue-start/virtual-routes/tsconfig.json, e2e/vue-start/website/tsconfig.json, examples/react/authenticated-routes-firebase/tsconfig.json, examples/react/authenticated-routes/tsconfig.json, examples/react/basic-default-search-params/tsconfig.json, examples/react/basic-devtools-panel/tsconfig.json, examples/react/basic-file-based/tsconfig.json, examples/react/basic-non-nested-devtools/tsconfig.json, examples/react/basic-react-query-file-based/tsconfig.json, examples/react/basic-react-query/tsconfig.json, examples/react/basic-ssr-file-based/tsconfig.json, examples/react/basic-ssr-streaming-file-based/tsconfig.json, examples/react/basic-virtual-file-based/tsconfig.json, examples/react/basic-virtual-inside-file-based/tsconfig.json, examples/react/basic/tsconfig.json, examples/react/deferred-data/tsconfig.json, examples/react/i18n-paraglide/tsconfig.json, examples/react/kitchen-sink-file-based/tsconfig.json, examples/react/kitchen-sink-react-query-file-based/tsconfig.json, examples/react/kitchen-sink-react-query/tsconfig.json, examples/react/kitchen-sink/tsconfig.json, examples/react/large-file-based/tsconfig.json, examples/react/location-masking/tsconfig.json, examples/react/navigation-blocking/tsconfig.json, examples/react/quickstart-esbuild-file-based/tsconfig.json, examples/react/quickstart-file-based/tsconfig.json, examples/react/quickstart-rspack-file-based/tsconfig.json, examples/react/quickstart-webpack-file-based/tsconfig.json, examples/react/quickstart/tsconfig.json, examples/react/router-monorepo-react-query/packages/app/tsconfig.json, examples/react/router-monorepo-react-query/packages/post-feature/tsconfig.json, examples/react/router-monorepo-react-query/packages/post-query/tsconfig.json, examples/react/router-monorepo-react-query/packages/router/tsconfig.json, examples/react/router-monorepo-simple-lazy/packages/app/tsconfig.json, examples/react/router-monorepo-simple-lazy/packages/post-feature/tsconfig.json, examples/react/router-monorepo-simple-lazy/packages/router/tsconfig.json, examples/react/router-monorepo-simple/packages/app/tsconfig.json, examples/react/router-monorepo-simple/packages/post-feature/tsconfig.json, examples/react/router-monorepo-simple/packages/router/tsconfig.json, examples/react/scroll-restoration/tsconfig.json, examples/react/search-validator-adapters/tsconfig.json, examples/react/start-bare/tsconfig.json, examples/react/start-basic-auth/tsconfig.json, examples/react/start-basic-authjs/tsconfig.json, examples/react/start-basic-cloudflare/tsconfig.json, examples/react/start-basic-react-query/tsconfig.json, examples/react/start-basic-static/tsconfig.json, examples/react/start-basic/tsconfig.json, examples/react/start-bun/tsconfig.json, examples/react/start-clerk-basic/tsconfig.json, examples/react/start-convex-trellaux/convex/tsconfig.json, examples/react/start-convex-trellaux/tsconfig.json, examples/react/start-counter/tsconfig.json, examples/react/start-i18n-paraglide/tsconfig.json, examples/react/start-large/tsconfig.json, examples/react/start-material-ui/tsconfig.json, examples/react/start-rscs/tsconfig.json, examples/react/start-streaming-data-from-server-functions/tsconfig.json, examples/react/start-supabase-basic/tsconfig.json, examples/react/start-tailwind-v4/tsconfig.json, examples/react/start-trellaux/tsconfig.json, examples/react/start-workos/tsconfig.json, examples/react/view-transitions/tsconfig.json, examples/react/with-framer-motion/tsconfig.json, examples/react/with-trpc-react-query/tsconfig.json, examples/react/with-trpc/tsconfig.json, examples/solid/authenticated-routes-firebase/tsconfig.json, examples/solid/authenticated-routes/tsconfig.json, examples/solid/basic-default-search-params/tsconfig.json, examples/solid/basic-devtools-panel/tsconfig.json, examples/solid/basic-file-based/tsconfig.json, examples/solid/basic-non-nested-devtools/tsconfig.json, examples/solid/basic-solid-query-file-based/tsconfig.json, examples/solid/basic-solid-query/tsconfig.json, examples/solid/basic-ssr-file-based/tsconfig.json, examples/solid/basic-ssr-streaming-file-based/tsconfig.json, examples/solid/basic-virtual-file-based/tsconfig.json, examples/solid/basic-virtual-inside-file-based/tsconfig.json, examples/solid/basic/tsconfig.json, examples/solid/deferred-data/tsconfig.json, examples/solid/i18n-paraglide/tsconfig.json, examples/solid/kitchen-sink-file-based/tsconfig.json, examples/solid/kitchen-sink-solid-query-file-based/tsconfig.json, examples/solid/kitchen-sink-solid-query/tsconfig.json, examples/solid/kitchen-sink/tsconfig.json, examples/solid/large-file-based/tsconfig.json, examples/solid/location-masking/tsconfig.json, examples/solid/navigation-blocking/tsconfig.json, examples/solid/quickstart-esbuild-file-based/tsconfig.json, examples/solid/quickstart-file-based/tsconfig.json, examples/solid/quickstart-rspack-file-based/tsconfig.json, examples/solid/quickstart-webpack-file-based/tsconfig.json, examples/solid/quickstart/tsconfig.json, examples/solid/router-monorepo-simple-lazy/packages/app/tsconfig.json, examples/solid/router-monorepo-simple-lazy/packages/post-feature/tsconfig.json, examples/solid/router-monorepo-simple-lazy/packages/router/tsconfig.json, examples/solid/router-monorepo-simple/packages/app/tsconfig.json, examples/solid/router-monorepo-simple/packages/post-feature/tsconfig.json, examples/solid/router-monorepo-simple/packages/router/tsconfig.json, examples/solid/router-monorepo-solid-query/packages/app/tsconfig.json, examples/solid/router-monorepo-solid-query/packages/post-feature/tsconfig.json, examples/solid/router-monorepo-solid-query/packages/post-query/tsconfig.json, examples/solid/router-monorepo-solid-query/packages/router/tsconfig.json, examples/solid/scroll-restoration/tsconfig.json, examples/solid/search-validator-adapters/tsconfig.json, examples/solid/start-basic-auth/tsconfig.json, examples/solid/start-basic-authjs/tsconfig.json, examples/solid/start-basic-cloudflare/tsconfig.json, examples/solid/start-basic-netlify/tsconfig.json, examples/solid/start-basic-nitro/tsconfig.json, examples/solid/start-basic-solid-query/tsconfig.json, examples/solid/start-basic-static/tsconfig.json, examples/solid/start-basic/tsconfig.json, examples/solid/start-bun/tsconfig.json, examples/solid/start-convex-better-auth/convex/tsconfig.json, examples/solid/start-convex-better-auth/tsconfig.json, examples/solid/start-counter/tsconfig.json, examples/solid/start-i18n-paraglide/tsconfig.json, examples/solid/start-large/tsconfig.json, examples/solid/start-streaming-data-from-server-functions/tsconfig.json, examples/solid/start-supabase-basic/tsconfig.json, examples/solid/start-tailwind-v4/tsconfig.json, examples/solid/view-transitions/tsconfig.json, examples/solid/with-framer-motion/tsconfig.json, examples/solid/with-trpc/tsconfig.json, examples/vue/basic-file-based-jsx/tsconfig.json, examples/vue/basic-file-based-sfc/tsconfig.json, examples/vue/basic/tsconfig.json, packages/arktype-adapter/tsconfig.json, packages/eslint-plugin-router/tsconfig.json, packages/eslint-plugin-start/src/__tests__/tsconfig.json, packages/eslint-plugin-start/tsconfig.json, packages/history/tsconfig.json, packages/nitro-v2-vite-plugin/tsconfig.json, packages/react-router-devtools/tsconfig.json, packages/react-router-ssr-query/tsconfig.json, packages/react-router/tsconfig.json, packages/react-start-client/tsconfig.json, packages/react-start-rsc/tsconfig.json, packages/react-start-server/tsconfig.json, packages/react-start/tsconfig.json, packages/router-cli/tsconfig.json, packages/router-core/tsconfig.json, packages/router-devtools-core/tsconfig.json, packages/router-devtools/tsconfig.json, packages/router-generator/tests/generator/virtual-config-file-tsconfig-paths/tsconfig.json, packages/router-generator/tsconfig.json, packages/router-plugin/tsconfig.json, packages/router-ssr-query-core/tsconfig.json, packages/router-utils/tsconfig.json, packages/router-vite-plugin/tsconfig.json, packages/solid-router-devtools/tsconfig.json, packages/solid-router-ssr-query/tsconfig.json, packages/solid-router/tsconfig.json, packages/solid-start-client/tsconfig.json, packages/solid-start-server/tsconfig.json, packages/solid-start/tsconfig.json, packages/start-client-core/tsconfig.json, packages/start-fn-stubs/tsconfig.json, packages/start-plugin-core/tsconfig.json, packages/start-server-core/tsconfig.json, packages/start-static-server-functions/tsconfig.json, packages/start-storage-context/tsconfig.json, packages/valibot-adapter/tsconfig.json, packages/virtual-file-routes/tsconfig.json, packages/vue-router-devtools/tsconfig.json, packages/vue-router-ssr-query/tsconfig.json, packages/vue-router/tsconfig.json, packages/vue-start-client/tsconfig.json, packages/vue-start-server/tsconfig.json, packages/vue-start/tsconfig.json, packages/zod-adapter/tsconfig.json, tsconfig.json |
| Reproducible environment | met | 10 / 10 | devcontainer, lockfile |
| Demonstrated agent practice | excluded | 0 / 10 | no data |
| Automated maintenance | excluded | 0 / 8 | no data |
| OpenSSF Scorecard: Pinned-Dependencies | partial | 8 / 10 | dependency not pinned by hash detected -- score normalized to 8 |

### Code legibility for models — 100/100 (Excellent)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| Type-checkable code | met | 45 / 45 | TypeScript (statically typed) |
| Manageable file sizes | partial | 54.8 / 55 | 30/8531 source files over 60KB |

### Machine-readable interfaces — 40/100 (At risk)

| Criterion | Status | Points | Detail |
|---|---|---|---|
| API schema (OpenAPI/GraphQL/proto) | not met | 0 / 40 | — |
| MCP server | not met | 0 / 20 | — |
| Runnable examples | met | 40 / 40 | examples |

## What this report is

inspect.software measures public repositories against a single published, versioned methodology and reports the result as a 1–100 health index. Findings are signals derived from what is visible in public repository data — they are not a security audit, a warranty, or an endorsement, and no result depends on payment.

- Methodology, formulas and weights: https://inspect.software/methodology.md
- What a result does and does not claim: https://inspect.software/wiki/signals-not-warranties.md
- Rating bands: https://inspect.software/wiki/scoring-bands.md
- Corrections: https://inspect.software/contact.md
- Index of all documents: https://inspect.software/llms.txt
