A premium, interactive CLI wizard for scaffolding modern full-stack React applications with a perfectly curated stack. Choose between Next.js or TanStack Start, pick your database, payments, and tooling — and start building within seconds.
- Framework Choice: Scaffold with Next.js (App Router) or TanStack Start (file-based routing, type-safe).
- Interactive Wizard: A beautiful CLI experience powered by Plop.js and Inquirer.
- World-Class Feedback: Engaged progress tracking with Ora spinners for a premium feel.
- Smart Scaffolding: Automatically orchestrates
create-next-appor@tanstack/cli createand library-specific initializations (likeshadcn initandbiome init). - AI Project Support: Generates CLAUDE.md (for Claude Code) or AGENTS.md (for Cursor/other AI assistants) tailored to your chosen stack.
- Auto
.env.example: Generates a.env.examplewith all required environment variables grouped by package. - Template System: Powered by Handlebars templates in the
templates/directory for highly customized project initialization. - Safety First: Project name validation and directory check to prevent accidental overwrites.
- Next.js (App Router, TypeScript, Tailwind CSS v4)
- TanStack Start (File-based routing, TypeScript, Tailwind CSS v4)
- State: Zustand
- Validation: Zod
- Data Fetching: TanStack React Query
- UI & Components: shadcn/ui, next-themes (Next.js) / tanstack-theme-kit (TanStack)
- Database (choose one): Supabase + Drizzle ORM, Convex (Cloud), or Convex (Self-hosted)
- Authentication: Better Auth
- Email: Resend
- Payments (choose one): Stripe or Polar.sh
- AI SDK: Vercel AI SDK & OpenRouter Provider support
- Linting & Formatting (choose one): ESLint + Prettier or Biome
- Testing (choose one): Vitest + React Testing Library, Playwright, or both
- UI Helpers: nuqs (Next.js only), React Hook Form, Day.js, Lodash
Launch the wizard without installation:
npx vibe-nowClone the repo to customize the logic or add your own favorite packages.
git clone https://github.com/mosster/vibe-now.git
cd vibe-now
npm installTo use the vibe-now command globally on your machine while developing:
npm linkNow you can run vibe-now from any directory!
The CLI uses a group-based configuration for easy maintenance. To add a new library:
- Open
lib/packages.js. - Find the relevant
PACKAGE_GROUPSentry or add a new one.
{
category: 'My New Category',
items: [
{
id: 'myPackage',
name: 'Cool Library',
install: ['cool-lib-package'],
default: false
}
]
}The wizard generates README.md, CLAUDE.md or AGENTS.md, and .env.example automatically. To add a new template:
- Create a Handlebars file in the
templates/directory (e.g.,templates/CONFIG.md.hbs). - Open
plopfile.js. - Locate the
// 3. Generate README and AGENTS filessection. - Add your new template read and write logic:
const myTmpl = fs.readFileSync(path.join(__dirname, 'templates/CONFIG.md.hbs'), 'utf8');
const renderedMy = plop.renderString(myTmpl, templateData);
fs.writeFileSync(path.join(projectPath, 'CONFIG.md'), renderedMy);Since most development on this CLI is done using AI assistants (Cursor, Claude, etc.), here are some proven prompts to extend the tool:
"I want to add
lucide-reactto the UI Helpers category. It should be enabled by default. Add it to the configuration inlib/packages.jsand suggest a good engineering guidance string for the AGENTS.md file."
"Add a new 'Database Driver' category under Database. It should be a single-choice list between 'Postgres (pg)' and 'SQLite (libsql)'. Map this correctly in the
providerConfigso it installs the right packages."
"Create a new template
templates/ENVIRONMENT.hbsthat lists required .env variables for the selected packages. Then, updateplopfile.jsto render this as.env.examplein the project root."
"Update the project name validation in
plopfile.jsto also check if the name is too long (over 100 characters) and return a custom error message."
When you're ready to release a new version:
- Update version:
npm version patch(or minor/major) - Login:
npm login - Publish:
npm publish --access public
MIT © Ed Moss