TanStack
TanStack

Start

RC

One Router-first app, from server request to client navigation.

Start keeps TanStack Router as the application contract, then adds full-document rendering, streaming, typed server work, middleware, and output for the runtime you choose.

Docs
route execution map

server

  1. 1beforeLoad
  2. 2loader
  3. 3component
  4. 4stream HTML

browser

  1. 1hydrate HTML
  2. 2client navigation

Full SSR

Data and markup arrive ready to hydrate.

Router at the core

The framework does not replace the application model.

Routes, params, search schemas, loaders, links, pending states, and boundaries stay TanStack Router. Start adds the server and build layers around that same tree.

Start server layer

SSR · streaming · server functions · routes · middleware

TanStack Router

route tree · URL state · loaders · links · boundaries

Your application

components · data clients · product behavior

Explicit boundaries

Server work is visible in the code that calls it.

Use server functions for type-safe app calls, server routes for outside callers, and composable middleware for authentication, context, logging, and policy.

server boundary

Typed work called from the app

const getProject = createServerFn({ method: 'GET' })
  .validator(projectSchema)
  .handler(({ data }) => db.projects.find(data.id))
  1. component or loader
  2. validated request
  3. server-only handler
  4. typed result

Portable application model

Keep the routes. Change the output.

Start supports Vite and Rsbuild and is designed for different hosting providers and runtimes. Deployment configuration changes; route authoring and server boundaries do not.

deployment output

selected target

Cloudflare Workers

output
Worker runtime
deploy
wrangler deploy
createFileRoute()
createServerFn()
middleware()
route loaders

The authoring surface stays the same.