Back to Router

TanStack Start — Skill Spec

packages/react-start/skills/_artifacts/skill_spec.md

1.166.77.2 KB
Original Source

TanStack Start — Skill Spec

TanStack Start is a full-stack React framework built on TanStack Router and Vite. It adds SSR, streaming, server functions (type-safe RPCs), middleware, server routes, and universal deployment. All code is isomorphic by default — it runs in both server and client environments unless explicitly constrained.

Domains

DomainDescriptionSkills
Project SetupScaffolding, Vite plugin, router factory, root route, entriesstart-setup
Server FunctionsType-safe RPCs with createServerFn, validation, streamingserver-functions
Middleware and ContextRequest/function middleware, context, global middlewaremiddleware
Execution ModelIsomorphic defaults, environment boundaries, env varsexecution-model
Server RoutesAPI endpoints, HTTP handlers, handler middlewareserver-routes
Deployment and RenderingHosting, selective SSR, prerendering, SEOdeployment

Skill Inventory

SkillTypeDomainWhat it coversFailure modes
start-setupcoreproject-setuptanstackStart(), getRouter(), root route, entries3
server-functionscoreserver-functionscreateServerFn, validation, useServerFn, streaming4
middlewarecoremiddleware-and-contextcreateMiddleware, context, global middleware, factories3
execution-modelcoreexecution-modelIsomorphic defaults, environment functions, env vars4
server-routescoreserver-routesserver property, HTTP handlers, createHandlers2
deploymentcoredeployment-and-renderingHosting, SSR modes, prerendering, SEO3
react-startframeworkproject-setupReact bindings, useServerFn, full setup3
migrate-from-nextjslifecycleproject-setupNext.js App Router migration checklist3

Failure Mode Inventory

start-setup (3 failure modes)

#MistakePrioritySource
1React plugin before Start plugin in Vite configCRITICALdocs/build-from-scratch
2Enabling verbatimModuleSyntax in tsconfigHIGHdocs/build-from-scratch
3Missing Scripts component in root routeHIGHdocs/guide/routing

server-functions (4 failure modes)

#MistakePrioritySource
1Putting server-only code in loaders instead of server functionsCRITICALmaintainer interview
2Generating Next.js/Remix server patterns ("use server", getServerSideProps)CRITICALmaintainer interview
3Using dynamic imports for server functionsHIGHdocs/guide/server-functions
4Not using useServerFn for component callsMEDIUMdocs/guide/server-functions

middleware (3 failure modes)

#MistakePrioritySource
1Trusting client sendContext without server validationHIGHdocs/guide/middleware
2Confusing request vs server function middlewareMEDIUMdocs/guide/middleware
3Wrong middleware method orderMEDIUMdocs/guide/middleware

execution-model (4 failure modes)

#MistakePrioritySource
1Assuming loaders are server-onlyCRITICALdocs/guide/execution-model
2Exposing secrets via module-level process.envCRITICALdocs/guide/execution-model
3Using VITE_ prefix for server secretsCRITICALdocs/guide/environment-variables
4Hydration mismatches from env-dependent renderingHIGHdocs/guide/execution-model

server-routes (2 failure modes)

#MistakePrioritySource
1Duplicate route path resolutionMEDIUMdocs/guide/server-routes
2Forgetting to await request body methodsMEDIUMdocs/guide/server-routes

deployment (3 failure modes)

#MistakePrioritySource
1Missing nodejs_compat flag for Cloudflare WorkersHIGHdocs/guide/hosting
2Bun deployment with React 18MEDIUMdocs/guide/hosting
3Child route loosening parent SSR configMEDIUMdocs/guide/selective-ssr

Tensions

TensionSkillsAgent implication
Isomorphic defaults vs server-only expectationsexecution-model ↔ server-functionsAgents put secrets/DB queries in loaders instead of server functions
Simplicity of isomorphic code vs security boundariesexecution-model ↔ middlewareAgents expose secrets via module-level process.env or skip context validation

Cross-References

FromToReason
server-functionsexecution-modelServer functions ARE the isomorphic boundary
server-functionsmiddlewareMiddleware chains compose with server functions
middlewareserver-routesServer routes use the same middleware system
deploymentexecution-modelDeployment target affects where code runs