# Quick Start (/docs)



## Philosophy [#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 [#get-started]

### Prerequisites [#prerequisites]

* **Node.js LTS** - [Download from nodejs.org](https://nodejs.org/)
* **Git** (optional) - [Download from git-scm.com](https://git-scm.com/) - if you want to initialize a git repository
* **Bun** (optional) - [Download from bun.com](https://bun.com/) - if you want to use Bun as your package manager

### CLI (prompts) [#cli-prompts]

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack
    ```
  </CodeBlockTab>
</CodeBlockTabs>

Follow the interactive prompts to choose your frontend, backend, database, ORM, API layer, and addons.

Skip prompts and use the default stack:

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest --yes
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack --yes
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack --yes
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack --yes
    ```
  </CodeBlockTab>
</CodeBlockTabs>

### Stack Builder (UI) [#stack-builder-ui]

* Visit [/new](/new) to pick your stack and copy the generated command
* Or open it via:

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest builder
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack builder
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack builder
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack builder
    ```
  </CodeBlockTab>
</CodeBlockTabs>

### AI agent (plugin) [#ai-agent-plugin]

Let your AI assistant build the stack for you. Install the Better-T-Stack plugin, then describe what you want in plain English — it plans a valid stack and scaffolds it for you.

```bash
# Claude Code
/plugin marketplace add AmanVarshney01/create-better-t-stack
/plugin install better-t-stack@better-t-stack
```

Then ask: &#x2A;"create a fullstack app with Next, Hono, Postgres and Better Auth"*. Also works in Codex, opencode, and any MCP-capable agent — see [Use it inside your AI agent](/docs/cli/agent-workflows#use-it-inside-your-ai-agent).

## Common Setups [#common-setups]

### Default Stack [#default-stack]

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest my-webapp \
      --frontend tanstack-router \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth \
      --addons turborepo
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack my-webapp \
      --frontend tanstack-router \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth \
      --addons turborepo
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack my-webapp \
      --frontend tanstack-router \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth \
      --addons turborepo
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack my-webapp \
      --frontend tanstack-router \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth \
      --addons turborepo
    ```
  </CodeBlockTab>
</CodeBlockTabs>

### Convex + React + Clerk [#convex--react--clerk]

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest my-api \
      --frontend tanstack-router \
      --backend convex \
      --auth clerk
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack my-api \
      --frontend tanstack-router \
      --backend convex \
      --auth clerk
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack my-api \
      --frontend tanstack-router \
      --backend convex \
      --auth clerk
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack my-api \
      --frontend tanstack-router \
      --backend convex \
      --auth clerk
    ```
  </CodeBlockTab>
</CodeBlockTabs>

### Mobile App (Expo) [#mobile-app-expo]

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest my-native \
      --frontend native-uniwind \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack my-native \
      --frontend native-uniwind \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack my-native \
      --frontend native-uniwind \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack my-native \
      --frontend native-uniwind \
      --backend hono \
      --database sqlite \
      --orm drizzle \
      --auth better-auth
    ```
  </CodeBlockTab>
</CodeBlockTabs>

### Empty Monorepo [#empty-monorepo]

<CodeBlockTabs defaultValue="npm" groupId="package-manager">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npm create better-t-stack@latest my-workspace \
      --frontend none \
      --backend none
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm create better-t-stack my-workspace \
      --frontend none \
      --backend none
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn create better-t-stack my-workspace \
      --frontend none \
      --backend none
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bunx create-better-t-stack my-workspace \
      --frontend none \
      --backend none
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Flags Cheat Sheet [#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, astro, native-bare, native-uniwind, native-unistyles, none
* `--backend`: hono, express, fastify, elysia, convex, self, 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
* `--payments`: polar, none
* `--addons`: turborepo, nx, vite-plus, pwa, tauri, electrobun, biome, lefthook, husky, starlight, fumadocs, ultracite, oxlint, mcp, opentui, wxt, skills, evlog, none
* `--examples`: todo, ai, none

## Next Steps [#next-steps]

<Cards>
  <Card href="/docs/cli" title="CLI (per-command)">
    Flags, usage, and examples for each command
  </Card>

  <Card href="/docs/cli/agent-workflows#use-it-inside-your-ai-agent" title="AI agent plugin">
    Scaffold from Claude Code, Codex, opencode, and other MCP agents
  </Card>

  <Card href="/docs/project-structure" title="Project Structure">
    See how web/server/native and Convex layouts are generated
  </Card>

  <Card href="/docs/cli/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>
