mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
283 lines
6.2 KiB
Plaintext
283 lines
6.2 KiB
Plaintext
---
|
||
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 don’t use add
|
||
</Card>
|
||
<Card href="/docs/contributing" title="Contributing">
|
||
Dev setup and contribution flow
|
||
</Card>
|
||
</Cards>
|