Why I rewrote our dashboard in TanStack Start
Trade-offs, surprises, and the migration playbook from Next.js to TanStack Start at production scale.
We had a Next.js dashboard that did its job — 14k weekly actives, fine performance, fine DX. So why move? Two reasons: type-safe routing and server functions that feel native to React, not bolted on.
The migration took three weeks. The hardest part wasn't TanStack — it was untangling implicit conventions we'd built around app router file colocation. Once we mapped routes 1:1 and moved data fetching into createServerFn handlers, the codebase shrank by 22%.
What surprised me: SSR streaming worked out of the box on Cloudflare Workers, and our P75 TTFB dropped from 320ms to 140ms. The biggest watch-outs are around middleware ordering and auth attachment for protected serverFns.