notsc is a highly customizable boilerplate generator for quickly scaffolding Node.js + TypeScript API projects. It supports optional integrations like database setup, Swagger/OpenAPI documentation, Redis, Jest for testing, and Docker—so you can start building with the tools you need, right out of the box.
- ✅ TypeScript support
- 🧱 Modular architecture (controllers, routes, services)
- 📦 Optional features: database, Swagger, Redis, Jest, Docker
- 🎯 ESLint + Prettier setup
- 🔁 Nodemon for development
- 🧪 Jest for testing (optional)
- 🌐 Swagger/OpenAPI setup (optional)
- 🐳 Dockerfile & Dockerignore (optional)
- 📂 Environment variable management
Using the Published Package
| --version | Show current version |
| --no-git | Skip Git initialization |
| --help | Show help and usage guide |
If no app name is provided, you'll be prompted to enter one.
my-app/ ├── src/ │ ├── app.ts # Express app configuration │ ├── server.ts # HTTP server setup & entry point │ ├── config/ # Database & Redis configs │ ├── controllers/ # Route controllers │ ├── middlewares/ # Error handling & logging │ ├── routes/ # Express routes │ ├── services/ # Business logic │ ├── types/ # TypeScript types │ └── utils/ # Utilities ├── .env.example # Environment variables ├── .eslintrc.js # ESLint config ├── .prettierrc # Prettier config ├── jest.config.js # Jest config (if selected) ├── nodemon.json # Development config ├── tsconfig.json # TypeScript config ├── Dockerfile # Docker config (if selected) ├── docker-compose.yml # Docker compose (if selected) └── README.md # Project documentationOnly selected features (e.g., Redis, Swagger, Jest, Docker) will be included in your project.
You'll be prompted to choose:
- Project name - Name for your new API project
- Database setup - Include MongoDB configuration (optional)
- Swagger support - Include OpenAPI documentation (optional)
- Redis setup - Include Redis configuration (optional)
- Jest testing - Include testing setup with Jest (optional)
- Docker setup - Include Docker configuration (optional)
- Package manager - Choose between npm, yarn, or pnpm
🛠 Getting Started with Generated Project
Once setup is complete:
Feel free to extend the boilerplate with:
- Authentication (JWT/OAuth)
- Request validation (Zod/Yup)
- GraphQL support
- Message queues
- Additional databases (PostgreSQL, MySQL)
- Rate limiting
- CORS configuration
notsc/ ├── src/ │ ├── index.ts # CLI entry point │ ├── generator.ts # Main generation logic │ ├── templates.ts # File templates │ ├── fileGenerator.ts # File system operations │ └── types.ts # TypeScript interfaces ├── dist/ # Compiled output ├── package.json ├── tsconfig.json └── README.md
- Add template functions in src/templates.ts
- Update the getTemplates() function
- Add configuration options in src/types.ts
- Update prompts in src/generator.ts
We welcome contributions to notsc! Whether you're fixing a bug, adding a new feature, or improving documentation, your help is appreciated.
2. Set Up Development Environment
3. Create a Feature Branch
- Follow the existing code style (ESLint + Prettier)
- Add tests for new features
- Update documentation if needed
- Test your changes thoroughly
7. Push and Create a Pull Request
- TypeScript: Use strict TypeScript configuration
- ESLint: Follow the existing ESLint rules
- Prettier: Use Prettier for code formatting
- Naming: Use descriptive names for variables, functions, and files
- Update Types: Add new configuration options in src/types.ts
- Update Generator: Add prompts in src/generator.ts
- Add Templates: Create template functions in src/templates.ts
- Update Tests: Add tests for new functionality
- Update Docs: Update README and generated project documentation
- Conditional Generation: Only include files when features are selected
- Consistent Format: Follow existing template patterns
- Environment Variables: Add new variables to .env.example
- Documentation: Update Swagger docs and README templates
- [ ] Code follows the existing style
- [ ] All tests pass
- [ ] New features have tests
- [ ] Documentation is updated
- [ ] CLI tool works correctly
- [ ] Generated projects work as expected
When reporting bugs, please include:
- Environment: OS, Node.js version, npm version
- Steps to Reproduce: Clear, step-by-step instructions
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Screenshots: If applicable
For feature requests, please include:
- Description: What the feature should do
- Use Case: Why this feature is needed
- Implementation Ideas: How it might be implemented
- Issues: Use GitHub Issues for bugs and feature requests
- Discussions: Use GitHub Discussions for questions and ideas
- Code of Conduct: Please be respectful and inclusive
Contributors will be recognized in:
- README: List of contributors
- Release Notes: Credit for significant contributions
- GitHub: Contributor statistics
MIT © Cedric Ahenkorah
.png)

