Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/amanvarshney01/create-better-t-stack/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The CLI validates option combinations to ensure generated projects work correctly. This page documents all compatibility rules, restrictions, and valid combinations.
Use --yolo to bypass these validations, but this may create non-functional configurations.

Database & ORM Compatibility

Compatibility Matrix

DatabaseCompatible ORMsNotes
sqlitedrizzle, prismaLightweight, file-based database
postgresdrizzle, prismaAdvanced relational database
mysqldrizzle, prismaTraditional relational database
mongodbmongoose, prismaDocument database, requires specific ORMs
nonenoneNo database setup

Rules

Rule: If you select a database, you must also select an ORM.
# ❌ Invalid - Database without ORM
create-better-t-stack --database postgres

# ✅ Valid
create-better-t-stack --database postgres --orm drizzle
Error message:
Database requires an ORM for code generation
Rule: Drizzle ORM does not support MongoDB.
# ❌ Invalid
create-better-t-stack --database mongodb --orm drizzle

# ✅ Valid - Use Mongoose or Prisma
create-better-t-stack --database mongodb --orm mongoose
create-better-t-stack --database mongodb --orm prisma
Error message:
Drizzle ORM does not support MongoDB. Use Mongoose or Prisma instead.
Rule: Mongoose is a MongoDB-only ODM.
# ❌ Invalid
create-better-t-stack --database postgres --orm mongoose

# ✅ Valid
create-better-t-stack --database mongodb --orm mongoose
Error message:
Mongoose ORM requires MongoDB database

Backend & Runtime Compatibility

Cloudflare Workers Restrictions

Rule: Cloudflare Workers runtime only works with Hono backend.
# ❌ Invalid
create-better-t-stack --runtime workers --backend express

# ✅ Valid
create-better-t-stack --runtime workers --backend hono
Error message:
Cloudflare Workers runtime is only supported with Hono backend
Rule: MongoDB is not compatible with Cloudflare Workers.
# ❌ Invalid
create-better-t-stack --runtime workers --database mongodb

# ✅ Valid - Use SQLite with D1
create-better-t-stack --runtime workers --backend hono --database sqlite --orm drizzle --db-setup d1
Error message:
Cloudflare Workers runtime is not compatible with MongoDB database
Rule: Serverless Workers cannot use Docker.
# ❌ Invalid
create-better-t-stack --runtime workers --db-setup docker

# ✅ Valid
create-better-t-stack --runtime workers --backend hono --database sqlite --db-setup d1
Error message:
Cloudflare Workers runtime is not compatible with Docker setup

Backend Presets

Rule: Convex backend automatically sets:
  • --runtime none
  • --database none
  • --orm none
  • --api none
  • --db-setup none
  • --server-deploy none
Convex provides its own database, API, and hosting.
# ✅ Valid - Convex with Clerk
create-better-t-stack --backend convex --auth clerk --frontend next

# ✅ Valid - Convex with Better-Auth
create-better-t-stack --backend convex --auth better-auth --frontend tanstack-router
Frontend restrictions with Convex:
  • Solid and Astro frontends are not compatible
  • With Clerk auth: Nuxt, Svelte, Solid, and Astro are not compatible
Rule: --backend none automatically sets:
  • --auth none
  • --database none
  • --orm none
  • --api none
  • --runtime none
  • --db-setup none
  • --examples none
# ✅ Valid - Frontend-only app
create-better-t-stack --backend none --frontend tanstack-router
Rule: --backend self only works with fullstack frontends:
  • next - Next.js
  • tanstack-start - TanStack Start
  • nuxt - Nuxt
  • astro - Astro
Uses the frontend’s built-in API routes (e.g., Next.js API routes, Nuxt server routes).
# ✅ Valid
create-better-t-stack --backend self --frontend next

# ❌ Invalid
create-better-t-stack --backend self --frontend tanstack-router
Error message:
Backend 'self' (fullstack) currently only supports Next.js, TanStack Start, Nuxt, and Astro frontends

Frontend & API Compatibility

API Framework Support

Rule: tRPC is only compatible with React-based frontends and native frameworks.
FrontendtRPC SupportoRPC Support
tanstack-router
react-router
tanstack-start
next
nuxt
svelte
solid
astro
Native frameworks
# ❌ Invalid
create-better-t-stack --frontend nuxt --api trpc

# ✅ Valid
create-better-t-stack --frontend nuxt --api orpc
Error message:
tRPC API is not supported with 'nuxt' frontend. Please use --api orpc or --api none

Frontend Restrictions

Rule: You can only select one web framework.
# ❌ Invalid
create-better-t-stack --frontend next tanstack-router

# ✅ Valid - One web framework
create-better-t-stack --frontend next

# ✅ Valid - One web + one native
create-better-t-stack --frontend next native-uniwind
Error message:
Cannot select multiple web frameworks. Choose only one of: tanstack-router, tanstack-start, react-router, next, nuxt, svelte, solid
Rule: You can only select one native framework.
# ❌ Invalid
create-better-t-stack --frontend native-bare native-uniwind

# ✅ Valid
create-better-t-stack --frontend native-uniwind

# ✅ Valid - One web + one native
create-better-t-stack --frontend tanstack-router native-uniwind
Error message:
Cannot select multiple native frameworks. Choose only one of: native-bare, native-uniwind, native-unistyles

Database Setup Compatibility

Provider Requirements

