# System map — TanStack/router

> Canonical page: https://codevetter.com/unpack/router/system-map

# System map — TanStack/router

Scanned commit 1f0f20a3206a28365d74fd2485b9a8eedbf74dd0 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

The repository publishes routing and full-stack framework packages rather than one deployable application. RouterCore owns shared routing, while framework bindings provide rendering and store integration. Start introduces HTTP request handling and request-local context on top of that core. Workspace scripts and CI coordinate builds, correctness checks, performance scenarios, and releases.
- React, Solid, and Vue expose createRouter factories whose Router classes extend RouterCore and pass getStoreFactory to its constructor. — [packages/react-router/src/router.ts#L91-L118](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/react-router/src/router.ts#L91-L118) [packages/solid-router/src/router.ts#L76-L103](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/solid-router/src/router.ts#L76-L103) [packages/vue-router/src/router.ts#L77-L104](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/vue-router/src/router.ts#L77-L104)
- RouterCore.load dispatches to loadServerRoute on the server and otherwise updates the latest location before calling loadClientRoute. — [packages/router-core/src/router.ts#L2423-L2433](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/router-core/src/router.ts#L2423-L2433)
- React Router uses nonreactive core stores on the server and React Store atoms with batching on the client. — [packages/react-router/src/routerStores.ts#L13-L25](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/react-router/src/routerStores.ts#L13-L25)
- createStartHandler returns a RequestHandler that distinguishes server-function requests using SERVER_FN_BASE and supplies separate RPC and router terminals. — [packages/start-server-core/src/createStartHandler.ts#L543-L568](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/src/createStartHandler.ts#L543-L568) [packages/start-server-core/src/createStartHandler.ts#L648-L685](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/src/createStartHandler.ts#L648-L685) [packages/start-server-core/src/createStartHandler.ts#L771-L783](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/src/createStartHandler.ts#L771-L783)
- Start stores request context in AsyncLocalStorage, while session helpers delegate to h3 against the current request event; these inspected layers expose request/session state rather than a database implementation. — [packages/start-storage-context/src/async-local-storage.ts#L10-L49](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-storage-context/src/async-local-storage.ts#L10-L49) [packages/start-server-core/src/request-response.ts#L399-L423](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/src/request-response.ts#L399-L423)
- Router core publishes ESM and CommonJS entrypoints plus separate SSR client/server and conditional isServer exports; Start server core publishes ESM entrypoints and requires Node >=22.12.0. — [packages/router-core/package.json#L36-L80](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/router-core/package.json#L36-L80) [packages/start-server-core/package.json#L41-L60](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/package.json#L41-L60) [packages/start-server-core/package.json#L98-L108](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/packages/start-server-core/package.json#L98-L108)
- The pnpm@11.21.0 workspace includes packages, benchmarks, framework examples, and framework e2e projects; root test:pr uses nx affected and test:ci uses nx run-many across lint, unit, e2e, types, build checks, and builds. — [package.json#L8-L24](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/package.json#L8-L24) [pnpm-workspace.yaml#L15-L32](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/pnpm-workspace.yaml#L15-L32)
- PR CI runs affected checks and publishes package previews; release CI builds packages before Changesets versioning/publishing and selects prerelease, maintenance, or latest behavior from branch names. — [.github/workflows/pr.yml#L23-L59](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/.github/workflows/pr.yml#L23-L59) [.github/workflows/release.yml#L32-L61](https://github.com/TanStack/router/blob/1f0f20a3206a28365d74fd2485b9a8eedbf74dd0/.github/workflows/release.yml#L32-L61)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
