What this is
create-t3-app generates this exact setup. The pitch: end-to-end TypeScript with no API layer between the client and server (tRPC infers the types). For teams that buy into ‘TypeScript everywhere’, this is the path of least resistance to a typesafe full-stack app.
When to pick this stack
- You’re a TypeScript shop and want type-safety from the database query through the React component prop.
- You want Next.js’s flexibility (routes, RSC, middleware) without picking every adjacent tool yourself.
- You’re already deploying on Vercel or willing to.
What we’d swap
- Prisma → Drizzle: Drizzle has won mindshare in 2025-2026 for its lighter runtime and SQL-y feel. Both work in T3.
- Clerk → NextAuth: NextAuth is the historical T3 default and free; Clerk is paid but ships hosted UI you don’t have to design.
- Vercel → Cloudflare Pages: cheaper at scale; needs a couple of compatibility flags for Next.js but works.
Common gotchas
- tRPC’s type inference is excellent but couples your client and server tightly; if you’re going to ship a public REST API later, plan for that boundary explicitly.
- Next.js App Router + Server Components is the modern default but has a learning curve; the T3 generator currently supports both Pages and App routers, pick App for new projects.