Skip to main content

Best T3 Stack Variations and Forks in 2026

·StarterPick Team
t3-stacknextjstypescriptboilerplate2026

The T3 Stack Ecosystem

Theo Browne's T3 Stack changed how JavaScript developers approach full-stack TypeScript apps. The core formula — Next.js + TypeScript + Tailwind + tRPC + Prisma + NextAuth — spawned an ecosystem of variations addressing different needs.

In 2026, T3 has evolved. Theo's own recommended stack has shifted toward Drizzle (replacing Prisma), Lucia v3 (replacing NextAuth), and server components (augmenting tRPC). The community has followed.

The Variations

create-t3-app — The Original

Price: Free | Creator: Theo Browne / T3 OSS

npm create t3-app@latest
# Choose: Next.js, TypeScript, Tailwind, tRPC, Prisma, NextAuth

Still the best starting point for new T3 apps. Modular — choose which components you want. Each combination is pre-configured and tested. 25k+ GitHub stars.

Best for: Developers new to T3 who want a guided setup.

T3 Turbo — Monorepo Edition

Price: Free | Creator: Julius Marminge

create-t3-app extended to a Turborepo monorepo. Shares API code between Next.js web app and Expo mobile app. Packages: @t3-turbo/api, @t3-turbo/auth, @t3-turbo/db.

apps/
├── nextjs/     # Web app (Next.js + tRPC client)
└── expo/       # Mobile app (Expo + tRPC client)
packages/
├── api/        # tRPC router (shared)
├── auth/       # NextAuth config (shared)
└── db/         # Prisma schema (shared)

Best for: Teams building both a web app and mobile app sharing business logic.

T3 + Drizzle (The 2026 Way)

Price: Free | Creator: Community

The T3 stack with Drizzle ORM replacing Prisma. Drizzle is now often preferred for its smaller bundle size, better edge runtime support, and SQL-like query API.

// Drizzle schema (type-safe, SQL-like)
export const users = pgTable('users', {
  id: varchar('id', { length: 255 }).notNull().primaryKey(),
  name: varchar('name', { length: 255 }),
  email: varchar('email', { length: 255 }).notNull(),
  createdAt: timestamp('created_at').defaultNow().notNull(),
});

// Drizzle query (vs Prisma's findMany)
const userList = await db.select().from(users).where(eq(users.email, email));

Best for: Edge deployments, smaller bundle requirements, SQL-fluent developers.

T3 + Lucia Auth

Price: Free | Creator: Community

NextAuth (now Auth.js) can be heavy and opinionated. Lucia v3 provides a lightweight auth library that gives you full control over session management:

import { Lucia } from 'lucia';
import { DrizzlePostgreSQLAdapter } from '@lucia-auth/adapter-drizzle';

export const lucia = new Lucia(adapter, {
  sessionCookie: { attributes: { secure: process.env.NODE_ENV === 'production' } },
  getUserAttributes: (attributes) => ({
    email: attributes.email,
    name: attributes.name,
  }),
});

Best for: Apps that need custom auth flows beyond what Auth.js provides out of the box.

create-t3-app + shadcn/ui

The most popular T3 customization. shadcn/ui components replace the default Tailwind classes with accessible, copy-paste components:

npx create-t3-app@latest --tailwind
cd my-app
npx shadcn@latest init
npx shadcn@latest add button card input dialog

Best for: Apps that need a polished UI without building a component library from scratch.

T3 Stack Configuration Matrix

Use CaseAuthORMUIExtra
Quick SaaSNextAuthPrismashadcn/ui
Edge SaaSLuciaDrizzleshadcn/uiCloudflare
Mobile + WebNextAuthPrismaTamaguiT3 Turbo
AI SaaSClerkDrizzleshadcn/uiVercel AI SDK
EnterpriseLuciaDrizzleshadcn/uiCustom auth

When to Use T3 vs Other Starters

T3 Stack is best when:

  • You're building a TypeScript-first full-stack app
  • Type safety from database to UI is a priority
  • tRPC's end-to-end type safety is valuable for your team
  • You want fine-grained control over each dependency

Consider ShipFast/Makerkit instead when:

  • You need billing/subscriptions pre-configured
  • Team management is a requirement
  • Email transactional flows need to work from day one

Compare T3 variations and other starters on StarterPick — find your ideal TypeScript stack.

Check out this boilerplate

View create-t3-app on StarterPick →

Comments