README.md

March 16, 2026 · View on GitHub

🌟 Create Awesome Node App

The scaffolding CLI that gets out of your way.
Pick a production-grade template, layer powerful addons, and ship a fully wired project in under a minute.

npm Downloads Stars Commit Activity Bundle Size Awesome License: MIT

Tests Lint Typecheck Shellcheck Markdown


🌐 Official Site · Templates · Extensions · Docs · GitHub


⚡ Get started in 30 seconds

npm create awesome-node-app@latest my-app

That's it. The interactive wizard walks you through picking a template, addons, and package manager — you're done before your coffee gets cold.

Want to go fully non-interactive? Specify everything up front:

npx create-awesome-node-app my-app \
  --template react-vite-boilerplate \
  --addons material-ui github-setup \
  --no-interactive

✨ Why Create Awesome Node App?

Most scaffolding tools lock you into a single opinionated stack. CNA is different — it's a composable scaffolding engine built around the idea that your stack should be yours.

CNATraditional scaffolders
Mix templates + addons
Bring your own template URL
Interactive and CI-friendlyPartial
AGENTS.md for AI assistants
Extension ecosystem
Node 22 nativeVaries

One CLI. Any stack.


🚀 What you get out of the box

Every project bootstrapped with CNA includes:

  • 🧱 Production-ready structure — no empty folders or placeholder files
  • 🔷 TypeScript — strict mode, ready to go
  • 🧹 ESLint + Prettier — framework-specific rules pre-configured
  • 🧪 Testing setup — vitest, jest, playwright, or cypress (depends on template)
  • 🤖 AGENTS.md — a contract file so your AI coding assistant understands your project conventions
  • 🔄 GitHub Actions workflows — CI, linting, and releases via addons
  • 📦 Your choice of package manager — npm, yarn, or pnpm

🌐 Explore the Catalog

Visit create-awesome-node-app.vercel.app to visually browse the full ecosystem:

  • 🗂 Templates organized by category (Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT)
  • 🧩 Extensions filterable by compatibility
  • 📖 Guides on how the generation pipeline works

Or discover everything from your terminal:

# List all available templates
create-awesome-node-app --list-templates

# List addons compatible with a specific template
create-awesome-node-app --template react-vite-boilerplate --list-addons

🧱 Template Ecosystem

CategoryExample Templates
🖥 Frontendreact-vite-boilerplate — React 18 + Vite + TS + ESLint + Vitest
🔧 Backendnestjs-boilerplate — NestJS + TS + ESLint + Jest
🌐 Full Stacknextjs-starter — Next.js + SSR + TS + Prettier
🗂 Monorepoturborepo-boilerplate — Turborepo + Changesets + TS
🧩 Web Extensionweb-extension-react-boilerplate — Cross-browser + React
🧪 UAT / Testingwebdriverio-boilerplate — E2E automation scaffold

→ Full catalog at create-awesome-node-app.vercel.app/templates


🧩 Addons / Extensions

Think of addons as lego bricks — snap them onto any template to add exactly what you need:

CategoryExamples
🎨 UI LibrariesMaterial UI, Tailwind CSS, component libraries
📊 State & DataJotai, tRPC, React Query, Zustand
🔧 ToolingGitHub Actions workflows, changesets, release automation
✅ Code QualityESLint configs, Prettier, TypeScript strictness
🧪 TestingPlaywright, Cypress, Vitest setups
🛠 DXCommit linting, conventional commits, environment setup

Add any extension by slug or URL:

npx create-awesome-node-app my-app \
  --template react-vite-boilerplate \
  --addons material-ui github-setup commitlint \
  --extend https://github.com/your-org/your-custom-extension

🤖 AI-Ready with AGENTS.md

CNA generates an AGENTS.md file in supported templates — a structured document that tells AI coding assistants (GitHub Copilot, Cursor, Claude, etc.) about:

  • Project purpose and conventions
  • Directory layout and naming rules
  • Scripts and how to use them
  • Testing strategy and linting rules

This dramatically improves AI suggestion quality and speeds up onboarding for hybrid human+AI teams.

→ Learn more at create-awesome-node-app.vercel.app/docs/agents-md


🧪 Interactive Mode Walkthrough

When you run CNA without flags (or with --interactive), the wizard guides you through:

  1. Project name — set or confirm your app's name
  2. Package manager — npm, yarn, or pnpm
  3. Category — Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT, or Custom
  4. Template — pick from curated options with descriptions and keywords
  5. Extensions — multi-select compatible addons grouped by purpose
  6. Custom extensions — optionally extend with any additional URLs

The CLI composes a templatesOrExtensions pipeline and generates your workspace in one shot.


⚙️ Requirements

  • Node.js >= 22 (enforced at startup — no silent failures)
  • npm >= 7, yarn, or pnpm

We recommend fnm for fast Node version switching:

fnm use 22
npm create awesome-node-app@latest my-app

🔍 CLI Reference

Usage: create-awesome-node-app [project-directory] [options]
FlagDescription
--interactiveForce interactive wizard (default outside CI)
--no-interactiveDisable wizard — use flags only
-t, --template <slug|url>Template slug from catalog or remote GitHub URL
--addons [slugs...]Space-separated addon slugs or URLs
--extend [urls...]Extra extension URLs to layer on top
--no-installGenerate files without installing dependencies
--use-yarnUse yarn instead of npm
--use-pnpmUse pnpm instead of npm
--list-templatesPrint all templates grouped by category
--list-addonsPrint addons (optionally filtered by --template)
-v, --verboseOutput resolved generation config as JSON
-i, --infoPrint Node, npm, OS environment diagnostics
-V, --versionPrint CLI version
-h, --helpShow help

🛠 Programmatic Usage

Need to integrate CNA into your own tooling? The core is importable:

import { createNodeApp, getTemplateDirPath } from "@create-node-app/core";

Note: The programmatic API is experimental and subject to change. Prefer the CLI for stable usage.


❓ FAQ

Why another scaffolder?

Because most CLIs lock you into one stack. CNA lets you compose your stack: pick a curated template, add modular extensions, and bring your own blueprints via URL. No vendor lock-in.

Can I use my own template?

Yes. Pass a GitHub URL (with optional subdirectory path) via --template:

npx create-awesome-node-app my-app \
  --template https://github.com/your-org/your-repo/tree/main/template
Are addons order-sensitive?

They're applied sequentially in the order you specify. If two addons touch the same file, later ones win — just like a git merge.

Does it support monorepos?

Yes. Use the turborepo-boilerplate template for a multi-package workspace with Turborepo, Changesets, and shared TypeScript/ESLint configs ready to go.

What about CI environments?

CNA auto-detects CI and disables interactive mode. All options can be passed via flags for fully scripted generation — perfect for bootstrapping in automation pipelines.

Is Node 22 really required?

Yes — we target the latest LTS runtime for native ESM support, performance, and modern language features. Use fnm or nvm to switch quickly if needed.


🗺 Roadmap

  • Remix and SvelteKit template variants
  • Additional testing packs (contract, performance, load testing)
  • Template version pinning and diff-based upgrade paths
  • Rich template analytics and usage metrics

→ Track progress in Issues and Discussions.


🤝 Contributing

Contributions are what make CNA better — templates, addons, bug fixes, docs, ideas. All welcome!


📜 License

MIT © Create Node App Contributors


🌐 create-awesome-node-app.vercel.app

Built with ♥ for developers who value speed, clarity, and composability.