Skip to content

Config-Delta Reference

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

The Cloudflare and Node/Docker chapters are full walkthroughs because they’re the two shapes worth understanding deeply — an edge Vite-plugin host, and a plain long-running Nitro server. Everything else is a small delta from one of those two. This page is that delta, not another full tour.

Host Shape Plugin config Notes
Vercel Nitro preset nitro({ preset: 'vercel' }) in vite.config.ts’s plugins array Auto-detected — deploying via Vercel’s Git integration or CLI applies the vercel preset without you setting it explicitly. Migrating an existing Cloudflare app? Vercel publishes a dedicated migration guide: drop @cloudflare/vite-plugin and wrangler.jsonc, add nitro/vite, and replace any import { env } from 'cloudflare:workers' reads with process.env (see caching and env vars for the per-request-read discipline that still applies either way).
Netlify Host-specific Vite plugin plugins: [tanstackStart(), netlify(), viteReact()] using @netlify/vite-plugin-tanstack-start Same shape as Cloudflare — a dedicated plugin, no Nitro preset involved. Deploy via netlify deploy or Git-connected CI. Manual fallback: netlify.toml with command = "vite build" and publish = "dist/client".
Bun (self-hosted / Bun-native host) Nitro preset nitro({ preset: 'bun' }) Requires React 19+ (already the book’s baseline). Produces output you run with bun run .output/server/index.mjs — distinct from just running Node output under Bun (see the Node/Docker chapter for that alternative).
Railway Nitro preset (generic) nitro() — no preset needed Railway detects a Node-shaped build and runs it directly; Nitro’s default output is already a standalone Node server. Connect the repo, Railway handles build/deploy/preview environments automatically. This is functionally the Node/Docker shape with Railway managing the container instead of you.

For anything not in this table, start from whichever worked example matches the shape (host-specific plugin vs. Nitro) and adjust the preset — the deployment model overview’s decision tree is the thing to re-check, not this table.