Skip to main content
Home
It is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
It is unknown whether this package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
82%
Published
6 days ago (2.18.3)

Create Better-T-Stack CLI

A modern CLI tool for scaffolding end-to-end type-safe TypeScript projects with best practices and customizable configurations

demo

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@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
• Fastify
• 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

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, neon, prisma-postgres, mongodb-atlas, none)
  --backend <framework>           Backend framework (hono, express, elysia, next, convex, fastify, none)
  --runtime <runtime>             Runtime (bun, node, none)
  --api <type>                    API type (trpc, orpc, none)
  -h, --help                      Display help

Examples

Create a project with default configuration:

npx create-better-t-stack my-app --yes

Create a project with specific options:

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:

npx create-better-t-stack my-app --backend elysia --runtime node

Create a project with multiple frontend options:

npx create-better-t-stack my-app --frontend tanstack-router native

Create a project with examples:

npx create-better-t-stack my-app --examples todo ai

Create a project with Turso database setup:

npx create-better-t-stack my-app --database sqlite --orm drizzle --db-setup turso

Create a project with Convex backend:

npx create-better-t-stack my-app --backend convex --frontend tanstack-router

Create a project with documentation site:

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

Sponsors

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";
or

Import directly with a jsr specifier

import * as create_better_t_stack from "jsr:@amanv/create-better-t-stack";

Add Package

pnpm i jsr:@amanv/create-better-t-stack
or (using pnpm 10.8 or older)
pnpm dlx jsr add @amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";

Add Package

yarn add jsr:@amanv/create-better-t-stack
or (using Yarn 4.8 or older)
yarn dlx jsr add @amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";

Add Package

vlt install jsr:@amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";

Add Package

npx jsr add @amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";

Add Package

bunx jsr add @amanv/create-better-t-stack

Import symbol

import * as create_better_t_stack from "@amanv/create-better-t-stack";