Setup ProviderRequired DatabaseAdditional Requirements
tursosqliteWorks with Drizzle and Prisma
d1sqliteRequires --runtime workers
neonpostgres-
supabasepostgres-
prisma-postgrespostgres-
planetscalemysql, postgres-
mongodb-atlasmongodb-
dockerpostgres, mysql, mongodbCannot be used with sqlite or Workers
Rule: D1 requires:
  • --database sqlite
  • --runtime workers
  • --backend hono
# ✅ Valid
create-better-t-stack \
  --runtime workers \
  --backend hono \
  --database sqlite \
  --orm drizzle \
  --db-setup d1
Rule: Docker cannot be used with:
  • SQLite (file-based database)
  • Cloudflare Workers (serverless)
# ❌ Invalid
create-better-t-stack --database sqlite --db-setup docker

# ✅ Valid
create-better-t-stack --database postgres --db-setup docker

Authentication & Payments

Rule: Better-Auth requires a backend framework (cannot be none).
# ❌ Invalid
create-better-t-stack --backend none --auth better-auth

# ✅ Valid
create-better-t-stack --backend hono --auth better-auth
Better-Auth can work with or without a database:
  • With database: Requires an ORM
  • Without database: Works with Convex or custom configuration
Rule: Clerk authentication requires:
  • --backend convex
  • Compatible frontends (not Nuxt, Svelte, Solid, or Astro)
# ✅ Valid - Clerk with Convex
create-better-t-stack --auth clerk --backend convex --frontend next

# ❌ Invalid - Clerk without Convex
create-better-t-stack --auth clerk --backend hono

# ❌ Invalid - Clerk with incompatible frontend
create-better-t-stack --auth clerk --backend convex --frontend nuxt
Compatible frontends with Clerk:
  • React frameworks: TanStack Router, React Router, TanStack Start, Next.js
  • Native frameworks: All native frameworks
Rule: Polar payments requires:
  • --auth better-auth
  • A web frontend (or no frontend selected)
# ✅ Valid
create-better-t-stack --auth better-auth --payments polar --frontend next

# ❌ Invalid - Requires Better-Auth
create-better-t-stack --auth clerk --payments polar

# ❌ Invalid - Native-only not supported
create-better-t-stack --auth better-auth --payments polar --frontend native-uniwind

Addon Compatibility

Rule: PWA requires a web frontend.Compatible frontends:
  • tanstack-router
  • react-router
  • next
  • solid
# ✅ Valid
create-better-t-stack --addons pwa --frontend next

# ❌ Invalid - Native-only
create-better-t-stack --addons pwa --frontend native-uniwind
Rule: Tauri requires a web frontend and cannot be combined with native frameworks.Compatible frontends:
  • tanstack-router
  • react-router
  • next
  • nuxt
  • svelte
  • solid
# ✅ Valid
create-better-t-stack --addons tauri --frontend next

# ❌ Invalid - Cannot combine with native
create-better-t-stack --addons tauri --frontend next native-uniwind

Examples Compatibility

Rule: Todo example requires:
  • A database (or Convex backend)
  • An API layer (or Convex backend)
# ✅ Valid - With database and API
create-better-t-stack \
  --examples todo \
  --database postgres \
  --orm drizzle \
  --api trpc

# ✅ Valid - With Convex
create-better-t-stack --examples todo --backend convex

# ❌ Invalid - No database
create-better-t-stack --examples todo --database none

# ❌ Invalid - No API
create-better-t-stack --examples todo --api none
Rule: AI example is not compatible with:
  • solid frontend
  • astro frontend
  • With Convex backend: also incompatible with nuxt and svelte
# ✅ Valid
create-better-t-stack --examples ai --frontend next

# ❌ Invalid
create-better-t-stack --examples ai --frontend solid

# ❌ Invalid - Convex + Nuxt
create-better-t-stack --examples ai --backend convex --frontend nuxt

Deployment Compatibility

Rule: Web deployment requires a web frontend.
# ✅ Valid
create-better-t-stack --web-deploy cloudflare --frontend next

# ❌ Invalid - Native-only
create-better-t-stack --web-deploy cloudflare --frontend native-uniwind
Rule: Server deployment requires a backend (not none or convex).
# ✅ Valid
create-better-t-stack --server-deploy cloudflare --backend hono

# ❌ Invalid
create-better-t-stack --server-deploy cloudflare --backend none

Validation Strategy

The CLI validates in this order:
  1. Schema validation - Valid enum values, correct types
  2. Basic rules - Database requires ORM, etc.
  3. Backend/Runtime - Workers + Hono, Self + fullstack frontend
  4. Frontend/API - tRPC compatibility
  5. Auth/Payments - Better-Auth/Clerk requirements
  6. Addons - Frontend compatibility
  7. Examples - Stack compatibility

Common Error Messages

 Drizzle ORM does not support MongoDB

# Fix:
create-better-t-stack --database mongodb --orm mongoose

Valid Configuration Examples

create-better-t-stack \
  --frontend tanstack-router \
  --backend hono \
  --runtime bun \
  --database postgres \
  --orm drizzle \
  --api trpc \
  --auth better-auth \
  --payments polar \
  --addons pwa biome \
  --examples todo ai \
  --db-setup neon
For the complete source code of compatibility rules, see:
  • ~/workspace/source/apps/cli/src/utils/compatibility-rules.ts
  • ~/workspace/source/apps/cli/src/validation.ts

Build docs developers (and LLMs) love