Files
create-better-t-stack/apps/web/content/docs/index.mdx
2025-08-29 00:21:08 +05:30

283 lines
6.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Quick Start
description: 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)
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest
```
</Tab>
</Tabs>
Follow the interactive prompts to choose your frontend, backend, database, ORM, API layer, and addons.
Skip prompts and use the default stack:
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest --yes
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest --yes
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest --yes
```
</Tab>
</Tabs>
### Stack Builder (UI)
- Visit [/new](/new) to pick your stack and copy the generated command
- Or open it via:
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest builder
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest builder
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest builder
```
</Tab>
</Tabs>
## Common Setups
### Default Stack
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest my-webapp \
--frontend tanstack-router \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth \
--addons turborepo
```
</Tab>
</Tabs>
### Convex + React + Clerk
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest my-convex-app \
--frontend tanstack-router \
--backend convex \
--auth clerk
```
</Tab>
</Tabs>
### API Only
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest my-api \
--frontend none \
--backend fastify \
--runtime node \
--database postgres \
--orm prisma \
--api trpc
```
</Tab>
</Tabs>
### Mobile App (Expo)
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest my-native \
--frontend native-nativewind \
--backend hono \
--database sqlite \
--orm drizzle \
--auth better-auth
```
</Tab>
</Tabs>
### Empty Monorepo
<Tabs items={['bun', 'pnpm', 'npm']}>
<Tab value="bun">
```bash
bun create better-t-stack@latest my-workspace \
--frontend none \
--backend none
```
</Tab>
<Tab value="pnpm">
```bash
pnpm create better-t-stack@latest my-workspace \
--frontend none \
--backend none
```
</Tab>
<Tab value="npm">
```bash
npx create-better-t-stack@latest my-workspace \
--frontend none \
--backend none
```
</Tab>
</Tabs>
## Flags Cheat Sheet
See the full list in the [CLI Reference](/docs/cli). 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
<Cards>
<Card href="/docs/cli" title="CLI (per-command)">
Flags, usage, and examples for each command
</Card>
<Card href="/docs/project-structure" title="Project Structure">
See how web/server/native and Convex layouts are generated
</Card>
<Card href="/docs/compatibility" title="Compatibility">
Valid combinations for backend, runtime, database, ORM, API
</Card>
<Card href="/docs/bts-config" title="bts.jsonc">
Required for the add command; safe to delete if you dont use add
</Card>
<Card href="/docs/contributing" title="Contributing">
Dev setup and contribution flow
</Card>
</Cards>