JS-Stack CLI

CLI Commands

Comprehensive reference for the JS-Stack CLI commands and options.

Create Command

Create a new project:

npx create-js-stack@latest <project-name> [options]

Or explicitly:

npx create-js-stack@latest create <project-name> [options]

Options

Frontend

--frontend <framework1,framework2,...>

Available options:

  • tanstack-router - TanStack Router (React)
  • react-router - React Router
  • tanstack-start - TanStack Start (full-stack)
  • next - Next.js (full-stack, includes API routes)
  • nuxt - Nuxt 3 (full-stack, includes server routes)
  • sveltekit - SvelteKit (full-stack)
  • remix - Remix (full-stack)
  • astro - Astro (content-focused)
  • vue - Vue.js 3
  • angular - Angular 17+
  • qwik - Qwik (resumable framework)
  • native-nativewind - React Native with NativeWind
  • native-unistyles - React Native with Unistyles
  • svelte - Svelte 5
  • solid - SolidJS
  • none - No frontend (API-only)

Multiple Frontends: You can select multiple frontends (comma-separated) for monorepo setups:

npx create-js-stack@latest my-app --frontend react-router,vue

Examples:

# Single frontend
npx create-js-stack@latest my-app --frontend next

# Multiple frontends (monorepo)
npx create-js-stack@latest my-app --frontend react-router,vue

# Next.js (full-stack, no separate backend needed)
npx create-js-stack@latest my-app --frontend next --backend none

Important Notes:

  • Next.js, Nuxt, SvelteKit, Remix, and TanStack Start are full-stack frameworks - they include API routes
  • React Native requires a backend (cannot be "none")
  • Multiple frontends work best with Turborepo addon

Backend

--backend <framework>

Available options:

  • hono - Hono (ultra-fast, edge-ready)
  • express - Express.js (most popular)
  • fastify - Fastify (high performance)
  • nest - NestJS (enterprise-ready)
  • koa - Koa.js (modern async/await)
  • next - Next.js API routes (use with --frontend next)
  • elysia - Elysia (Bun-first framework)
  • convex - Convex (backend-as-a-service)
  • none - No backend (frontend-only or full-stack framework)

Examples:

# Express backend
npx create-js-stack@latest my-app --backend express

# Hono (ultra-fast, edge-ready)
npx create-js-stack@latest my-app --backend hono

# NestJS (enterprise)
npx create-js-stack@latest my-app --backend nest

# No backend (for Next.js/Nuxt or frontend-only)
npx create-js-stack@latest my-app --backend none

Important Notes:

  • Use none with Next.js, Nuxt, SvelteKit, Remix, or TanStack Start (they have built-in API routes)
  • React Native requires a backend (cannot be "none")
  • Hono and Elysia are optimized for edge runtimes

Runtime

--runtime <runtime>

Available options:

  • node - Node.js (default)
  • bun - Bun runtime
  • deno - Deno runtime
  • workers - Cloudflare Workers
  • none - No specific runtime

Examples:

# Node.js (default)
npx create-js-stack@latest my-app --runtime node

# Bun runtime
npx create-js-stack@latest my-app --runtime bun --backend elysia

# Cloudflare Workers
npx create-js-stack@latest my-app --runtime workers --backend hono

Database

--database <database>

Available options:

  • postgres - PostgreSQL (recommended for production)
  • mysql - MySQL
  • sqlite - SQLite (great for development)
  • mongodb - MongoDB (NoSQL)
  • none - No database

Examples:

# PostgreSQL (production)
npx create-js-stack@latest my-app --database postgres

# SQLite (development/prototyping)
npx create-js-stack@latest my-app --database sqlite

# MongoDB (NoSQL)
npx create-js-stack@latest my-app --database mongodb

Important Notes:

  • PostgreSQL and MySQL require a running database server
  • SQLite is file-based (no server needed) - perfect for development
  • MongoDB works with Mongoose or Prisma ORM

ORM

--orm <orm>

