Theo - t3․gg·14wI moved off of Next.js
A detailed account of migrating T3 Chat from Next.js to TanStack Start, driven by technical requirements rather than framework dissatisfaction. The original Next.js setup involved hacking React Router into Next.js for a client-first experience, which worked but wasn't sustainable. After exploring multiple alternatives (Remix, Vite+Hono, Cloudflare Workers), the team chose TanStack Start for better client-side routing, frontend-backend synchronization, and team ownership. The migration required 14,000 lines added and 10,000 removed, plus patching TanStack Start itself and moving API routes to Nitro to handle scaling issues. The move wasn't about Next.js being bad, but about finding a framework that better matched their specific needs for a fast, client-focused chat application while keeping frontend and backend deployments synchronized.