npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

codenub-express-modular

v1.2.5

Published

<p align="center"> <img src="https://img.shields.io/npm/v/codenub-express-modular?style=for-the-badge&color=blue" alt="Version" /> <img src="https://img.shields.io/npm/l/codenub-express-modular?style=for-the-badge&color=green" alt="License" /> <i

Readme

🌟 Introduction

CEM is not just a generator; it's a complete Development Ecosystem. It bridges the gap between the simplicity of Express.js and the structure of NestJS.

Why developers love CEM:

  • Zero Boilerplate: Skip the setup. Get a running app in 10 seconds.
  • Clean Architecture: Enforced modular design (Service-Repository Pattern).
  • Production Ready: Comes with Docker, Prisma, Swagger, Helmet, and CORS.
  • Type-Safe: Built entirely on TypeScript.

📦 Installation

You have two options to use CEM.

Option 1: Global Installation (Recommended)

Install it once, use it everywhere on your machine.

npm install -g codenub-express-modular

Option 2: On-Demand (NPX)

Run without installing. Perfect for testing or one-time use.

npx codenub-express-modular <command>

⚡ Quick Start Guide

Go from zero to running API in 3 steps.

Step 1: Initialize Project

Create a new project folder with the entire stack set up.

cem init my-app

Step 2: Install & Setup

Enter the folder and install dependencies.

cd my-app
npm install
cem prisma init

Step 3: Launch!

Start the development server.

npm run dev

Your App is Live: http://localhost:3000 API Docs are Live: http://localhost:3000/docs


💎 Features Deep Dive

1. The create Workflow

Stop copying and pasting files. Generate them.

  • Modules: Creates Controller, Service, Repository, DTO, and Test files.
    cem create module product
  • Services / Repositories: Create standalone components.
    cem create service Services/EmailSender

� Power Tip: Try creating a module named user or auth. CEM will detect this and offer to pre-fill authentication logic (Login, Register, JWT, Password Hashing)!

2. Zero-Config Swagger

Documentation is critical but tedious. CEM solves this with Auto-Swagger.

  • How to Enable: Run cem add swagger.
  • How it Works:
    1. CEM configures swagger-jsdoc.
    2. When you run cem create module, the generated files already have JSDoc tags.
    3. Your API documentation updates automatically as you code!

3. Docker Ecosystem

Deploying to production? We got you covered.

  • Command: cem add docker
  • Database Choice: The CLI will ask:
    • PostgreSQL (Default)
    • MySQL
    • SQLite
  • Output: Generates a production-optimized Dockerfile (multistage build) and a tailored docker-compose.yml.

4. Database Management

CEM creates a wrapper around Prisma for easier memory.

  • cem prisma init: Sets up schema and client.
  • cem prisma generate: Refreshes your client after schema changes.

📂 Project Architecture

We follow the Service-Repository Pattern to keep your code clean and testable.

src/
├── app.ts                  # App Configuration (Middleware, Routes)
├── server.ts               # Entry Point
├── common/                 # Global Utilities
│   ├── middlewares/        # Express Middlewares
│   └── exceptions/         # Error Handling
├── config/                 # Environment Configs
└── modules/                # Feature Modules
    ├── user/
    │   ├── dto/            # Data Transfer Objects (Validation)
    │   ├── user.controller.ts  # Route Handlers
    │   ├── user.service.ts     # Business Logic
    │   ├── user.repository.ts  # Database Queries
    │   └── user.service.spec.ts # Unit Tests

❓ FAQ

Q: Can I use this with MongoDB? A: Currently, we focus on Relational DBs via Prisma (Postgres, MySQL, SQLite). MongoDB support via Mongoose is on the roadmap!

Q: Is this opinionated? A: Yes. We enforce strict TypeScript and Clean Architecture to ensure your project scales well.


🤝 Community & License

Built with ❤️ by CODENUB. Licensed under MIT. Feel free to use in personal or commercial projects.