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 🙏

© 2025 – Pkg Stats / Ryan Hefner

gen-ex-app

v0.1.0

Published

Express.js boilerplate with a clean, layered architecture designed for rapid backend development. Built with flexibility in mind, supporting both TypeScript and JavaScript to match your preferences.

Downloads

91

Readme

🚀 Generate Express App

Express.js boilerplate with a clean, layered architecture designed for rapid backend development. Built with flexibility in mind, supporting both TypeScript and JavaScript to match your preferences.

✨ Features

🎯 Core Framework

  • Express.js — Fast, minimalist web framework for Node.js
  • TypeScript & JavaScript Support — Choose your preferred language or switch between them seamlessly

🧪 Testing & Quality

  • Jest — Comprehensive testing framework with built-in mocking and coverage
  • Babel Integration — Pre-configured for seamless Jest compatibility, ensuring tests always work reliably
  • ESLint — Strict linting rules for consistent code quality
  • Prettier — Opinionated code formatting for unified style across your team

🏗️ Architecture

  • Layered Architecture — Clean separation of concerns with dedicated layers:
    • Controllers — Handle request/response logic
    • Routes — Define API endpoints and middleware
    • Configs — Centralized configuration management
    • Services — Business logic layer (ready to extend)
  • Production-Ready Structure — Organized for scalability and maintainability

🔧 Built-in Utilities

  • dotenv — Environment variable management
  • cors — Cross-Origin Resource Sharing
  • express-rate-limit — Rate limiting
  • helmet — Security headers

🗂️ Project Structure

src/
  ├── index                    # Application entry point
  ├── config/                  # Configuration layer
  │   └── limiter.config       # Rate limiting configuration
  │   └── cors.config          # CORS configuration
  ├── controllers/             # Controller layer
  │   └── getter.controller    # Example controller
  └── routes/                  # Routing layer
      └── getter.route         # Example route definition

tests/
  └── getHello.test            # Example test suite

🏁 Getting Started

1. Creating the project

This creates the directory and install the package

npx gen-ex-app <project-name>

or

This uses the current directory and install the package

npx gen-ex-app .

3. Development

Start the development server with hot-reloading:

npm run dev

Type-check in watch mode: for (Typescript only)

npm run dev:type-check

4. Build and Run

Build the project (Only if using Typescript, you can proceed to 'npm start' if using Javascript):

npm run build

Start the server:

npm start

Or build and start in one step: (Typescript only)

npm run build-start

5. Linting and Formatting

Check linting errors:

npm run lint

Fix linting errors:

npm run lint:fix

Format code with Prettier:

npm run format

Check formatting:

npm run format:check

6. Testing

Run all tests:

npm test

📡 Example Endpoint

  • GET / — Returns "Hello World"

🛠️ Customization

  • Add new routes in src/routes/
  • Add new controllers in src/controllers/
  • Add tests in tests/

📝 License

MIT