Skip to content

Latest commit

 

History

History
231 lines (166 loc) · 8.87 KB

File metadata and controls

231 lines (166 loc) · 8.87 KB

🌟 Create Awesome Node App

A composable scaffolding CLI for Node, Web, Full-Stack, and Monorepo projects.
Pick a template. Layer addons. Ship production-ready code in minutes.

Awesome Tests Lint Typecheck Shellcheck Markdown npm npm License: MIT Coverage

Changelog · Contributing · 🌐 Official Site


This repository contains the source code for the create-awesome-node-app CLI — a composable scaffolding tool that generates production-grade Node/Web/Full-Stack projects by combining curated templates with modular extensions.

End users: See the package README or visit create-awesome-node-app.vercel.app for the full feature tour, template catalog, and docs.

cna demo


🗂 Repository Structure

This is a monorepo managed with npm workspaces and Turborepo:

Package Description
create-awesome-node-app The main CLI — Commander-based, interactive + CI-friendly
@create-node-app/core Core generation logic (template loading, git, package merge)
@create-node-app/eslint-config* Shared ESLint presets (base, TypeScript, React, Next.js)
tsconfig Shared TypeScript base configurations

🚀 Quick Start (for users)

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

Or non-interactive:

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

→ Full documentation at create-awesome-node-app.vercel.app


🛠 Running Locally (for contributors)

# Clone the repository
git clone https://github.com/Create-Node-App/create-node-app.git
cd create-node-app

# Set up Node version and install dependencies
fnm use
npm install

# Build the CLI
npm run build -- --filter create-awesome-node-app

# Run it locally
./packages/create-awesome-node-app/index.js my-app

Usage Examples

Catalog template by slug

# React + Vite
npx create-awesome-node-app my-react-app -t react-vite-boilerplate

# NestJS API
npx create-awesome-node-app my-api -t nestjs-boilerplate

# Next.js full-stack
npx create-awesome-node-app my-next -t nextjs-starter

Template + addons

# React + Tailwind + Zustand
npx create-awesome-node-app my-app \
  -t react-vite-boilerplate \
  --addons tailwind-css zustand

# NestJS + Drizzle + OpenAPI
npx create-awesome-node-app my-api \
  -t nestjs-boilerplate \
  --addons drizzle-orm-postgresql openapi

Remote GitHub URLs

npx create-awesome-node-app my-app \
  -t 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

Local file:// templates (useful when developing new templates)

# Basic local template
npx create-awesome-node-app local-app \
  -t file:///absolute/path/to/my-template

# Local template with subdirectory
npx create-awesome-node-app local-app \
  -t "file:///absolute/path/to/monorepo?subdir=templates/my-starter"

# Combine local template + local extension
npx create-awesome-node-app local-app \
  -t file:///absolute/path/to/my-template \
  --addons file:///absolute/path/to/my-extension

Layer extra extensions with --extend

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

Debug with --verbose

npx create-awesome-node-app debug-app -t react-vite-boilerplate --verbose

Template Catalog Reference (Excerpt)

Slug Description
react-vite-boilerplate React + Vite + TypeScript + Router
nextjs-starter Production-ready Next.js starter
nestjs-boilerplate Scalable NestJS backend
turborepo-boilerplate Monorepo with Turborepo + Changesets
web-extension-react-boilerplate React WebExtension with Vite
webdriverio-boilerplate WebdriverIO E2E testing setup

Full catalog: create-awesome-node-app.vercel.app/templates


Popular Extensions (React)

Slug Purpose
tailwind-css Tailwind CSS utility-first styling
zustand Lightweight state management
react-query Async server state (TanStack Query)
shadcn-ui Radix + Tailwind component primitives
material-ui MUI component library
react-i18n Internationalization setup

📋 Available Scripts

npm run <script> Description
test Run unit tests with Node's native test runner
lint Lint the project with ESLint
lint:fix Lint and auto-fix correctable errors
format Format with Prettier
type-check TypeScript type checking across all packages
build Build all packages with Turborepo

Coverage badge is generated locally via c8 + lcov when running npm run test:coverage.


🤝 Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions are truly appreciated!