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

get-express-starter

v4.3.0

Published

Get production ready express boilerplate with a single command

Readme

get-express-starter

The last Express.js boilerplate you'll ever need.

A powerful, customizable CLI that scaffolds production-ready Express.js applications. Whether you prefer TypeScript or JavaScript, MongoDB or PostgreSQL, get-express-starter sets up a scalable architecture with best practices from day one.


Key Features

  • ✅ Choose between TypeScript or JavaScript
  • ✅ Select your database: MongoDB or PostgreSQL
  • JWT-based Authentication (login, register, logout)
  • Email workflows: Verify email, Forgot/Reset password
  • Role-based Access Control (RBAC)
  • ✅ Centralized User Management System
  • Zod-based Request Validation
  • ✅ Built-in Pagination Utilities
  • Security Best Practices (Helmet, CORS, sanitization)
  • Versioned API Routes
  • Winston Logging for errors & requests
  • Centralized Config & ENV management
  • Plop.js-based Code Generator (like NestJS CLI, but unopinionated!)
  • Docker-Ready Setup with docker compose
  • ✅ Dev-friendly tooling: Biome / ESLint + Prettier, Husky, lint-staged
  • ✅ Supports ESM or CommonJS in JavaScript mode
  • Customizable Templates for rapid feature/module generation

Installation

npm install -g get-express-starter

Usage

get-express-starter

You'll be prompted to choose:

  • Project name

  • Language (TypeScript / JavaScript)

  • Database (MongoDB / PostgreSQL)

  • Code generator setup

Example

$ get-express-starter
✔ Project name: my-api
✔ Language: TypeScript
✔ Database: PostgreSQL

➡️ cd my-api
➡️ pnpm install
➡️ pnpm run dev
➡️ pnpm generate // For code generators

Project Templates

Depending on your choices, one of the following templates will be scaffolded:

  • Express + MongoDB + TypeScript

  • Express + PostgreSQL + TypeScript (Prisma)

  • Express + PostgreSQL + TypeScript (Drizzle)

  • Express + MongoDB + JavaScript

Code Generators

You’ll get built-in support for generating:

  • Modules (routes, controllers, services)

  • Models

  • Middlewares

  • Validators

  • Utilities

pnpm generate

Docker Support

Each project comes with:

  • Dockerfile

  • docker-compose.yml

Start your app via Docker:

docker compose up --build

Linting & Formatting

You get a preconfigured dev experience:

  • Biome (or ESLint + Prettier)

  • Husky + lint-staged (pre-commit hooks)

Script examples:

pnpm lint      # Biome or ESLint
pnpm format    # Prettier or Biome

Developer Productivity (DX)

We include tools to make your daily coding faster.

1. Code Generators (Plop.js)

Don't copy-paste files to create a new API resource. Use the generator:

pnpm generate

It will ask what you want to create (Controller, Route, Service, Model) and generate the boilerplate code for you.

2. VS Code Snippets

Inside the .vscode folder of your generated project, we include custom snippets. Just start typing the prefix, and VS Code will handle the rest.

Example: Creating a Controller

Type exctrl and hit TAB:

// You type: exctrl

// It expands to:
const myController: RequestHandler = async (req, res) => {
  // Cursor lands here ready to code!
};

The Plugin System (New!)

Introducing plugins: instead of bloating the base templates, you can choose plugins to add powerful features to your starter project. Even if you forget to add a feature during setup, no problem—you can inject plugins into your existing project at any time.

The CLI intelligently analyzes your project structure (detecting TS vs JS) and injects code safely.

Command

npx get-express-starter add <plugin-name>

Available Plugins

| Plugin | Command | Description | |------------|-------------|-------------------------------------------------------------------------| | Cron Jobs | add cron | Adds node-cron setup, scheduled task architecture, and example jobs. | | Redis | add redis | Configures a robust Redis caching layer and adds a separate Docker Compose file with RedisInsight for local inspection. |

Plugin Example

cd my-super-api
npx get-express-starter add cron

This will install dependencies, create a src/jobs directory, and inject initialization code into your server entry point automatically.

This project is licensed under the MIT License © 2025 Muhammad Hassan