Quick Start
Create your first Better-T-Stack project in minutes
Philosophy
- Roll your own stack: pick only what you need, nothing extra.
- Minimal templates: bare-bones scaffolds with zero bloat.
- Latest dependencies: always current and stable by default.
- Free and open source: forever.
Get Started
CLI (prompts)
bun create better-t-stack@latest
pnpm create better-t-stack@latest
npx create-better-t-stack@latest
Follow the interactive prompts to choose your frontend, backend, database, ORM, API layer, and addons.
Skip prompts and use the default stack:
bun create better-t-stack@latest --yes
pnpm create better-t-stack@latest --yes
npx create-better-t-stack@latest --yes
Stack Builder (UI)
- Visit /new to pick your stack and copy the generated command
- Or open it via:
bun create better-t-stack@latest builder
pnpm create better-t-stack@latest builder
npx create-better-t-stack@latest builder
Common Setups
Default Stack
bun create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
pnpm create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
npx create-better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
Convex + React + Clerk
bun create better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
pnpm create better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
npx create-better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
API Only
bun create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
pnpm create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
npx create-better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
Mobile App (Expo)
bun create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
pnpm create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
npx create-better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
Empty Monorepo
bun create better-t-stack@latest my-workspace \
--frontend none \
--backend none
pnpm create better-t-stack@latest my-workspace \
--frontend none \
--backend none
npx create-better-t-stack@latest my-workspace \
--frontend none \
--backend none
Flags Cheat Sheet
See the full list in the CLI Reference. Key flags:
--frontend
: tanstack-router, react-router, tanstack-start, next, nuxt, svelte, solid, native-nativewind, native-unistyles, none--backend
: hono, express, fastify, elysia, next, convex, none--runtime
: bun, node, workers, none--database
: sqlite, postgres, mysql, mongodb, none--orm
: drizzle, prisma, mongoose, none--api
: trpc, orpc, none--auth
: better-auth, clerk, none--addons
: turborepo, pwa, tauri, biome, husky, starlight, fumadocs, ultracite, oxlint, ruler, none--examples
: todo, ai, none
Next Steps
CLI (per-command)
Flags, usage, and examples for each command
Project Structure
See how web/server/native and Convex layouts are generated
Compatibility
Valid combinations for backend, runtime, database, ORM, API
bts.jsonc
Required for the add command; safe to delete if you don’t use add
Contributing
Dev setup and contribution flow