← Back to all tweets

Tweet by @theo

View original on X

Seeing a lot of weird speculation on this one (especially on Reddit), let’s clear some things up: 1. I was *barely* using Next. Since T3 Chat is a very dynamic app, I did some nasty hacks to force React Router into Next. I’ve shared this many times, and always say it is an awful pattern and should be avoided. Source of many bugs for us. Why did I use Next at all? Easiest way to deploy a complex React frontend and TS backend together. I still believe this to be true. 2. We are *still* using Vercel. These changes do not reduce our “vendor lock in” at all. Deploying a large Tanstack Start app was…rough. We eventually figured it out. We got a lot of help from Vercel features like rollouts as we debugged. We got a lot of help from Vercel employees like @_pi0_ and @tomlienard as well. I can’t imagine deploying T3 Chat anywhere else. Fluid Compute is a great primitive for what we are building. 3. I didn’t choose TanStack Start, my team did. Back in like April, I started evaluating alternative stacks for T3 Chat. I rebuilt it in Vite+Hono (on CloudFlare). I rebuilt it with Remix. I started to rebuild with TanStack and Tanner himself helped. I concluded it wasn’t worth the effort yet. When @jullerino moved here and went full time, he decided TanStack was the solution best aligned with our long term plans. He did the migration without much oversight from me. Lots of decisions were made that I don’t necessarily agree with (mostly around SSR) - but it’s not my place to decide anymore. I hired a world class team. It’s my job to trust them. 4. We moved off Next because my weird stack made debugging really hard. It really comes down to this. My bullshit had too many layers and we never knew what was failing. Julius’s backend rewrite in Effect was much heavier and helped a lot with observability. We fixed like 60% of bugs, but the other 40% were so deeply baked it was nearly impossible to figure out. Tanstack port fixed half the remaining bugs, and made the other half much easier to debug and fix. I’m not sharing all of this so people copy us. I’m sharing it because I think y’all can learn from our technical decision making process. I’m confident in our choices and my team. We’re working hard to make T3 Chat the best AI chat. Next helped us get here in the first place. This move was inevitable. We’ve been planning it since April. Now that our tech overhauls are done (DB, auth and Effect migrations) - we can really lock in on features. 🫡

Theo - t3.gg
Theo - t3.gg
@theo

As of 2 minutes ago, T3 Chat is no longer on Next.js 🫡

1.5K
Reply