Create Awesome Node App

July 23, 2026 · View on GitHub

Create Node App monorepo hero banner

Create Awesome Node App

The open-source monorepo behind create-awesome-node-app: compose templates and addons into production-ready Node, Web, Full-Stack, Monorepo, and AI-ready projects.

One command. Any stack.

Awesome Tests Lint Typecheck Shellcheck MegaLinter npm Downloads License: MIT GitHub Sponsors AUR Homebrew Docker Smoke tests Node version npm version Discord

Package README · Official Site · Templates · Extensions · Contributing · Troubleshooting


What This Repo Contains

This repository contains the source code for create-awesome-node-app, the CLI that composes curated templates, addons, custom options, and AI-ready conventions into working projects.

Use this README if you want to understand the codebase, run it locally, contribute a fix, improve documentation, or work on the CLI packages. If you only want to generate an app, start with the package README.


Quick Start For Users

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

Run headlessly for scripts, CI, or platform automation:

npx create-awesome-node-app my-app \
  --template react-vite-boilerplate \
  --addons tailwind-css zustand github-setup \
  --no-interactive

More examples live in the CLI package README.


Repository Map

This is a Node 24+ monorepo managed with npm workspaces and Turborepo.

PathPurpose
packages/create-awesome-node-appMain CLI package, Commander entrypoint, interactive wizard, catalog listing, and package metadata.
packages/create-node-app-coreScaffolding engine: resolves templates/extensions, copies files, applies template options, installs dependencies, and initializes git.
packages/eslint-config-baseShared base ESLint flat config.
packages/eslint-config-tsTypeScript ESLint config extending the base preset.
packages/eslint-config-reactReact ESLint config extending the TypeScript preset.
packages/eslint-config-nextNext.js ESLint config extending the TypeScript preset.
packages/tsconfigShared TypeScript base configurations.
docs/Brand guidance, troubleshooting, and migration notes.
.github/workflowsCI for tests, lint, typecheck, shellcheck, markdown, and release automation.

Template and extension data is maintained in Create-Node-App/cna-templates. This repo consumes that catalog remotely.


Local Development

Requires Node.js 24.17.0 (the version pinned in .node-version; use fnm use to switch automatically):

git clone https://github.com/Create-Node-App/create-node-app.git
cd create-node-app
fnm use    # reads .node-version
npm install
npm run build

Run the local CLI after building:

./packages/create-awesome-node-app/index.js my-app

Run a non-interactive local smoke test:

./packages/create-awesome-node-app/index.js smoke-app \
  --template react-vite-boilerplate \
  --addons tailwind-css \
  --no-interactive \
  --no-install

Development Workflow

  1. Read the relevant package README before changing code.
  2. Make the smallest correct change.
  3. Add or update tests when behavior changes.
  4. Run the targeted package checks first.
  5. Run broader repo checks before opening a PR.
  6. Update docs when commands, behavior, package metadata, or contribution paths change.

For contribution requirements and project expectations, see CONTRIBUTING.md.


Common Tasks

Work On The CLI

npm run build -- --filter create-awesome-node-app
npm run test -- --filter create-awesome-node-app
npm run lint -- --filter create-awesome-node-app

Important files:

Work On The Scaffolding Core

npm run build -- --filter @create-node-app/core
npm run test -- --filter @create-node-app/core
npm run lint -- --filter @create-node-app/core

Important files:

Work On Templates Or Addons

Template and extension implementations live in Create-Node-App/cna-templates, not in this monorepo.

Use local file:// URLs when developing templates or extensions before publishing them to the catalog:

npx create-awesome-node-app local-app \
  --template file:///absolute/path/to/my-template \
  --addons file:///absolute/path/to/my-extension \
  --no-interactive

For a template inside a monorepo subdirectory:

npx create-awesome-node-app local-app \
  --template "file:///absolute/path/to/catalog-repo?subdir=templates/my-starter" \
  --no-interactive

Quality Checks

CommandWhat it validates
npm run buildBuilds all packages through Turborepo.
npm run testRuns package test tasks.
npm run test:allRuns all Node native test files under packages/**/tests.
npm run test:coverageBuilds and runs coverage with c8.
npm run lintRuns ESLint across packages.
npm run type-checkRuns TypeScript checks across packages.
npm run formatFormats supported files with Prettier.

Run targeted checks while iterating, then run the broader checks before requesting review.


CLI Examples For Debugging

Catalog Template By Slug

npx create-awesome-node-app my-react-app --template react-vite-boilerplate
npx create-awesome-node-app my-api --template nestjs-boilerplate
npx create-awesome-node-app my-next --template nextjs-starter

Template + Addons

npx create-awesome-node-app my-app \
  --template react-vite-boilerplate \
  --addons tailwind-css zustand

npx create-awesome-node-app my-api \
  --template nestjs-boilerplate \
  --addons drizzle-orm-postgresql openapi

Remote GitHub URLs

npx create-awesome-node-app my-app \
  --template https://github.com/Create-Node-App/cna-templates/tree/main/templates/react-vite-starter \
  --addons https://github.com/Create-Node-App/cna-templates/tree/main/extensions/react-query

Layer Extra Extensions With --extend

npx create-awesome-node-app layered-app \
  --template react-vite-boilerplate \
  --addons tailwind-css \
  --extend https://github.com/Create-Node-App/cna-templates/tree/main/extensions/react-hook-form

Inspect Runtime Configuration

npx create-awesome-node-app debug-app \
  --template react-vite-boilerplate \
  --verbose

Catalog Snapshot

The live catalog changes over time. Use the website or CLI listing commands for the current source of truth.

npx create-awesome-node-app --list-templates
npx create-awesome-node-app --template react-vite-boilerplate --list-addons

Common template slugs:

SlugDescription
react-vite-boilerplateReact + Vite + TypeScript starter.
nextjs-starterProduction-ready Next.js starter.
nextjs-saas-ai-starterMulti-tenant SaaS starter with AI, Auth.js, Drizzle, PostgreSQL, Tailwind, shadcn/ui, RBAC, and i18n.
nestjs-boilerplateScalable NestJS backend.
hono-starterLightweight Hono API starter.
astro-starterAstro site starter for content-focused apps.
remix-starterReact Router v7 / Remix-style full-stack starter.
turborepo-boilerplateMonorepo with Turborepo and Changesets.
web-extension-react-boilerplateReact WebExtension with Vite.
webdriverio-boilerplateWebdriverIO E2E testing setup.

Common addon slugs:

CategoryExamples
UItailwind-css, material-ui, shadcn-ui, nextjs-shadcn
State and datazustand, jotai, tanstack-react-query, apollo-client
Backend and DBdrizzle-orm-postgresql, drizzle-orm-sqlite, mongoose-orm-mongodb
Testingreact-playwright, vitest-react-testing-library, jest-react-testing-library
Toolinggithub-setup, husky-lint-staged, development-container, storybook

Release And Publishing Notes

Packages are published from this monorepo. Before publishing, make sure package-level READMEs, changelogs, builds, tests, and package metadata are aligned.

Useful package docs:


Contributing

Contributions are welcome across docs, CLI behavior, tests, package configuration, shared configs, and developer experience.

Good first steps:

When opening a PR, include what changed, how you validated it, and whether docs/package metadata were updated.


License

MIT © Create Node App Contributors


create-awesome-node-app.vercel.app

Build starters quickly. Understand the repo quickly. Contribute confidently.

👥 Contributors

Contributors

Made with contributors-img.