Available options:

  • drizzle - Drizzle ORM (lightweight, type-safe)
  • prisma - Prisma (recommended, JavaScript)
  • mongoose - Mongoose (MongoDB only)
  • typeorm - TypeORM (JavaScript-first, decorators)
  • mikro-orm - MikroORM (feature-rich)
  • none - No ORM (raw queries)

Examples:

# Prisma (modern, JavaScript)
npx create-js-stack@latest my-app --orm prisma

# Drizzle (lightweight, type-safe)
npx create-js-stack@latest my-app --orm drizzle

# TypeORM (works great with NestJS)
npx create-js-stack@latest my-app --orm typeorm

# Mongoose (for MongoDB)
npx create-js-stack@latest my-app --orm mongoose --database mongodb

Compatibility:

  • MongoDB: Mongoose or Prisma
  • PostgreSQL/MySQL/SQLite: Drizzle, Prisma, TypeORM, or MikroORM
  • The CLI automatically validates ORM compatibility with database selection

API

--api <style>

Available options:

  • trpc - tRPC (end-to-end typesafe APIs)
  • orpc - ORPC (lightweight RPC)
  • graphql - GraphQL
  • rest - REST API (default)
  • none - No API layer

Examples:

# tRPC (type-safe)
npx create-js-stack@latest my-app --api trpc

# ORPC (lightweight)
npx create-js-stack@latest my-app --api orpc

# GraphQL
npx create-js-stack@latest my-app --api graphql

# REST (default)
npx create-js-stack@latest my-app --api rest

Authentication

--auth <method>

Available options:

  • better-auth - Better Auth (modern, Next.js optimized)
  • clerk - Clerk (third-party service, enterprise)
  • next-auth - NextAuth.js (Next.js)
  • lucia - Lucia (lightweight, framework-agnostic)
  • kinde - Kinde (authentication platform)
  • none - No authentication

Examples:

# Better Auth (Next.js recommended)
npx create-js-stack@latest my-app --auth better-auth

# Clerk (enterprise)
npx create-js-stack@latest my-app --auth clerk

# Lucia (lightweight)
npx create-js-stack@latest my-app --auth lucia

# NextAuth.js (Next.js)
npx create-js-stack@latest my-app --auth next-auth

Compatibility Notes:

  • Next.js: Better Auth, NextAuth.js, Clerk, Lucia, Kinde
  • Other frameworks: Better Auth, Clerk, Lucia, Kinde
  • Better Auth works with all frameworks

Package Manager

--package-manager <manager>

Available options:

  • npm (default)
  • pnpm
  • bun

Example:

npx create-js-stack@latest my-app --package-manager pnpm

Addons

--addons <addon1,addon2,...>

Available options:

  • docker - Docker configuration (Dockerfile + docker-compose.yml)
  • testing - Testing setup (Vitest/Jest + Testing Library)
  • biome - Biome linter & formatter (fast alternative to ESLint+Prettier)
  • turborepo - Turborepo monorepo setup (for multi-package projects)
  • pwa - Progressive Web App configuration
  • tauri - Tauri desktop app support
  • husky - Git hooks with Husky
  • vitest - Vitest test runner
  • playwright - Playwright end-to-end testing
  • cypress - Cypress end-to-end testing
  • storybook - Storybook component development
  • changesets - Changesets for version management

Examples:

# Single addon
npx create-js-stack@latest my-app --addons docker

# Multiple addons
npx create-js-stack@latest my-app --addons docker,testing,biome

# Monorepo setup
npx create-js-stack@latest my-app --addons turborepo,testing

# PWA support
npx create-js-stack@latest my-app --addons pwa

Recommendations:

  • Always include testing for production apps
  • Use biome for faster linting/formatting
  • Use docker for containerized deployments
  • Use turborepo for monorepos or multiple frontends

Examples

--examples <example1,example2,...>

Available options:

  • todo - Todo list example
  • ai - AI integration example
  • dashboard - Dashboard example
  • auth - Authentication example
  • api - API example
  • none - No examples

