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

ModeCommand shapeUse it when
Wizard[launcher] my-appYou want prompts and defaults.
Defaults[launcher] my-app [flags] --yesYou want the default stack without prompts.
Scripted[launcher] my-app [flags]You want repeatable output.
Dry run[launcher] my-app [flags] --dry-runYou want to inspect files before writing.

Prompt behavior

  • Explicit flags skip only the categories they cover.
  • --yes accepts defaults and conflicts with core stack flags such as --frontend, --backend, --database, --orm, --auth, and --api.
  • Use none to disable optional categories, including --ai-docs none.
  • Use --no-install and --no-git when you want to inspect generated files before side effects.
  • --verify runs generated checks after scaffolding without starting dev servers.

Common flags

FlagValues or behavior
--ecosystemtypescript react-native rust python go java elixir. Defaults to typescript.
--templatet3 mern pern uniwind none.
--partAdds a multi-ecosystem stack part such as frontend:typescript:next or backend.orm:go:gorm. Repeat for each part.
--addonspwa tauri starlight biome lefthook husky ruler mcp skills turborepo fumadocs ultracite oxlint opentui wxt msw storybook swr tanstack-query tanstack-table tanstack-virtual tanstack-db tanstack-pacer backend-utils docker-compose none.
--examplesai chat-sdk tanstack-showcase none.
--ai-docsclaude-md agents-md cursorrules none.
--package-managernpm pnpm bun yarn.
--version-channelstable latest beta.
--web-deploycloudflare fly railway render netlify docker sst vercel none.
--server-deploycloudflare fly railway render docker sst vercel none.
--directory-conflictStrategy for an existing target directory.
--dry-runPreview generated files without writing them.
--verifyRun generated checks after scaffolding where supported.
--yesAccept defaults. Incompatible with core stack flags.
--yoloSkip safety confirmations where supported.
--install / --no-installInstall or skip dependency installation.
--git / --no-gitInitialize or skip Git.
--disable-analyticsOpt out of anonymous CLI analytics.
--verbosePrint detailed scaffold output.

TypeScript flags

Use these with --ecosystem typescript.

FlagValues
--frontendtanstack-router react-router react-vite tanstack-start next vinext nuxt svelte solid solid-start astro qwik angular redwood fresh none.
--backendhono express fastify elysia fets nestjs adonisjs nitro encore convex self none.
--runtimebun node workers none.
--databasesqlite postgres mysql mongodb edgedb redis none.
--ormdrizzle prisma mongoose typeorm kysely mikroorm sequelize none.
--db-setupturso neon prisma-postgres planetscale mongodb-atlas supabase upstash d1 docker none.
--manual-dbSkip provider-specific database setup prompts when applicable.
--authbetter-auth go-better-auth clerk nextauth stack-auth supabase-auth auth0 none.
--apitrpc orpc ts-rest garph graphql-yoga none.
--astro-integrationreact vue svelte solid none.

Services

FlagValues
--aivercel-ai mastra voltagent langgraph openai-agents google-adk modelfusion langchain llamaindex tanstack-ai ai-cli none.
--paymentspolar stripe lemon-squeezy paddle dodo none.
--emailreact-email resend nodemailer postmark sendgrid aws-ses mailgun plunk none.
--realtimesocket-io partykit ably pusher liveblocks yjs none.
--job-queuebullmq trigger-dev inngest temporal none.
--cmspayload sanity strapi tinacms directus none.
--cachingupstash-redis none.
--searchmeilisearch typesense elasticsearch algolia none.
--file-storages3 r2 cloudinary none.
--file-uploaduploadthing filepond uppy none.
--analyticsplausible umami none.
--feature-flagsgrowthbook posthog launchdarkly flagsmith unleash none.

UI and app behavior

FlagValues
--css-frameworktailwind scss less postcss-only none.
--ui-libraryshadcn-ui shadcn-svelte daisyui radix-ui headless-ui park-ui chakra-ui nextui mantine mui antd base-ui ark-ui react-aria none.
--state-managementzustand jotai nanostores redux-toolkit mobx xstate valtio tanstack-store legend-state none.
--formstanstack-form react-hook-form formik final-form conform modular-forms none.
--validationzod valibot arktype typebox typia runtypes effect-schema none.
--testingvitest playwright vitest-playwright jest cypress none.
--loggingpino winston evlog none.
--observabilityopentelemetry sentry grafana none.
--animationframer-motion gsap react-spring auto-animate lottie none.
--i18ni18next next-intl none.
--effecteffect effect-full none.

