# Create Better-T-Stack CLI
A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations

## Quick Start
Run without installing globally:
```bash
# Using npm
npx create-better-t-stack@latest
# Using bun
bun create better-t-stack@latest
# Using pnpm
pnpm create better-t-stack@latest
```
Follow the prompts to configure your project or use the `--yes` flag for defaults.
## Features
| Category | Options |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **TypeScript** | End-to-end type safety across all parts of your application |
| **Frontend** | • React with TanStack Router
• React with React Router
• React with TanStack Start (SSR)
• Next.js
• SvelteKit
• Nuxt (Vue)
• SolidJS
• React Native with NativeWind (via Expo)
• React Native with Unistyles (via Expo)
• None |
| **Backend** | • Hono
• Express
• Elysia
• Next.js API routes
• Convex
• None |
| **API Layer** | • tRPC (type-safe APIs)
• oRPC (OpenAPI-compatible type-safe APIs)
• None |
| **Runtime** | • Bun
• Node.js |
| **Database** | • SQLite
• PostgreSQL
• MySQL
• MongoDB
• None |
| **ORM** | • Drizzle (TypeScript-first)
• Prisma (feature-rich)
• Mongoose (for MongoDB)
• None |
| **Database Setup** | • Turso (SQLite)
• Neon (PostgreSQL)
• Prisma Postgres (via Prisma Accelerate)
• MongoDB Atlas
• None (manual setup) |
| **Authentication** | Better-Auth (email/password, with more options coming soon) |
| **Styling** | Tailwind CSS with shadcn/ui components |
| **Addons** | • PWA support
• Tauri (desktop applications)
• Starlight (documentation site)
• Biome (linting and formatting)
• Husky (Git hooks)
• Turborepo (optimized builds) |
| **Examples** | • Todo app
• AI Chat interface (using Vercel AI SDK) |
| **Developer Experience** | • Automatic Git initialization
• Package manager choice (npm, pnpm, bun)
• Automatic dependency installation |
## Usage
```bash
Usage: create-better-t-stack [project-directory] [options]
Options:
-V, --version Output the version number
-y, --yes Use default configuration
--database Database type (none, sqlite, postgres, mysql, mongodb)
--orm ORM type (none, drizzle, prisma, mongoose)
--auth Include authentication
--no-auth Exclude authentication
--frontend Frontend types (tanstack-router, react-router, tanstack-start, next, nuxt, svelte, solid, native-nativewind, native-unistyles, none)
--addons Additional addons (pwa, tauri, starlight, biome, husky, turborepo, none)
--examples Examples to include (todo, ai, none)
--git Initialize git repository
--no-git Skip git initialization
--package-manager Package manager (npm, pnpm, bun)
--install Install dependencies
--no-install Skip installing dependencies
--db-setup Database setup (turso, neon, prisma-postgres, mongodb-atlas, none)
--backend Backend framework (hono, express, elysia, next, convex)
--runtime Runtime (bun, node, none)
--api API type (trpc, orpc, none)
-h, --help Display help
```
## Examples
Create a project with default configuration:
```bash
npx create-better-t-stack my-app --yes
```
Create a project with specific options:
```bash
npx create-better-t-stack my-app --database postgres --orm drizzle --auth --addons pwa biome
```
Create a project with Elysia backend and Node.js runtime:
```bash
npx create-better-t-stack my-app --backend elysia --runtime node
```
Create a project with multiple frontend options:
```bash
npx create-better-t-stack my-app --frontend tanstack-router native
```
Create a project with examples:
```bash
npx create-better-t-stack my-app --examples todo ai
```
Create a project with Turso database setup:
```bash
npx create-better-t-stack my-app --database sqlite --orm drizzle --db-setup turso
```
Create a project with Convex backend:
```bash
npx create-better-t-stack my-app --backend convex --frontend tanstack-router
```
Create a project with documentation site:
```bash
npx create-better-t-stack my-app --addons starlight
```
## Compatibility Notes
- **Convex backend**: Automatically disables authentication, database, ORM, and API options
- **Backend 'none'**: If selected, this option will force related options like API, ORM, database, authentication, and runtime to 'none'. Examples will also be disabled (set to none/empty).
- **SvelteKit, Nuxt, and SolidJS** frontends are only compatible with oRPC API layer
- **PWA support** requires React with TanStack Router, React Router, or SolidJS
- **Tauri desktop app** requires React (TanStack Router/React Router), Nuxt, SvelteKit, or SolidJS
- **AI example** is not compatible with Elysia backend or SolidJS frontend
## Project Structure
The created project follows a clean monorepo structure:
```
my-better-t-app/
├── apps/
│ ├── web/ # Frontend application
│ ├── server/ # Backend API
│ ├── native/ # (optional) Mobile application
│ └── docs/ # (optional) Documentation site
├── packages/ # Shared packages
└── README.md # Auto-generated project documentation
```
After project creation, you'll receive detailed instructions for next steps and additional setup requirements.
## Sponsors