@exzi31/create-project-kit
v1.1.1
Published
A powerful CLI to scaffold production-ready full-stack projects with NestJS backend (PostgreSQL/MongoDB, Prisma/Mongoose, JWT auth, RBAC) and optional React/Next.js dashboard & frontend — all in seconds.
Downloads
628
Maintainers
Readme
@exzi31/create-project-kit
Scaffold production-ready full-stack projects in seconds.
create-project-kit is a batteries-included CLI that generates a complete, opinionated project structure — NestJS backend with authentication & RBAC, optional React/Next.js dashboard, and a public-facing frontend — all wired up and ready to run.
No boilerplate copy-pasting. No configuration guessing. Just answer a few prompts (or pass flags) and get a clean, working codebase.
✨ What you get
| Layer | Stack | |---|---| | Backend | NestJS · TypeScript / JavaScript · REST API | | Database | PostgreSQL (Prisma) · MongoDB (Prisma or Mongoose) | | Auth | JWT access + refresh tokens · Bcrypt hashing | | RBAC | Role-based access control out of the box | | Dashboard | Vite + React · Tailwind CSS · shadcn/ui (optional) | | Frontend | Vite React · React · Next.js · Tailwind / shadcn/ui (optional) | | Package managers | npm · pnpm · yarn | | Language | TypeScript or JavaScript everywhere |
🚀 Quick start
npx @exzi31/create-project-kit@latestThe interactive CLI will guide you through all choices. No flags required.
⚡ Non-interactive (CI / scripts)
Full example with every option spelled out:
npx @exzi31/create-project-kit@latest my-app \
--backend-dir backend \
--language ts \
--database postgres \
--dashboard \
--dashboard-dir dashboard \
--dashboard-ui tailwind-shadcn \
--frontend \
--frontend-dir frontend \
--frontend-framework nextjs \
--frontend-language ts \
--frontend-ui tailwind-shadcn \
--package-manager pnpm \
--yesMongoDB variants:
# MongoDB + Prisma
npx @exzi31/create-project-kit@latest my-app --database mongo --mongo-setup prisma
# MongoDB + Mongoose
npx @exzi31/create-project-kit@latest my-app --database mongo --mongo-setup mongoose --language tsIf you prefer to invoke the binary by name:
npx -p @exzi31/create-project-kit@latest create-project-kit🛠️ All supported options
Backend
| Flag | Values | Default |
|---|---|---|
| --backend-dir <name> | any directory name | backend |
| --language ts\|js | ts, js | prompted |
| --database postgres\|mongo | postgres, mongo | prompted |
| --mongo-setup prisma\|mongoose | prisma, mongoose | prompted |
Dashboard (optional admin UI)
| Flag | Values |
|---|---|
| --dashboard / --no-dashboard | include or skip |
| --dashboard-dir <name> | directory name |
| --dashboard-language ts\|js | TypeScript or JavaScript |
| --dashboard-ui tailwind\|tailwind-shadcn | UI library preset |
Frontend (optional public-facing UI)
| Flag | Values |
|---|---|
| --frontend / --no-frontend | include or skip |
| --frontend-dir <name> | directory name |
| --frontend-framework vite-react\|react\|nextjs | framework choice |
| --frontend-language ts\|js | TypeScript or JavaScript |
| --frontend-ui tailwind\|tailwind-shadcn | UI library preset |
Misc
| Flag | Description |
|---|---|
| --package-manager npm\|pnpm\|yarn | package manager to use |
| --skip-install | scaffold only, skip npm install |
| --yes | accept all defaults, non-interactive |
Tip:
--language ts|jsis a shorthand that sets both--backend-languageand--dashboard-languageat once.
📁 Package layout
src/cli/
├── index.ts # CLI entry: arg parsing, prompt orchestration
├── prompts.ts # All @clack/prompts interactive questions
├── generator.ts # File copy, overlay merging, post-processing
├── template-manifest.ts # Maps user choices → template files
├── overlays.ts # Language / database overlay helpers
├── context.ts # Shared context types
├── validations.ts # Input validation rules
└── post-steps.ts # Post-scaffold steps (install, git init, etc.)
templates/
├── backend/ # Base NestJS template + language/database overlays
├── dashboard/ # Optional dashboard templates + UI overlays
└── frontend/ # Frontend templates (Vite React, Next.js)
bin/
└── create-project-kit.js # Published binary entrypoint🧑💻 Local development
npm install
npm run build # compile TypeScript → dist/
npm run dev # run CLI from source via tsxVerify everything works end-to-end:
npm run build
npm test # runs smoke-matrix across all option combinations
npm pack # inspect the tarball before publishing📦 Publishing
To publish under your own scope:
- Update
nameinpackage.json, e.g.@my-org/create-project-kit. - Build and verify:
npm install && npm run build && npm test && npm pack- Log in and publish:
npm login
npm publish --access publicFor CI publishing, use an npm automation token with publish permissions.
License
MIT © exzi31