shadcn/ui flags

FlagValues
--shadcn-baseradix base.
--shadcn-stylevega nova maia lyra mira.
--shadcn-icon-librarylucide tabler hugeicons phosphor remixicon.
--shadcn-color-themeneutral stone zinc gray amber blue cyan emerald fuchsia green indigo lime orange pink purple red rose sky teal violet yellow.
--shadcn-base-colorneutral stone zinc gray.
--shadcn-fontinter geist noto-sans nunito-sans figtree roboto raleway dm-sans public-sans outfit jetbrains-mono geist-mono.
--shadcn-radiusdefault none small medium large.

React Native flags

Use these with --ecosystem react-native.

FlagValues
--frontendnative-bare native-uniwind native-unistyles.
--mobile-navigationexpo-router react-navigation none.
--mobile-uitamagui gluestack-ui uniwind unistyles none.
--mobile-storagemmkv none.
--mobile-testingmaestro react-native-testing-library maestro-react-native-testing-library none.
--mobile-pushexpo-notifications none.
--mobile-otaexpo-updates none.
--mobile-deep-linkingexpo-linking none.

Language ecosystem flags

Rust

FlagValues
--rust-web-frameworkaxum actix-web rocket none.
--rust-frontendleptos dioxus none.
--rust-ormsea-orm sqlx diesel none.
--rust-apitonic async-graphql none.
--rust-cliclap ratatui none.
--rust-librariesserde uuid chrono reqwest config dashmap parking-lot secrecy tokio-util utoipa validator jsonwebtoken argon2 tokio-test mockall proptest insta none.
--rust-loggingtracing env-logger none.
--rust-error-handlinganyhow-thiserror eyre none.
--rust-cachingmoka redis none.
--rust-authoauth2 none.

Python

FlagValues
--python-web-frameworkfastapi django flask litestar none.
--python-ormsqlalchemy sqlmodel tortoise-orm none.
--python-validationpydantic none.
--python-ailangchain llamaindex openai-sdk anthropic-sdk langgraph crewai haystack none.
--python-authauthlib jwt none.
--python-apidjango-rest-framework django-ninja none.
--python-task-queuecelery rq dramatiq huey none.
--python-graphqlstrawberry ariadne none.
--python-qualityruff mypy pyright none.

Go

FlagValues
--go-web-frameworkgin echo fiber chi none.
--go-ormgorm sqlc ent none.
--go-apigrpc-go none.
--go-clicobra bubbletea urfave-cli none.
--go-loggingzap zerolog slog logrus none.
--go-authcasbin jwt none.

GoBetterAuth is selected with the global --auth go-better-auth value. Go-native helpers use --go-auth.

Java

FlagValues
--java-web-frameworkspring-boot quarkus none.
--java-build-toolmaven gradle none.
--java-ormspring-data-jpa none.
--java-authspring-security none.
--java-librariesspring-actuator spring-validation flyway liquibase springdoc-openapi lombok mapstruct caffeine resilience4j spring-webflux spring-batch spring-kafka spring-mail spring-devtools micrometer-prometheus thymeleaf none.
--java-testing-librariesjunit5 mockito testcontainers assertj rest-assured wiremock awaitility archunit jqwik none.

Elixir

FlagValues
--elixir-web-frameworkphoenix phoenix-live-view none.
--elixir-ormecto ecto-sql none.
--elixir-authphx-gen-auth ueberauth guardian none.
--elixir-apirest absinthe none.
--elixir-realtimechannels presence pubsub live-view-streams none.
--elixir-jobsoban quantum none.
--elixir-validationecto-changesets nimble-options none.
--elixir-httpreq finch none.
--elixir-jsonjason none.
--elixir-emailswoosh none.
--elixir-cachingcachex nebulex none.
--elixir-observabilitytelemetry opentelemetry prom_ex none.
--elixir-testingex_unit mox bypass wallaby none.
--elixir-qualitycredo dialyxir sobelow none.
--elixir-deploydocker fly gigalixir mix-release 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-git

Create 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-compose

Compatibility

  • The CLI validates stack compatibility before generation.
  • TypeScript backend self is for fullstack frontends and pairs with runtime 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.