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.
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.

๐ 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!
- Check out the contribution guidelines for how to get started
- Browse open issues for things to work on
- For template and extension contributions, see cna-templates