{"_id":"@anurag_pandey/mern-app-cli","name":"@anurag_pandey/mern-app-cli","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@anurag_pandey/mern-app-cli","version":"1.0.0","description":"Generate a frontend, backend, or full-stack project boilerplate from a few prompts","type":"module","bin":{"mern-app-cli":"cli/index.js"},"keywords":["cli","generator","boilerplate","scaffold","mern","react","express","mongodb","postgres","vite","typescript"],"author":{"name":"Anurag"},"license":"MIT","engines":{"node":">=18"},"dependencies":{"chalk":"^5.3.0","commander":"^12.0.0","fs-extra":"^11.2.0","inquirer":"^14.0.2"},"gitHead":"b213a70e92eee95d4138dc9c693ed09e16a48f96","_id":"@anurag_pandey/mern-app-cli@1.0.0","_nodeVersion":"24.11.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-Rjt2QzxDWyRWCv4Ch09BbtBMOnc5tckh4U93YI4dh9yEgrVrYmR1+3zE6IdVB+xwpsl4/9LhM7yP0IWR/GPX+Q==","shasum":"84b7add146e224ad912f38666cddf21f09825228","tarball":"https://registry.npmjs.org/@anurag_pandey/mern-app-cli/-/mern-app-cli-1.0.0.tgz","fileCount":19,"unpackedSize":56813,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCEk4txwPNgS+edynBfqeaWpbuvMjdbXcZGyJNCVAYPhAIhANNpYSA9J0ieP0EVLzpzktQAoNYVTYUxwpa03B5WFaj5"}]},"_npmUser":{"name":"anurag_pandey","email":"anuragpandey2202@gmail.com"},"directories":{},"maintainers":[{"name":"anurag_pandey","email":"anuragpandey2202@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mern-app-cli_1.0.0_1786370654686_0.5909607833573578"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-10T14:04:14.236Z","1.0.0":"2026-08-10T14:04:14.873Z","modified":"2026-08-10T14:04:15.300Z"},"maintainers":[{"name":"anurag_pandey","email":"anuragpandey2202@gmail.com"}],"description":"Generate a frontend, backend, or full-stack project boilerplate from a few prompts","keywords":["cli","generator","boilerplate","scaffold","mern","react","express","mongodb","postgres","vite","typescript"],"author":{"name":"Anurag"},"license":"MIT","readme":"<div align=\"center\">\n  <h1>🚀 mern-app-cli</h1>\n  <p><strong>Generate a frontend, backend, or full-stack project boilerplate from a few prompts</strong></p>\n</div>\n\n<br />\n\nA CLI that eliminates the repetitive setup work when starting a new project — `npm init`, wiring up Express, configuring Vite, installing Tailwind, writing error-handling middleware, creating `.env` files — by generating it for you based on a short decision tree.\n\n---\n\n## Usage\n\n```bash\nnpx mern-app-cli my-project\n```\n\nYou'll be asked one root question first:\n\n```\nWhat do you want to create?\n\n❯ Frontend only\n  Backend only\n  Frontend + Backend\n```\n\nEverything after that is dynamic — you only get asked questions relevant to what you picked.\n\n### Frontend only\n\nReact + Vite, JavaScript or TypeScript, Tailwind CSS or Plain CSS, optional React Router, optional Redux Toolkit.\n\n```\npublic/\nsrc/\n├── components/\n├── pages/        (if React Router)\n├── layouts/       (if React Router)\n├── hooks/\n├── services/\n├── store/         (if Redux Toolkit)\n├── utils/\n├── assets/\n├── App.jsx\n└── main.jsx\n```\n\n### Backend only\n\nExpress, JavaScript or TypeScript, MongoDB (+ optional Mongoose) or PostgreSQL (+ optional Prisma) or none, optional JWT auth boilerplate, optional Zod/Joi validation, optional Redis.\n\n```\nsrc/\n├── config/\n│   ├── db.js       (if a database was selected)\n│   └── env.js\n├── controllers/\n├── services/\n├── repositories/\n├── models/         (if a database was selected)\n├── routes/\n├── middleware/\n│   ├── error.middleware.js\n│   └── auth.middleware.js   (if JWT auth was selected)\n├── validators/      (if Zod/Joi was selected)\n├── utils/\n├── app.js\n└── server.js\n```\n\n`GET /api/health` → `{ \"success\": true, \"message\": \"Server is running\" }`\n\n### Frontend + Backend\n\nAsks both sets of questions, generates `frontend/` and `backend/` as independent projects, and writes a root `package.json` so `npm run dev` starts both together via `concurrently`.\n\n---\n\n## Flags\n\n```bash\nnpx mern-app-cli my-project --type backend -y\n```\n\n| Flag | What it does |\n|---|---|\n| `--type <type>` | `frontend`, `backend`, or `fullstack` — skips the root prompt |\n| `-y, --yes` | Skip remaining prompts, use sensible defaults |\n| `--no-install` | Skip automatic `npm install` |\n\n---\n\n## What every generated project gets automatically\n\n- Correct npm scripts (`dev`, `build`/`start` as appropriate)\n- `.env.example` (backend also validates required env vars at startup — logs a clear error and exits if one's missing, rather than failing mysteriously later)\n- `.gitignore`\n- A `README.md` describing exactly what was generated\n- Centralized error handling + a 404 handler (backend)\n- Graceful shutdown on SIGINT/SIGTERM (backend)\n- Dependency installation, skipped automatically if you pass `--no-install`\n- Optional `git init` + first commit\n\nThe backend never crashes on startup just because a database isn't reachable yet (e.g. MongoDB not running locally) — it logs the connection failure and keeps serving requests, so `npm run dev` always gets you a running server to look at.\n\n## Requirements\n\n- Node.js >= 18\n- npm\n- Git (only if you choose to initialize a repository)\n\n## Notes\n\n- JWT auth boilerplate uses `bcryptjs` rather than `bcrypt` — `bcrypt` is a native module that needs a C++ build toolchain to install and isn't guaranteed to build on every machine; `bcryptjs` is pure JS with the same API.\n- PostgreSQL + Prisma runs `prisma generate` automatically after install (via a `postinstall` script). If your network blocks Prisma's engine downloads, that step will fail loudly but the rest of the project is still usable — retry `npx prisma generate` once you have access.\n- Backend + frontend are independent npm projects even in full-stack mode (no workspaces) — `npm install` runs once at the root (for `concurrently`) and once in each of `frontend/` and `backend/`.\n\n## Roadmap\n\nDocker support, automated testing scaffolding (Jest/Vitest + Supertest), ESLint/Prettier, and the `doctor`/`add`/`update` commands for modifying existing generated projects are planned next.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-c59224aee669e0c7e47647bc73d4e440"}