Skip to content

Appendix C — Skill Mastery Checklist

Verified against @tanstack/react-start v1.168.x — July 2026.

This isn’t a test — it’s a map. Use it to find the gaps: if a line doesn’t feel solid, the linked chapters are where to go fix that, in the order listed. Prerequisite skills covers the baseline this whole book assumes; this checklist is the finish line, not the start line.

  • Understand why plugin order matters (tanstackStart() before viteReact(), host plugins before tanstackStart()) and can debug a build that breaks when it’s wrong. → Scaffolding and the Vite plugin, Cloudflare Workers
  • Know what Vite’s environments API is for, and why SSR-targeting plugins (like @cloudflare/vite-plugin) need to be told which environment to attach to. → Cloudflare Workers
  • Can read a bundle analyzer report and identify server-only code that leaked into the client bundle. → Performance tuning
  • Suspense, use(), and transitions — not just syntax, but what they change about request/response timing. → Prerequisite skills, SSR and streaming
  • Understand the Flight protocol at a conceptual level — what “a stream of React elements, not JSON” actually means. → RSC streaming mechanics

Streaming SSR & Suspense boundary placement

Section titled “Streaming SSR & Suspense boundary placement”
  • Understand createServerFn’s validator → middleware → handler pipeline, and that the handler never ships to the client. → Server function anatomy
  • Know what the RPC compile boundary actually strips, and why a shared module can leak server code into the client bundle anyway. → The RPC compile boundary
  • Can test a server function’s handler logic without standing up a real HTTP request. → Testing server functions and loaders

TypeScript generics (end-to-end inference)

Section titled “TypeScript generics (end-to-end inference)”
  • Can predict a server function’s inferred data type from its validator without running the code. → Prerequisite skills, Server function anatomy
  • Comfortable reading a broken-inference error and finding where the chain actually breaks, rather than widening a type to make it go away.
  • Understand streaming dehydration/hydration via the official Router-Query integration, and Start’s staleTime conventions. → TanStack Query
  • Know when reaching for Query alone is enough, versus needing DB or client UI state on top of it. → Decision framework
  • Can reason about defaultPreloadStaleTime and Query’s staleTime as two layers answering related questions. → Performance tuning