Short version: T3 Stack is free and excellent for greenfield projects, learning, and teams that want tRPC's end-to-end type safety. Already is better for commercial SaaS — it ships 16 production modules that T3 explicitly leaves out, so you skip the 6-week infrastructure build and start on your product from day one. The $199 pays for itself before you finish wiring Stripe.

Feature matrix

Feature T3 Stack Already
Framework & Language
Next.js 15 App Router
TypeScript (strict)
Tailwind CSS
shadcn/ui components
tRPC end-to-end type safety
Drizzle ORM~choice
Prisma ORM~choice
Authentication
Auth configuration (Auth.js / Supabase)
Pre-built auth UI (sign-in / sign-up screens)
Email + password~config
Google / GitHub OAuth~config
Magic link (passwordless)
TOTP 2FA (authenticator app)
Passkeys (WebAuthn)
Email enumeration protection
Auth event audit log
Billing & Payments
Stripe integration
Idempotent webhook handler
Dead-letter queue for failed webhooks
Plan-based feature gating
Customer billing portal
Trial + grace period
Billing notifications / dunning
Multi-tenancy & Orgs
Organisation / workspace model
Role-based access control (RBAC)
Member invitations
Row-level security (Postgres RLS)
Query-layer tenant scoping
Admin dashboard with impersonation
Messaging
Transactional email (Resend + React Email)
In-app notifications (Supabase Realtime)
Background Work
Cron-based background jobs
Postgres-backed job queue
API key management (hashed at rest)
Security & Hardening
CSP nonces
Rate limiting
Bot / scraper detection
Suspicious activity detection
GDPR export + deletion endpoints
AI & Developer Experience
Multi-provider AI (Anthropic / OpenAI / Google)
AI credits ledger
Feature flags (PostHog)
AI-native context (CLAUDE.md / Cursor rules)
Storybook component library
i18n (next-intl, 3 locales)
Rewardful affiliate integration
Error monitoring (Sentry)
Cost
PriceFree$199 / $399 one-time
Open source

✓ Included · — Not included · Config-only means you write the config but build the UI yourself.

Auth

T3 Stack

Wires Auth.js v5 (the stable rename of NextAuth.js) with your database adapter. No sign-in page, no sign-up flow — you design and build the screens. Many teams swap this out for Clerk to get pre-built UI, accepting per-user pricing. TOTP and passkeys require third-party libraries or significant custom work.

Already complete

Ships Supabase Auth with pre-built screens for every flow: email + password, magic link, OAuth (Google, GitHub), TOTP, and passkeys. Auth event log tracks every login by device and IP. Email enumeration protection and rate limiting on auth endpoints are on by default.

Billing

T3 Stack

Ships nothing. The unofficial estimate is 3–5 days to wire Stripe well — and that's if you've done it before. Common problems: non-idempotent webhook handlers (duplicate orders on retry), no dead-letter queue (silent dropped events), no customer portal link. Most developers have done this 5 times and still get it wrong.

Already complete

Full Stripe integration with idempotent webhook handling and a dead-letter queue for failed events. Plan-based feature gating, customer portal, trial periods with grace periods, and billing email notifications — all wired. Run pnpm setup:stripe and it's live.

Multi-tenancy

T3 Stack

Ships nothing. If you're building B2B SaaS with workspaces or organisations, you're looking at a multi-sprint effort: data model design, Postgres RLS policies, query-layer scoping to prevent cross-tenant data leaks, invitation flows, RBAC — before you've written a single line of product code.

Already complete

Full multi-tenant org model with Postgres RLS and query-layer scoping. Member invitations with role assignment, RBAC across all routes, and an admin dashboard with user impersonation. Tested for cross-tenant data isolation. Standard B2B SaaS infrastructure, shipped.

ORM and data layer

T3 Stack

You choose Prisma or Drizzle at scaffold time. Prisma was the default and remains popular, but Drizzle is increasingly preferred for serverless — smaller bundle, better Edge Runtime support, faster cold starts on Vercel. Drizzle is now a first-class option in create-t3-app.

Already Drizzle

Ships Drizzle ORM with relational queries, Supabase Postgres, and connection pooling via Supabase pooler. Type-safe relational queries out of the box. Migration tooling, seed scripts, and a full schema for all 16 modules — ready to extend, not to build from scratch.

tRPC — the one thing T3 has that Already doesn't

T3's signature feature is tRPC: fully type-safe API procedures with end-to-end inference between your server and client. If you've used it, you know it's excellent. Already doesn't include tRPC — it uses Next.js Server Actions and Route Handlers directly.

For most commercial SaaS, the difference is minor. Server Actions give you the same type safety for mutations without a separate RPC layer, and route handlers cover external integrations. If tRPC is a firm requirement, T3 is the right call. If you need billing or multi-tenancy before your MVP, Already is.

Who should use what

Use T3 Stack when

  • You're learning TypeScript patterns or want to understand the stack
  • tRPC's end-to-end type safety is a hard requirement
  • Budget is $0 and timeline is flexible
  • You need Prisma specifically
  • It's a side project with no billing or org model
  • You want maximum control over every layer

Use Already when

  • You're building commercial SaaS and need billing from day one
  • Your product is B2B with workspaces or organisations
  • You've built auth + billing before and want to skip it
  • You're using AI coding assistants and want AI-native DX
  • You want 16 modules tested and wired — not assembled
  • Time to first feature matters more than architectural purity

The honest comparison

T3 Stack is one of the best scaffolds in the Next.js ecosystem. The tRPC integration is genuinely superior to most alternatives for type-safe APIs, the community is large, and the codebase is clean. If you need tRPC or prefer to build every layer yourself, T3 is the right choice.

Already is not a better version of T3. It's a different product for a different phase: you know what needs to be built for commercial SaaS, you've done it before, and you want it done so you can build your product instead. The $199 Solo licence pays for itself before you finish the Stripe webhook handler.