Example:

npx create-js-stack@latest my-app --examples todo,auth

Database Setup

--db-setup <setup>

Available options:

  • turso - Turso (SQLite-compatible edge database)
  • neon - Neon (serverless PostgreSQL)
  • docker-compose - Docker Compose database setup
  • supabase - Supabase setup
  • none - No database setup

Example:

npx create-js-stack@latest my-app --db-setup neon

Web Deployment

--web-deploy <platform>

Available options:

  • cloudflare-pages - Cloudflare Pages
  • alchemy - Alchemy deployment
  • none - No web deployment config

Example:

npx create-js-stack@latest my-app --web-deploy cloudflare-pages

Server Deployment

--server-deploy <platform>

Available options:

  • cloudflare-workers - Cloudflare Workers
  • alchemy - Alchemy deployment
  • none - No server deployment config

Example:

npx create-js-stack@latest my-app --server-deploy cloudflare-workers

Git

--git

Initialize a git repository in the project.

--no-git

Skip git initialization.

Install Dependencies

--install

Automatically install dependencies after project creation.

--no-install

Skip dependency installation.

Other Options

Quick Start Flag
--yes

Skip all prompts and use defaults or provided flags. The project name is still customizable as the first argument.

Example:

npx create-js-stack@latest my-custom-name --yes
Dry Run
--dry-run

Preview what would be generated without creating any files. Useful for testing configurations.

Example:

npx create-js-stack@latest my-app --frontend next --dry-run
Verbose Output
--verbose

Show detailed output during generation, including all file operations and template processing.

Example:

npx create-js-stack@latest my-app --verbose
Directory Conflict Handling
--directory-conflict <strategy>

Available strategies:

  • error - Throw error if directory exists (default)
  • merge - Merge with existing directory
  • overwrite - Overwrite existing directory
  • increment - Create directory with incremented name

Example:

npx create-js-stack@latest my-app --directory-conflict merge

Other Commands

List Presets

npx create-js-stack@latest list

List all available presets.

npx create-js-stack@latest list --json

Output presets as JSON.

Add Preset

npx create-js-stack@latest add-preset <name> --source <path>

Add a custom preset from a template directory.

Info

npx create-js-stack@latest info

Display environment information (Node.js version, platform, CLI version).

Sponsors

npx create-js-stack@latest sponsors

Display sponsors information.

Docs

npx create-js-stack@latest docs

Open documentation in browser.

Builder

npx create-js-stack@latest builder

Open web-based interactive builder in browser.

Examples

Full-Stack Next.js App

npx create-js-stack@latest my-app \
  --frontend next \
  --database postgres \
  --orm prisma \
  --api trpc \
  --auth better-auth \
  --addons docker,testing,biome \
  --package-manager pnpm \
  --git \
  --install

React with Express API

npx create-js-stack@latest my-app \
  --frontend react-router \
  --backend express \
  --runtime node \
  --database postgres \
  --orm prisma \
  --api trpc \
  --auth better-auth \
  --addons docker,testing \
  --package-manager pnpm \
  --git \
  --install

Vue.js Frontend Only

npx create-js-stack@latest my-app \
  --frontend vue \
  --backend none \
  --package-manager pnpm \
  --git

MongoDB with Mongoose

npx create-js-stack@latest my-app \
  --frontend react-router \
  --backend express \
  --database mongodb \
  --orm mongoose \
  --auth better-auth

Hono Edge API

npx create-js-stack@latest my-api \
  --frontend none \
  --backend hono \
  --runtime workers \
  --database turso \
  --orm drizzle \
  --api rest \
  --server-deploy cloudflare-workers

Interactive Mode

If you don't provide flags, the CLI will prompt you interactively:

npx create-js-stack@latest my-app

You'll be asked to select:

  • Frontend framework(s)
  • Backend framework
  • Runtime
  • Database
  • ORM
  • API style
  • Authentication
  • Addons
  • Examples
  • Package manager
  • Git initialization
  • Dependency installation