First Project
Scaffold, inspect, install, and run a Better Fullstack project.
Open documentation actions
This flow writes a project to disk, explains what the CLI generated, and shows how to preview output when you want an extra safety check.
1. Scaffold interactively
Run the wizard when you want prompts:
npm create better-fullstack@latest my-appThe default stack is TypeScript, TanStack Router, Hono, Bun runtime, SQLite, Drizzle, Better Auth, tRPC, Tailwind CSS, shadcn/ui, Vitest, Turborepo, Git, install enabled, stable versions, and CLAUDE.md.
Optional: Preview before writing files
Use --dry-run to generate the file tree in memory without writing files:
npm create better-fullstack@latest my-app -- --dry-run2. Scaffold from a script
Use explicit flags when you want deterministic output. This example avoids dependency installation and Git initialization so you can inspect the files first:
npm create better-fullstack@latest my-app -- \
--ecosystem typescript \
--frontend next \
--backend self \
--runtime none \
--database postgres \
--orm drizzle \
--auth better-auth \
--api trpc \
--db-setup none \
--ai none \
--payments none \
--examples none \
--addons none \
--ai-docs none \
--version-channel stable \
--package-manager npm \
--no-install \
--no-git3. Install dependencies
If you selected --no-install, install manually inside the project:
cd my-appnpm installNon-TypeScript ecosystems use their generated toolchain commands instead:
cargo build
uv sync
go mod tidy
./mvnw test
./gradlew test4. Inspect generated files
Generated projects include:
bts.jsoncwith the selected stack and schema reference.- Framework, package, and config files for the selected ecosystem.
- A reproducible command printed by the CLI.
- Optional AI docs such as
CLAUDE.md,Agents.md, or.cursorrules. - README content and commands where the selected templates provide them.
5. Add features later
Inside a generated project, use add for supported addons:
npm create better-fullstack@latest add -- --addons mcp skillsThe add command reads bts.jsonc and skips addons already present.