Skip to main content

Create T3 Turbo Review 2026: Monorepo Starter with Expo

·StarterPick Team
t3-turbomonorepoexporeact-nativenextjstrpcreview2026

Building Web and Mobile from One Codebase

Building a SaaS that needs both a web app and a mobile app is expensive. You end up maintaining two separate codebases, two sets of API calls, two authentication implementations, and two data layers. Business logic written for the web has to be rewritten for mobile — and then kept in sync forever.

Create T3 Turbo solves this problem. It is a free, open-source monorepo starter that puts a Next.js web app and an Expo React Native app in the same repository, sharing an API layer powered by tRPC. Write a tRPC router once, call it from both Next.js server components and Expo screens — fully typed, no code duplication.

With 5,600+ GitHub stars and backing from the T3 ecosystem, create-t3-turbo is the go-to recommendation for developers building cross-platform TypeScript apps.

TL;DR

Create T3 Turbo is a free, MIT-licensed monorepo starter that shares a tRPC API between Next.js and Expo React Native. The 2025/2026 version uses the modern stack: Next.js 15, React 19, Expo SDK 54, Better Auth, Drizzle ORM, Supabase, and Tailwind CSS v4 with NativeWind v5. Best for teams building apps that need both web and mobile from the start. Not a SaaS boilerplate — there is no landing page, billing, or admin dashboard.

Key Takeaways

  • 5,600+ GitHub stars — the most starred open-source monorepo starter in the Next.js + Expo space.
  • Completely free, MIT licensed. No purchase, no license tiers, no restrictions.
  • Modernized stack in 2025. The repository was updated to use Better Auth (replacing NextAuth), Drizzle ORM (replacing Prisma), and tRPC v11.
  • Expo SDK 54 with React Native 0.81. NativeWind v5 brings Tailwind CSS v4 to the mobile side — same utility classes across web and mobile.
  • Two web frameworks available. Choose Next.js 15 or TanStack Start v1 as your web frontend.
  • Shared packages architecture. The packages/ directory contains api, auth, db, and ui — consumed by both the Next.js app and the Expo app.
  • Not a complete SaaS starter. No landing page, no billing integration, no admin dashboard, no blog.
  • Monorepo complexity is real. The learning curve is significant. If you only need a web app, create-t3-turbo adds overhead without benefit.

The 2025/2026 Stack

The repository underwent significant modernization in 2024-2025. The current stack reflects the best current practices for TypeScript full-stack development:

LayerChoice
Monorepo toolTurborepo
Web frameworkNext.js 15 or TanStack Start v1
Mobile frameworkExpo SDK 54 (React Native 0.81)
Navigation (mobile)Expo Router
API layertRPC v11
AuthBetter Auth
DatabaseSupabase (Postgres)
ORMDrizzle ORM
Styling (web)Tailwind CSS v4
Styling (mobile)NativeWind v5 (Tailwind CSS v4 for React Native)
UI componentsShadcn-ui foundation
LanguageTypeScript (end-to-end)
Package managerpnpm

What Changed from the Original T3 Stack

Create T3 Turbo evolved significantly from its origins:

  • Better Auth replaced NextAuth as the authentication solution, bringing improved session management and broader OAuth provider support
  • Drizzle ORM replaced Prisma for database access, offering better TypeScript inference and edge compatibility
  • tRPC v11 brings updated patterns for React 19 and server components
  • NativeWind v5 enables true Tailwind CSS v4 on React Native — the same utility classes work across platforms
  • TanStack Start is now an alternative to Next.js for teams that prefer the TanStack ecosystem

Repository Structure

The monorepo is organized into two top-level directories:

apps/
  expo/           — React Native app with Expo Router
  nextjs/         — Next.js 15 web app
  tanstack-start/ — Optional TanStack Start web app

packages/
  api/            — tRPC v11 router definitions
  auth/           — Better Auth configuration and helpers
  db/             — Drizzle schema, migrations, and query utils
  ui/             — Shared UI components (Shadcn-based)

tooling/
  eslint/         — Shared ESLint config
  prettier/       — Shared Prettier config
  tailwind/       — Shared Tailwind config
  typescript/     — Shared TypeScript config

The Shared Package Strategy

The real value of this structure is in packages/. When you define a tRPC router in packages/api, it becomes available to both apps/nextjs and apps/expo — with full TypeScript inference.

Both the Next.js app and the Expo app import from @acme/api — the same router, the same types, the same inference. No duplication.

The packages/ui package shares React components between web and mobile. On web, they render as standard HTML elements. On mobile, they use React Native primitives. NativeWind v5 makes this possible — Tailwind classes that work on both platforms.

The Expo SDK 54 + NativeWind v5 Story

One of the biggest improvements in the 2025 version is the NativeWind v5 integration. Previous versions used NativeWind v2, which had limited compatibility with Tailwind CSS v4 features.

NativeWind v5 brings:

  • Tailwind CSS v4 as the underlying engine
  • Full support for CSS custom properties
  • Improved TypeScript support
  • Dark mode utilities that work on mobile
  • Most standard Tailwind classes working on React Native primitives

