Docs / CLI
Open documentation actions
Create Command
Scaffold a new Better Fullstack project with prompts, defaults, or explicit flags.
The create command writes a new project from a typed stack configuration. Use it interactively for exploration, or pass flags when you need the same project shape every time.
npm create better-fullstack@latest [project-name] -- [flags]For npm, Better Fullstack flags go after --. Generated npm commands may use npx create-better-fullstack@latest; that runs the same package entrypoint in a non-interactive form.
Command modes
| Mode | Command shape | Use it when |
|---|---|---|
| Wizard | [launcher] my-app | You want prompts and defaults. |
| Defaults | [launcher] my-app [flags] --yes | You want the default stack without prompts. |
| Scripted | [launcher] my-app [flags] | You want repeatable output. |
| Dry run | [launcher] my-app [flags] --dry-run | You want to inspect files before writing. |
Prompt behavior
- Explicit flags skip only the categories they cover.
--yesaccepts defaults and conflicts with core stack flags such as--frontend,--backend,--database,--orm,--auth, and--api.- Use
noneto disable optional categories, including--ai-docs none. - Use
--no-installand--no-gitwhen you want to inspect generated files before side effects. --verifyruns generated checks after scaffolding without starting dev servers.
Common flags
The tables below are generated from the same shared schemas the CLI, Stack Builder, and MCP server use, so accepted values and defaults stay in sync with the generator. See the Options Reference for per-ecosystem option details.
| Flag | Accepted values | Default |
|---|---|---|
--ecosystemLanguage/runtime ecosystem to scaffold. |
| typescript |
--templateStart from a curated stack preset instead of individual flags. |
| — |
--partAdd a multi-ecosystem stack part. Repeat once per part. | role:ecosystem:tool (e.g. frontend:typescript:next) | — |
--addonsmultipleRepo tooling and platform addons. |
| turborepo |
--examplesmultipleOptional example features to include. |
| none |
--ai-docsmultipleAgent instruction files to generate. |
| claude-md agents-md |
--package-managerPackage manager for the generated workspace. |
| bun |
--workspace-shapeMonorepo or single-app workspace layout. |
| monorepo |
--version-channelDependency version channel. |
| stable |
--web-deployDeployment target config for the web app. |
| none |
--server-deployDeployment target config for the server. |
| none |
--directory-conflictStrategy when the target directory already exists. |
| — |
--installInstall dependencies after scaffolding. | --install / --no-install | --install |
--gitInitialize a Git repository. | --git / --no-git | --git |
--dry-runPreview generated files without writing them. | boolean flag | — |
--verifyRun generated checks after scaffolding where supported. | boolean flag | — |
--yesAccept defaults. Conflicts with core stack flags. | boolean flag | — |
--yoloSkip safety confirmations where supported. | boolean flag | — |
--verbosePrint detailed scaffold output. | boolean flag | — |
--disable-analyticsOpt out of anonymous CLI analytics. | boolean flag | — |
TypeScript flags
Use these with --ecosystem typescript.
| Flag | Accepted values | Default |
|---|---|---|
--frontendmultipleWeb frontend framework(s). |
| tanstack-router |
--backendBackend framework. `self` pairs with fullstack frontends. |
| hono |
--runtimeServer runtime. |
| bun |
--databaseDatabase engine. |
| sqlite |
--ormORM / query layer. |
| drizzle |
--db-setupHosted database provider setup. |
| none |
--authAuthentication provider. |
| better-auth |
--apiAPI layer. tRPC is React-oriented. |
| trpc |
--astro-integrationAstro UI framework integration (Astro frontends). |
| none |
--manual-dbSkip provider-specific database setup prompts. | boolean flag | — |
Services
| Flag | Accepted values | Default |
|---|---|---|
--aiAI SDK / agent framework. |
| none |
--paymentsPayments provider. |
| none |
--emailEmail provider. |
| none |
--realtimeRealtime transport. |
| none |
--job-queueBackground job / queue system. |
| none |
--cmsContent management system. |
| none |
--cachingCache layer. |
| none |
--searchSearch engine. |
| none |
--file-storageObject storage provider. |
| none |
--file-uploadFile upload helper. |
| none |
--analyticsWeb analytics provider. |
| none |
--feature-flagsFeature flag platform. |
| none |
--vector-dbVector database. |
| none |
--rate-limitRate limiting helper. |
| none |
--i18nInternationalization library. |
| none |
--effectEffect capability level. |
| none |
--loggingLogging library. |
| none |
--observabilityObservability provider. |
| none |
UI and app behavior
| Flag | Accepted values | Default |
|---|---|---|
--css-frameworkCSS framework. |
| tailwind |
--ui-libraryComponent library. |
| shadcn-ui |
--state-managementClient state manager. |
| none |
--formsForm library. |
| react-hook-form |
--validationSchema validation library. |
| zod |
--testingTesting setup. |
| vitest |
--animationAnimation library. |
| none |
shadcn/ui flags
| Flag | Accepted values | Default |
|---|---|---|
--shadcn-baseshadcn primitive base. |
| radix |
--shadcn-styleshadcn style preset. |
| nova |
--shadcn-icon-libraryIcon library. |
| lucide |
--shadcn-color-themeColor theme. |
| neutral |
--shadcn-base-colorBase neutral color. |
| neutral |
--shadcn-fontDefault font. |
| inter |
--shadcn-radiusCorner radius scale. |
| default |
React Native flags
Use these with --ecosystem react-native.
| Flag | Accepted values | Default |
|---|---|---|
--frontendmultipleExpo native frontend styling. |
| native-bare |
--mobile-navigationNavigation library. |
| none |
--mobile-uiMobile UI kit. |
| none |
--mobile-storageOn-device storage. |
| none |
--mobile-testingMobile testing setup. |
| none |
--mobile-pushPush notifications. |
| none |
--mobile-otaOver-the-air updates. |
| none |
--mobile-deep-linkingDeep linking. |
| none |
--mobile-librariesmultipleOptional Expo modules. |
| none |
Language ecosystem flags
Rust
| Flag | Accepted values | Default |
|---|---|---|
--rust-web-frameworkRust web framework. |
| none |
--rust-frontendWASM frontend. |
| none |
--rust-ormRust ORM / database. |
| none |
--rust-apiRust API layer. |
| none |
--rust-cliRust CLI tooling. |
| none |
--rust-librariesmultipleRust core libraries. |
| none |
--rust-loggingRust logging. |
| tracing |
--rust-error-handlingRust error handling. |
| anyhow-thiserror |
--rust-cachingRust caching. |
| none |
--rust-authRust auth. |
| none |
--rust-realtimeRust realtime. |
| none |
--rust-message-queueRust message queue. |
| none |
--rust-observabilityRust observability. |
| none |
--rust-templatingRust templating. |
| none |
Python
| Flag | Accepted values | Default |
|---|---|---|
--python-web-frameworkPython web framework. |
| fastapi |
--python-ormPython ORM / database. |
| sqlalchemy |
--python-validationValidation library. |
| pydantic |
--python-aimultiplePython AI / ML libraries. |
| none |
--python-authPython auth. |
| none |
--python-apiPython API framework. |
| none |
--python-task-queuePython task queue. |
| none |
--python-graphqlPython GraphQL. |
| none |
--python-qualityPython code quality tool. |
| ruff |
--python-testingmultiplePython testing libraries. |
| none |
--python-cachingPython caching. |
| none |
--python-realtimePython realtime. |
| none |
--python-observabilityPython observability. |
| none |
--python-climultiplePython CLI tooling. |
| none |
--python-cloud-sdkPython cloud SDK. |
| none |
--python-http-clientPython HTTP client. |
| none |
--python-datamultiplePython data and scientific libraries. |
| none |
--python-mediaPython media library. |
| none |
--python-serverPython production server. |
| none |
--python-package-managerPython package manager. |
| uv |
--python-message-queuePython message queue client. |
| none |
Go
| Flag | Accepted values | Default |
|---|---|---|
--go-web-frameworkGo web framework. |
| gin |
--go-ormGo ORM / database. |
| gorm |
--go-apiGo API layer. |
| none |
--go-cliGo CLI tooling. |
| none |
--go-loggingGo logging. |
| zap |
--go-authGo-native auth helpers. |
| none |
--go-testingmultipleGo testing libraries. |
| none |
--go-realtimeGo realtime. |
| none |
--go-message-queueGo message queue. |
| none |
--go-cachingGo caching. |
| none |
--go-configGo config loader. |
| none |
--go-observabilityGo observability. |
| none |
--go-validationGo validation. |
| none |
--go-qualityGo code quality. |
| none |
--go-migrationsGo database migrations. |
| none |
--go-templatingGo templating. |
| none |
--go-proto-toolingGo protobuf tooling. |
| none |
--go-diGo dependency injection. |
| none |
GoBetterAuth is selected with the global --auth go-better-auth value. Go-native helpers use --go-auth.
Java
| Flag | Accepted values | Default |
|---|---|---|
--java-web-frameworkJava web framework. |
| spring-boot |
--java-languageJVM language (java or kotlin). |
| — |
--java-build-toolBuild tool. |
| maven |
--java-ormJava ORM / database. |
| none |
--java-authJava auth. |
| none |
--java-apiJava API layer. |
| none |
--java-loggingJava logging. |
| none |
--java-librariesmultipleJava libraries. |
| none |
--java-testing-librariesmultipleJava testing libraries. |
| junit5 |
.NET
| Flag | Accepted values | Default |
|---|---|---|
--dotnet-web-framework.NET web framework. |
| aspnet-minimal |
--dotnet-orm.NET data access. |
| ef-core |
--dotnet-auth.NET auth. |
| aspnet-identity |
--dotnet-api.NET API style. |
| minimal-api |
--dotnet-testingmultiple.NET testing libraries. |
| xunit |
--dotnet-job-queue.NET background jobs. |
| none |
--dotnet-realtime.NET realtime. |
| signalr |
--dotnet-observabilitymultiple.NET observability. |
| serilog |
--dotnet-validation.NET validation. |
| none |
--dotnet-caching.NET caching. |
| none |
--dotnet-deploy.NET deploy target. |
| docker |
--dotnet-librariesmultipleOptional .NET libraries. |
| none |
Elixir
| Flag | Accepted values | Default |
|---|---|---|
--elixir-web-frameworkElixir web framework. |
| phoenix |
--elixir-ormElixir ORM / database. |
| ecto-sql |
--elixir-authElixir auth. |
| none |
--elixir-apiElixir API layer. |
| rest |
--elixir-realtimeElixir realtime. |
| channels |
--elixir-jobsElixir jobs. |
| none |
--elixir-validationElixir validation. |
| ecto-changesets |
--elixir-httpElixir HTTP client. |
| req |
--elixir-jsonElixir JSON library. |
| jason |
--elixir-emailElixir email. |
| none |
--elixir-cachingElixir caching. |
| none |
--elixir-observabilityElixir observability. |
| telemetry |
--elixir-testingElixir testing. |
| ex_unit |
--elixir-qualityElixir code quality. |
| credo |
--elixir-i18nElixir internationalization. |
| none |
--elixir-http-serverElixir HTTP server. |
| cowboy |
--elixir-application-frameworkElixir application framework. |
| none |
--elixir-documentationElixir documentation. |
| none |
--elixir-clusteringElixir clustering. |
| none |
--elixir-deployElixir deploy target. |
| none |
--elixir-librariesmultipleElixir libraries. |
| none |
Examples
Create a TypeScript app with explicit flags:
npm create better-fullstack@latest my-app -- \ --ecosystem typescript \ --frontend tanstack-router \ --backend hono \ --runtime node \ --database postgres \ --orm drizzle \ --db-setup none \ --api orpc \ --auth better-auth \ --css-framework tailwind \ --ui-library shadcn-ui \ --ai none \ --payments none \ --email none \ --examples none \ --addons none \ --ai-docs none \ --version-channel stable \ --no-install \ --no-gitCreate a multi-ecosystem project:
npm create better-fullstack@latest my-mixed-app -- \ --part frontend:typescript:next \ --part backend:go:gin \ --part backend.orm:go:gorm \ --part backend.auth:go:jwt \ --part database:universal:postgres \ --part mobile:react-native:native-bare \ --addons turborepo docker-composeCompatibility
- The CLI validates stack compatibility before generation.
- TypeScript
backend selfis for fullstack frontends and pairs withruntime none. - tRPC is React-oriented.
- Workers runtime support depends on the frontend/backend combination.
- UI libraries, deployment targets, providers, and addons are stack-sensitive.
- For a visual check, use the Compatibility Matrix or the Stack Builder.