create-react-nova
v1.2.14
Published
Zero-config CLI to scaffold a modern Vite + React (TS/JS) project with Tailwind CSS v4, Bootstrap 5, or none, plus optional extras: Framer Motion, React Hook Form, React Router, Redux Toolkit, Zustand, Axios – and auto-cleaned boilerplate.
Downloads
201
Maintainers
Readme
Author: Hadi Baydoun
Interactive CLI that scaffolds a Vite + React app (JavaScript or TypeScript) with optional Tailwind CSS v4, Bootstrap 5, or no CSS framework — plus optional tooling, fonts, i18n, linting, and a cleaned starter tree.
npm package name: create-react-nova. This repository lives under the create-reactnova workspace.
What it does (end-to-end)
- Asks for a project name (required; placeholder
my-app). - If the target folder already exists and is not empty, asks to delete everything and continue or cancel.
- If
~/.create-react-nova-config.jsonexists, offers Continue with previous setup or Start fresh (reuses saved choices except you still pick an available package manager). - Runs
npm/yarn/pnpm/buncreate vite@latest(or the equivalent for each tool) with templatereact-tsorreact. - Installs root dependencies, then optional packages, configures CSS, fonts, ESLint/Prettier, i18n, TypeScript path alias, clears
public/andsrc/assets/, replacesApp/index.cssfrom templates, removessrc/App.css. - Optionally
git init. - Saves the full interactive configuration to
~/.create-react-nova-config.jsonfor the next run. - Asks whether to start the dev server now or print next steps (
cd+run dev).
Features
- Vite + React with official
reactorreact-tstemplates - Package managers: npm, yarn, pnpm, bun (with PATH check and re-pick if missing)
- Language: TypeScript or JavaScript
- CSS: Tailwind v4 (
tailwindcss,@tailwindcss/vite), Bootstrap (bootstrap,react-bootstrap), or none (minimalindex.csstemplate) - Default font: system stack or Google Font presets (see below) — injected in
index.html/ Tailwind@theme/bodyas appropriate - ESLint + Prettier: flat
eslint.config.js,prettier.config.mjs,.prettierignore, scriptslint,lint:fix,format,format:check - TypeScript path alias:
@/*→src/*intsconfig.app.jsonand Vite when needed; note shown after setup - Optional libraries: Framer Motion, React Hook Form (+ Zod, optional
@hookform/resolvers), React Router, Redux Toolkit or Zustand, Axios, react-i18next (+ i18next, browser language detector) - Git: optional repository initialization
- Config reuse: home-directory JSON cache for faster repeat scaffolds
Quick start
Using npm:
npm create react-nova@latestUsing bun:
bun create react-novaUsing pnpm:
pnpm create react-novaUsing yarn:
yarn create react-novaIf installed globally:
create-react-novaEvery CLI option (prompts)
These are all choices the CLI collects (order matches a fresh run, not “reuse previous config”).
| Step | Question / behavior | Options or notes |
| ---- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Project name | Free text; validated non-empty |
| 2 | Existing non-empty folder | Delete all files and continue · Cancel setup |
| 3 | Previous config file present | Continue with previous setup · Start fresh (new setup) |
| 4 | Package manager | npm · yarn · pnpm · bun |
| 5 | Language | TypeScript · JavaScript |
| 6 | Default font | System UI · Inter · DM Sans · Outfit · Source Sans 3 · Manrope · Plus Jakarta Sans · Space Grotesk · Nunito · Montserrat · Work Sans · Lexend · Rubik |
| 7 | ESLint + Prettier | Yes / No — shared flat config + eslint-config-prettier |
| 8 | CSS framework | Tailwind CSS · Bootstrap · None |
| 9 | Framer Motion | Yes / No |
| 10 | React Hook Form | Yes / No |
| 11 | @hookform/resolvers (Zod ↔ RHF) | Yes / No — only if React Hook Form is yes; Zod is installed with RHF |
| 12 | react-router | Yes / No |
| 13 | State management | None · Redux Toolkit (@reduxjs/toolkit, react-redux) · Zustand |
| 14 | axios | Yes / No |
| 15 | i18n (react-i18next) | Yes / No — adds i18next, react-i18next, i18next-browser-languagedetector, sample src/locales/en/translation.json, src/i18n.*, wires main + App |
| 16 | Initialize git repository | Yes / No |
| Post | Start development server? | Yes (<pkg> run dev) · No (prints cd + run dev) |
Defaults on a fresh run (high level): TypeScript unless you pick JS; default font System UI; ESLint + Prettier on; CSS Tailwind; Framer Motion off; React Hook Form off; react-router on; state None; axios on; i18n off; git off; start dev server prompt defaults to Yes.
Saved config path: ~/.create-react-nova-config.json (Windows: under your user profile, same filename).
What gets installed (by choice)
- Tailwind:
tailwindcss,@tailwindcss/vite; replacesvite.configfrom template;src/index.cssfrom Tailwind template - Bootstrap:
bootstrap,react-bootstrap; importsbootstrap/dist/css/bootstrap.min.cssinmain; clears defaultindex.csscontent - None:
index.cssfrom minimal template + optionalbodyfont rule - Framer Motion:
framer-motion - React Hook Form:
react-hook-form,zod; optionally@hookform/resolvers - Router:
react-router-dom - Redux:
@reduxjs/toolkit,react-redux - Zustand:
zustand - Axios:
axios - i18n:
i18next,react-i18next,i18next-browser-languagedetector - Always ensures
reactandreact-domare present among additional installs
Cleanup and templates
public/— all contents removedsrc/assets/— all contents removedsrc/App.css— deletedsrc/App.jsx/App.tsx— replaced from framework-specific templates (App.tailwind,App.bootstrap, or plainApp)- Tailwind:
App+index.cssaligned with v4 + optional font@themeblock
Vite create commands (per package manager)
Internally the CLI runs the appropriate variant of create Vite with --template react or react-ts (e.g. npm: npm create vite@latest <name> -- --template <template>; yarn pnpm bun each use their documented create/vite invocation).
Documentation links
- Vite
- React
- Tailwind CSS v4
- Bootstrap
- React Router
- Redux Toolkit
- Zustand
- Axios
- Framer Motion
- React Hook Form
- Zod
- react-i18next
Tech stack of this CLI
- Runtime: Node (ES modules)
- Dependencies:
@clack/prompts,chalk,execa
License
MIT
create-react-nova — built by Hadi Baydoun.
