NestJS + Drizzle + OpenAPI

March 9, 2026 ยท View on GitHub

๐ŸŒŸ 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:

PackageDescription
create-awesome-node-appThe main CLI โ€” Commander-based, interactive + CI-friendly
@create-node-app/coreCore generation logic (template loading, git, package merge)
@create-node-app/eslint-config*Shared ESLint presets (base, TypeScript, React, Next.js)
tsconfigShared 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)

SlugDescription
react-vite-boilerplateReact + Vite + TypeScript + Router
nextjs-starterProduction-ready Next.js starter
nestjs-boilerplateScalable NestJS backend
turborepo-boilerplateMonorepo with Turborepo + Changesets
web-extension-react-boilerplateReact WebExtension with Vite
webdriverio-boilerplateWebdriverIO E2E testing setup

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


SlugPurpose
tailwind-cssTailwind CSS utility-first styling
zustandLightweight state management
react-queryAsync server state (TanStack Query)
shadcn-uiRadix + Tailwind component primitives
material-uiMUI component library
react-i18nInternationalization setup

๐Ÿ“‹ Available Scripts

npm run <script>Description
testRun unit tests with Node's native test runner
lintLint the project with ESLint
lint:fixLint and auto-fix correctable errors
formatFormat with Prettier
type-checkTypeScript type checking across all packages
buildBuild 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!


๐ŸŒ create-awesome-node-app.vercel.app