create-awesome-node-app
v0.8.0
Published
Command line tool to create Node apps with a lot of different templates and extensions.
Readme
🌐 Official Site · Templates · Extensions · Docs · GitHub
⚡ Get started in 30 seconds
npm create awesome-node-app@latest my-appThat'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.
| | CNA | Traditional scaffolders | | ----------------------------- | --- | ----------------------- | | Mix templates + addons | ✅ | ❌ | | Bring your own template URL | ✅ | ❌ | | Interactive and CI-friendly | ✅ | Partial | | AGENTS.md for AI assistants | ✅ | ❌ | | Extension ecosystem | ✅ | ❌ | | Node 22 native | ✅ | Varies |
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
| Category | Example Templates |
| ---------------- | ----------------------------------------------------------------- |
| 🖥 Frontend | react-vite-boilerplate — React 18 + Vite + TS + ESLint + Vitest |
| 🔧 Backend | nestjs-boilerplate — NestJS + TS + ESLint + Jest |
| 🌐 Full Stack | nextjs-starter — Next.js + SSR + TS + Prettier |
| 🗂 Monorepo | turborepo-boilerplate — Turborepo + Changesets + TS |
| 🧩 Web Extension | web-extension-react-boilerplate — Cross-browser + React |
| 🧪 UAT / Testing | webdriverio-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:
| Category | Examples | | --------------- | -------------------------------------------------------- | | 🎨 UI Libraries | Material UI, Tailwind CSS, component libraries | | 📊 State & Data | Jotai, tRPC, React Query, Zustand | | 🔧 Tooling | GitHub Actions workflows, changesets, release automation | | ✅ Code Quality | ESLint configs, Prettier, TypeScript strictness | | 🧪 Testing | Playwright, Cypress, Vitest setups | | 🛠 DX | Commit 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:
- Project name — set or confirm your app's name
- Package manager — npm, yarn, or pnpm
- Category — Frontend, Backend, Full Stack, Monorepo, Web Extension, UAT, or Custom
- Template — pick from curated options with descriptions and keywords
- Extensions — multi-select compatible addons grouped by purpose
- 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]| Flag | Description |
| ---------------------------- | -------------------------------------------------- |
| --interactive | Force interactive wizard (default outside CI) |
| --no-interactive | Disable 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-install | Generate files without installing dependencies |
| --use-yarn | Use yarn instead of npm |
| --use-pnpm | Use pnpm instead of npm |
| --list-templates | Print all templates grouped by category |
| --list-addons | Print addons (optionally filtered by --template) |
| -v, --verbose | Output resolved generation config as JSON |
| -i, --info | Print Node, npm, OS environment diagnostics |
| -V, --version | Print CLI version |
| -h, --help | Show 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
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.
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/templateThey're applied sequentially in the order you specify. If two addons touch the same file, later ones win — just like a git merge.
Yes. Use the turborepo-boilerplate template for a multi-package workspace with Turborepo, Changesets, and shared TypeScript/ESLint configs ready to go.
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.
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!
- Main repo: github.com/Create-Node-App/create-node-app
- Template & extension data: github.com/Create-Node-App/cna-templates
- Contributing guide: CONTRIBUTING.md
📜 License
MIT © Create Node App Contributors
🌐 create-awesome-node-app.vercel.app
Built with ♥ for developers who value speed, clarity, and composability.
