Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (create-better-t-stack) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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:
# Using npm
npx create-better-t-stack@latest
# Using bun
bun create better-t-stack@latest
# Using pnpm
pnpm create better-t-stack@latestFollow 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 • Fastify • None |
| API Layer | • tRPC (type-safe APIs) • oRPC (OpenAPI-compatible type-safe APIs) • None |
| Runtime | • Bun • Node.js • Cloudflare Workers • None |
| Database | • SQLite • PostgreSQL • MySQL • MongoDB • None |
| ORM | • Drizzle (TypeScript-first) • Prisma (feature-rich) • Mongoose (for MongoDB) • None |
| Database Setup | • Turso (SQLite) • Cloudflare D1 (SQLite) • Neon (PostgreSQL) • Supabase (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
Usage: create-better-t-stack [project-directory] [options]
Options:
-V, --version Output the version number
-y, --yes Use default configuration
--database <type> Database type (none, sqlite, postgres, mysql, mongodb)
--orm <type> ORM type (none, drizzle, prisma, mongoose)
--auth Include authentication
--no-auth Exclude authentication
--frontend <types...> Frontend types (tanstack-router, react-router, tanstack-start, next, nuxt, svelte, solid, native-nativewind, native-unistyles, none)
--addons <types...> Additional addons (pwa, tauri, starlight, biome, husky, turborepo, none)
--examples <types...> Examples to include (todo, ai, none)
--git Initialize git repository
--no-git Skip git initialization
--package-manager <pm> Package manager (npm, pnpm, bun)
--install Install dependencies
--no-install Skip installing dependencies
--db-setup <setup> Database setup (turso, d1, neon, supabase, prisma-postgres, mongodb-atlas, none)
--backend <framework> Backend framework (hono, express, elysia, next, convex, fastify, none)
--runtime <runtime> Runtime (bun, node, workers, none)
--api <type> API type (trpc, orpc, none)
-h, --help Display helpExamples
Create a project with default configuration:
npx create-better-t-stack my-app --yesCreate a project with specific options:
npx create-better-t-stack my-app --database postgres --orm drizzle --auth --addons pwa biomeCreate a project with Elysia backend and Node.js runtime:
npx create-better-t-stack my-app --backend elysia --runtime nodeCreate a project with multiple frontend options:
npx create-better-t-stack my-app --frontend tanstack-router nativeCreate a project with examples:
npx create-better-t-stack my-app --examples todo aiCreate a project with Turso database setup:
npx create-better-t-stack my-app --database sqlite --orm drizzle --db-setup tursoCreate a project with Supabase PostgreSQL setup:
npx create-better-t-stack my-app --database postgres --orm drizzle --db-setup supabase --authCreate a project with Convex backend:
npx create-better-t-stack my-app --backend convex --frontend tanstack-routerCreate a project with documentation site:
npx create-better-t-stack my-app --addons starlightCreate a minimal TypeScript project with no backend:
npx create-better-t-stack my-app --backend none --frontend tanstack-routerCreate a backend-only project with no frontend:
npx create-better-t-stack my-app --frontend none --backend hono --database postgres --orm drizzleCreate a simple frontend-only project:
npx create-better-t-stack my-app --backend none --frontend next --addons none --examples noneCreate a Cloudflare Workers project:
npx create-better-t-stack my-app --backend hono --runtime workers --database sqlite --orm drizzle --db-setup d1Create a minimal API-only project:
npx create-better-t-stack my-app --frontend none --backend hono --api trpc --database none --addons noneCompatibility 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).
- Frontend 'none': Creates a backend-only project. When selected, PWA, Tauri, and certain examples may be disabled.
- API 'none': Disables tRPC/oRPC setup. Can be used with backend frameworks for REST APIs or custom API implementations.
- Database 'none': Disables database setup. Automatically sets ORM to 'none' and disables authentication.
- ORM 'none': Can be used when you want to handle database operations manually or use a different ORM.
- Runtime 'none': Only available with Convex backend or when backend is 'none'.
- Cloudflare Workers runtime: Only compatible with Hono backend, Drizzle ORM (or no ORM), and SQLite database (with D1 setup). Not compatible with MongoDB.
- Addons 'none': Skips all addons (PWA, Tauri, Starlight, Biome, Husky, Turborepo).
- Examples 'none': Skips all example implementations (todo, AI chat).
- 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 documentationAfter project creation, you'll receive detailed instructions for next steps and additional setup requirements.
Sponsors