
Tanstack Start
- 196 repo stars
- Updated July 25, 2026
- secondsky/claude-skills
Build full-stack React with TanStack Start (RC) — server functions, SSR, and Cloudflare Workers edge rendering.
About
TanStack Start (RC) is full-stack React with server functions, SSR, and Cloudflare Workers support. Developers use it for edge rendering and Next.js migration, and to resolve hydration, auth, and data-pattern errors.
- TanStack Start (RC)
- Server functions + SSR
- Cloudflare Workers edge
- Next.js migration
Tanstack Start by the numbers
- Data as of Jul 28, 2026 (Skillselion catalog sync)
/plugin marketplace add secondsky/claude-skills/plugin install tanstack-start@claude-skillsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| repo stars | ★ 196 |
|---|---|
| Last updated | July 25, 2026 |
| Repository | secondsky/claude-skills ↗ |
What it does
Build full-stack React with TanStack Start (RC) — server functions, SSR, and Cloudflare Workers edge rendering.
README.md
TanStack Start (React) Skill — RC Ready
Full-stack React framework built on TanStack Router with server functions, selective SSR, prerendering, and first-class Cloudflare Workers support. Use this skill for migrations from Next.js, greenfield Start apps, or when you need type-safe server functions plus flexible rendering modes.
Auto-Trigger Keywords
- "TanStack Start", "Start RC", "React full-stack", "file-based routing"
- "selective SSR", "SPA mode", "static prerender", "server functions"
- "Cloudflare Workers", "Start on Workers", "edge SSR", "router + server"
Current Status (2025-12-09)
- Latest RC: v1.139.12 (2025-11-29)
- GA: not announced yet; safe for pilots/POCs with monitoring.
- Track: TanStack Router releases + Start guides for breaking changes.
What You Get
- References:
references/quickstart-and-layout.md— CLI, project map, entrypointsreferences/rendering-modes.md— SSR/data-only/CSR, SPA mode, prerender, hydration playbookreferences/server-functions-and-middleware.md— server functions, routes, middleware, static functionsreferences/cloudflare-hosting-and-env.md— Workers setup, bindings, env vars, Tailwind v4references/execution-and-auth.md— execution model, environment functions, auth/data/observabilityreferences/routing-and-data-loading.md— file/code routes, params/search typing, loaders/actions, not-foundreferences/navigation-and-preloading.md— link options, preloading, route masking, blockers, scroll restorationreferences/devtools-and-llm-support.md— router devtools, ESLint rules, LLM-oriented metadata
- Script:
scripts/bootstrap-cloudflare-start.sh <app-name>scaffolds a Start + Workers project and generates binding types.
Quick Start (Cloudflare)
./scripts/bootstrap-cloudflare-start.sh my-start-app
cd my-start-app
npm run dev
Core Patterns (updated)
// app/routes/index.tsx
import { createFileRoute, redirect } from '@tanstack/react-router'
import { getGreeting } from '@/server/greeting'
export const Route = createFileRoute('/')({
ssr: 'data-only', // stream data, render on client
loader: async () => {
const greeting = await getGreeting()
if (!greeting) throw redirect({ to: '/login' })
return { greeting }
},
component: () => {
const { greeting } = Route.useLoaderData()
return <h1 className="text-2xl font-semibold">{greeting}</h1>
},
})
// app/server/greeting.ts
import { createServerFn } from '@tanstack/react-start'
export const getGreeting = createServerFn({ method: 'GET' }).handler(async () => {
return `Welcome back at ${new Date().toISOString()}`
})
- Add
validateSearchon routes to keep search params typed. - Use
<Link preload="intent">for hover/focus preloading; callrouter.preloadRoutefor critical nav. - Enable
<RouterDevtools />during dev and@tanstack/eslint-plugin-routerfor property-order safety.
Migrate from Next.js (fast path)
- Keep file-based routes; move pages into
app/routes/and convert hooks toRoute.useLoaderData(). - Replace
getServerSidePropswith route loaders; replace API routes with server routes or server functions. - Toggle SSR per route (
ssr: true | false | 'data-only') to match previous rendering behavior. - Use
@cloudflare/vite-plugin+ Wrangler instead ofnext.config.jswhen targeting Workers.
Troubleshooting Cheats
- Hydration mismatch: move non-deterministic values to loaders or use
ssr: 'data-only'. - 404 on API routes: ensure
server.handlersare defined and file path matches route path. - Cloudflare env undefined: confirm
cloudflare({ viteEnvironment: { name: 'ssr' } })is first plugin and bindings are declared inwrangler.jsonc. - Streaming stalls: avoid mixing
Response.jsonand streaming in the same handler; preferreturn toStreamResponse(...)from adapters.
Verify Before Shipping
- Run
npm run build && npm run previewlocally; thennpm run deployagainst a staging Worker. - Check
ONE_PAGE_CHECKLIST.mdand keepwrangler typesregenerated after binding changes.