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
Prerequisites
- Node.js LTS - Download from nodejs.org
- Git (optional) - Download from git-scm.com - if you want to initialize a git repository
- Bun (optional) - Download from bun.com - if you want to use Bun as your package manager
CLI (prompts)
npx create-better-t-stack@latestpnpm create better-t-stack@latestbun create better-t-stack@latestFollow the interactive prompts to choose your frontend, backend, database, ORM, API layer, and addons.
Skip prompts and use the default stack:
npx create-better-t-stack@latest --yespnpm create better-t-stack@latest --yesbun create better-t-stack@latest --yesStack Builder (UI)
- Visit /new to pick your stack and copy the generated command
- Or open it via:
npx create-better-t-stack@latest builderpnpm create better-t-stack@latest builderbun create better-t-stack@latest builderCommon Setups
Default Stack
npx create-better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepopnpm create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepobun create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepoConvex + React + Clerk
npx create-better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpcpnpm create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpcbun create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpcMobile App (Expo)
npx create-better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-authpnpm create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-authbun create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-authEmpty Monorepo
npx create-better-t-stack@latest my-workspace \
--frontend none \
--backend nonepnpm create better-t-stack@latest my-workspace \
--frontend none \
--backend nonebun create better-t-stack@latest my-workspace \
--frontend none \
--backend noneFlags 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