This means you can write a component that uses the same Tailwind classes on web and mobile. On web, View renders as a div. On mobile, it renders as a View component. The Tailwind classes apply correctly on both platforms.

Additionally, Expo SDK 52 introduced automatic monorepo detection, which eliminated previous Metro bundler configuration headaches. Starting from Expo SDK 55, automatic module resolution for monorepos is enabled by default — reducing setup friction considerably.

Setting Up Create T3 Turbo

Getting started requires three steps:

1. Clone and install:

git clone https://github.com/t3-oss/create-t3-turbo
cd create-t3-turbo
pnpm install

2. Configure the database: Set up a Supabase project, add the connection string to .env, and run the Drizzle migrations with pnpm db:push.

3. Configure Better Auth: Generate the auth schema and configure OAuth providers.

The development server for web and mobile can be started simultaneously — Turborepo handles parallel task execution and caching across both apps.

Who Create T3 Turbo Is For

Use create-t3-turbo if:

  • You are building a product that needs both web and mobile from launch — the monorepo overhead is justified when you actually have both apps
  • You want code sharing between platforms — same auth, same API, same business logic, same UI components where possible
  • You are comfortable with Turborepo and monorepo workflows — or willing to learn them
  • Your team values end-to-end TypeScript safety from the database schema to the UI
  • You want a free, MIT-licensed foundation without commercial license costs
  • You are building with the modern T3-ecosystem stack (Drizzle, Better Auth, tRPC v11)

Look elsewhere if:

  • You only need a web app — the monorepo adds significant complexity without benefit
  • You want a complete SaaS starter with landing pages, billing flows, admin dashboards, and a blog
  • You need multi-tenancy or team management out of the box
  • You are a solo founder looking to validate an idea in days — use a template boilerplate instead
  • You want enterprise features like RBAC, advanced billing models, or a plugin system

Head-to-Head: Create T3 Turbo vs Alternatives

FeatureCreate T3 TurboT3 StackShipFast
PriceFreeFree$199
Mobile supportYes (Expo)NoNo
MonorepoYes (Turborepo)OptionalNo
tRPC sharingYes (web + mobile)Web onlyNo
AuthBetter AuthAuth.jsNextAuth
DatabaseDrizzle + SupabasePrismaMongoDB/Supabase
Code sharingHigh (packages/)N/AN/A
Setup complexityHighMediumLow
SaaS featuresNoneNoneFull
GitHub stars5,600+24,000+N/A
MaintenanceActiveActiveActive

What It Does Not Include

Being explicit about what create-t3-turbo is not:

  • No landing page or marketing site
  • No Stripe or payment integration
  • No admin dashboard
  • No blog system
  • No email templates or transactional email setup
  • No multi-tenancy
  • No RBAC
  • No deployment configuration (you handle Vercel and EAS separately)

For a product targeting individual consumers with a simple SaaS model, this means you are building those layers on top. For a team that wants maximum control over every aspect of their product, this is a feature — not a bug.

The Case For Monorepo Architecture

Monorepos are powerful. Turborepo's incremental builds, shared configuration, and consistent tooling across packages are genuine productivity wins.

They are also complex. A developer new to the project needs to understand how Turborepo's caching and task graph work, the packages/ dependency graph and how changes propagate, how tRPC is configured for both React Server Components and Expo, and how Better Auth sessions work across web and mobile.

For a solo developer, this overhead is significant. For a team of two or more, the shared context and code reuse can outweigh the complexity cost.

Recent Updates and Activity

The repository is actively maintained by the T3 community. Key updates from 2024-2025:

  • Migrated auth from NextAuth to Better Auth
  • Migrated ORM from Prisma to Drizzle
  • Updated to tRPC v11
  • Updated to Expo SDK 54 with React Native 0.81 and React 19
  • Added NativeWind v5 for Tailwind CSS v4 on mobile
  • Added TanStack Start as an alternative web frontend

The Verdict

Create T3 Turbo earns its 5,600+ stars. The code sharing architecture is clean, the 2025 stack is genuinely modern, and the tRPC integration between Next.js and Expo is impressive once you understand it.

The important caveat: this is not a SaaS boilerplate. It is a project structure — a starting point for custom development. You will spend more time building the features that template boilerplates include out of the box.

If you are building a product that needs web and mobile from day one, and you are comfortable with monorepo workflows, create-t3-turbo is the best free foundation available. The alternative — setting up a Turborepo monorepo with tRPC, Better Auth, Drizzle, and NativeWind yourself — would take a week or more.

If you only need a web app, skip it. The complexity is not worth it when Create T3 App or a template boilerplate would serve you better.

Methodology

This review is based on publicly available information from the create-t3-turbo GitHub repository (t3-oss/create-t3-turbo), official documentation, and community discussions as of March 2026. GitHub stars and project activity reflect conditions at time of writing.


Looking for more boilerplate comparisons across web, mobile, and monorepo starters? StarterPick tracks the ecosystem so you can find the right foundation without the research overhead.

Comments