Files
create-better-t-stack/apps/web/content/docs/cli/options.mdx
2025-08-29 23:48:43 +05:30

341 lines
7.4 KiB
Plaintext

---
title: Options Reference
description: Complete reference for all CLI options and flags
---
## General Options
### `--yes, -y`
Use default configuration and skip interactive prompts.
```bash
create-better-t-stack --yes
```
### `--package-manager <pm>`
Choose package manager: `npm`, `pnpm`, or `bun`.
```bash
create-better-t-stack --package-manager bun
```
### `--install / --no-install`
Control dependency installation after project creation.
```bash
create-better-t-stack --no-install
```
### `--git / --no-git`
Control Git repository initialization.
```bash
create-better-t-stack --no-git
```
### `--yolo`
Bypass validations and compatibility checks. Not recommended for normal use.
```bash
create-better-t-stack --yolo
```
### `--verbose`
Show detailed result information in JSON format after project creation.
```bash
create-better-t-stack --verbose
```
### `--render-title / --no-render-title`
Control whether the ASCII art title is shown. Enabled by default.
```bash
# Hide the title (useful in CI)
create-better-t-stack --no-render-title
```
### `--directory-conflict <strategy>`
How to handle existing, non-empty target directories:
- `merge`: Keep existing files and merge new ones
- `overwrite`: Clear the directory before scaffolding
- `increment`: Create a suffixed directory (e.g., `my-app-1`)
- `error`: Fail instead of prompting
```bash
# Overwrite an existing directory without prompting
create-better-t-stack my-app --yes --directory-conflict overwrite
# Safely create a new directory name if it exists
create-better-t-stack my-app --yes --directory-conflict increment
```
### `--disable-analytics / --no-disable-analytics`
Control whether analytics and telemetry data is collected.
```bash
# Disable analytics collection
create-better-t-stack --disable-analytics
# Enable analytics collection (default)
create-better-t-stack --no-disable-analytics
```
Analytics help improve Better-T-Stack by providing insights into usage patterns. When disabled, no data is collected or transmitted.
## Database Options
### `--database <type>`
Database type to use:
- `none`: No database
- `sqlite`: SQLite database
- `postgres`: PostgreSQL database
- `mysql`: MySQL database
- `mongodb`: MongoDB database
```bash
create-better-t-stack --database postgres
```
### `--orm <type>`
ORM to use with your database:
- `none`: No ORM
- `drizzle`: Drizzle ORM (TypeScript-first)
- `prisma`: Prisma ORM (feature-rich)
- `mongoose`: Mongoose ODM (for MongoDB)
```bash
create-better-t-stack --database postgres --orm drizzle
```
### `--db-setup <setup>`
Database hosting/setup provider:
- `none`: Manual setup
- `turso`: Turso (SQLite)
- `d1`: Cloudflare D1 (SQLite)
- `neon`: Neon (PostgreSQL)
- `supabase`: Supabase (PostgreSQL)
- `prisma-postgres`: Prisma Postgres via Prisma Accelerate
- `mongodb-atlas`: MongoDB Atlas
- `docker`: Local Docker containers
```bash
create-better-t-stack --database postgres --db-setup neon
```
## Backend Options
### `--backend <framework>`
Backend framework to use:
- `none`: No backend
- `hono`: Hono (fast, lightweight)
- `express`: Express.js (popular, mature)
- `fastify`: Fastify (fast, plugin-based)
- `elysia`: Elysia (Bun-native)
- `next`: Next.js API routes
- `convex`: Convex backend
```bash
create-better-t-stack --backend hono
```
### `--runtime <runtime>`
Runtime environment:
- `none`: No specific runtime (only with `convex` or `none` backend)
- `bun`: Bun runtime
- `node`: Node.js runtime
- `workers`: Cloudflare Workers
```bash
create-better-t-stack --backend hono --runtime bun
```
### `--api <type>`
API layer type:
- `none`: No API layer
- `trpc`: tRPC (type-safe)
- `orpc`: oRPC (OpenAPI-compatible)
```bash
create-better-t-stack --api trpc
```
## Frontend Options
### `--frontend <types...>`
Frontend frameworks (can specify multiple):
**Web Frameworks:**
- `tanstack-router`: React with TanStack Router
- `react-router`: React with React Router
- `tanstack-start`: React with TanStack Start (SSR)
- `next`: Next.js
- `nuxt`: Nuxt (Vue)
- `svelte`: SvelteKit
- `solid`: SolidJS
**Native Frameworks:**
- `native-nativewind`: React Native with NativeWind
- `native-unistyles`: React Native with Unistyles
**No Frontend:**
- `none`: Backend-only project
```bash
# Single web frontend
create-better-t-stack --frontend tanstack-router
# Web + native frontend
create-better-t-stack --frontend next native-nativewind
# Backend-only
create-better-t-stack --frontend none
```
## Authentication
### `--auth <provider>`
Choose authentication provider:
- `better-auth`: Better-Auth authentication (default)
- `clerk`: Clerk authentication (only with Convex backend)
- `none`: No authentication
```bash
create-better-t-stack --auth better-auth
create-better-t-stack --auth clerk
create-better-t-stack --auth none
```
**Note:**
- `better-auth` requires both a database and backend framework
- `clerk` is only available with Convex backend
- Authentication is automatically set to `none` when using `--backend none` or `--database none` (unless using Convex)
## Addons
### `--addons <types...>`
Additional features to include:
- `none`: No addons
- `pwa`: Progressive Web App support
- `tauri`: Desktop app support
- `starlight`: Starlight documentation site
- `fumadocs`: Fumadocs documentation site
- `biome`: Biome linting and formatting
- `husky`: Git hooks with Husky
- `turborepo`: Turborepo monorepo setup
- `ultracite`: Ultracite configuration
- `oxlint`: Oxlint fast linting
- `ruler`: Centralize your AI rules with Ruler
```bash
create-better-t-stack --addons pwa biome husky
```
## Examples
### `--examples <types...>`
Example implementations to include:
- `none`: No examples
- `todo`: Todo app example
- `ai`: AI chat interface example
```bash
create-better-t-stack --examples todo ai
```
## Deployment
### `--web-deploy <setup>`
Web deployment configuration:
- `none`: No deployment setup
- `wrangler`: Cloudflare Workers deployment
- `alchemy`: Cloudflare Workers deployment (via Alchemy infrastructure as code)
```bash
create-better-t-stack --web-deploy wrangler
create-better-t-stack --web-deploy alchemy
```
**Note:** Alchemy uses TypeScript to define infrastructure programmatically. See the [Infrastructure as Code with Alchemy Guide](/docs/guides/alchemy-deployment) for details.
### `--server-deploy <setup>`
Server deployment configuration:
- `none`: No deployment setup
- `wrangler`: Cloudflare Workers deployment (when runtime is workers)
- `alchemy`: Cloudflare Workers deployment (when runtime is workers, via Alchemy infrastructure as code)
```bash
create-better-t-stack --server-deploy wrangler
create-better-t-stack --server-deploy alchemy
```
**Note:** Alchemy uses TypeScript to define infrastructure programmatically. See the [Infrastructure as Code with Alchemy Guide](/docs/guides/alchemy-deployment) for details.
## Option Validation
The CLI validates option combinations and will show errors for incompatible selections. See the [Compatibility](/docs/cli/compatibility) page for detailed rules.
## Examples
### Full Configuration
```bash
create-better-t-stack \
--database postgres \
--orm drizzle \
--backend hono \
--runtime bun \
--frontend tanstack-router \
--api trpc \
--auth better-auth \
--addons pwa biome \
--examples todo \
--package-manager bun \
--web-deploy wrangler \
--server-deploy alchemy \
--install
```
### Minimal Setup
```bash
create-better-t-stack \
--backend none \
--frontend tanstack-router \
--addons none \
--examples none
```