Ship the stack. Skip the setup.

An interactive CLI that scaffolds a Vite + React + TypeScript app — with Tailwind CSS v4, shadcn/ui, React Compiler, icons, routing, data fetching, a linter and git — all wired and ready to run.

zsh — 80×24

Everything wired.
Nothing to figure out.

The output is a stock Vite project with the batteries already installed — you run pnpm dev and start shipping.

Interactive prompts

Eleven questions, one at a time, clearly asked before anything runs. TypeScript is non-negotiable.

Zero-config output

Tailwind v4, shadcn/ui, React Compiler — all wired through vite.config.ts the moment you say yes.

Flags for everything

Every prompt has a flag — and a single flag pins the whole run: no questions, defaults fill the gaps. Force it with --yes.

Scaffold in place

Run create-vite-reactstack . to merge into the current directory. Nothing is ever deleted.

Git-ready out of the box

Opt in to a fresh repository with an initial commit — version-controlled from second one.

Your tools, detected

npm, pnpm, yarn or bun — sniffed from how you invoked the CLI. Pin it yourself with --pm.

Ten decisions.
Every one optional.

Toggle options and pick from choices to build your stack — the command updates in real time. One flag pins the whole run, no questions asked.

Your stack
$

Scriptable from the first run.

Every prompt can be answered with a flag — and any option flag makes the run non-interactive: flags win, the rest fall back to defaults. --yes forces defaults for everything.

FlagDescription
-y, --yes Use defaults for every option not set by a flag — skips all prompts.
--compiler --no-compiler Enable or disable React Compiler.
--tailwind --no-tailwind Enable or disable Tailwind CSS v4.
--shadcn --no-shadcn Enable or disable shadcn/ui (requires Tailwind).
--router --no-router Add or skip React Router.
--query --no-query Add or skip TanStack Query.
--linter <name> Choose a linter: biome · eslint · oxlint
--icons <name> Icon library: none · lucide · phosphor · heroicons
--git --no-git Initialize or skip the git repository.
--pm <name> Package manager: npm · pnpm · yarn · bun (alias --package-manager)
--skip-install Scaffold without installing dependencies.
-h, --help Show the help message.
-v, --version Show the version.

// Examples

$ npx create-vite-reactstack my-app --yes defaults, no questions
$ npx create-vite-reactstack my-app --compiler --linter eslint --no-git pinned, no questions
$ npx create-vite-reactstack . --yes --pm pnpm in place

Ready when you are.

requires Node ^20.19.0 or >=22.12.0