DEV Community

Cover image for I Was Tired of Setting Up Express.js From Scratch Every Time — So I Built a CLI
Noman Awan
Noman Awan

Posted on

I Was Tired of Setting Up Express.js From Scratch Every Time — So I Built a CLI

If you’ve built more than a couple of Node.js backends, you know the drill.

npm init, install Express, install TypeScript, configure tsconfig.json, structure your folders — and by the time you're done, you've spent 20 minutes without writing a single line of actual application logic.

I got tired of it. So I built @excli/express.

What is @excli/express?

A CLI tool that scaffolds a complete, production-ready Express.js project in seconds. TypeScript or JavaScript, your choice of package manager — all set up and ready to run from the moment the command finishes.

Prerequisites

Before running @excli/express, make sure you have the following installed:

  • Node.js v20 or higher — nodejs.org
  • Package manager — npm, yarn, pnpm, or bun
  • Docker — optional for running the generated compose.yaml — docker.com
  • Git — for version control of your generated project — git-scm.com

**

How to use it?

**

npx @excli/express

That’s the entire command. The CLI walks you through a few prompts — language, package manager, project preferences — and generates everything for you.

No flags to memorize. No documentation to consult. Just answer the prompts and start building.

Database Support

@excli/express sets up your project with first-class database support. You choose your database during the interactive setup:

SQL: MySQL, PostgresSQL, MariaDB
NOSQL: MongoDB

Each option comes with a pre-configured database connection file and a starter schema or model — so you’re not staring at a blank file figuring out boilerplate.

ORM & ODM Support

Along with your database, you pick your ORM or ODM:

  • Prisma — MySQL, MariaDB, PostgreSQL, MongoDB
  • TypeORM — MySQL, MariaDB, PostgreSQL, MongoDB
  • Drizzle — MySQL, MariaDB, PostgreSQL
  • Sequelize — MySQL, MariaDB, PostgreSQL
  • Mongoose — MongoDB only

Docker & docker-compose

The tool generates a ready-to-use compose.yaml for your chosen database, including:

  • Your database service with correct environment variables
  • Volume mounts for data persistence
  • A browser-based admin panel for your database (accessible at http://localhost:6969)

Redis (Optional)

If your project needs caching, you can opt into Redis during setup. It gets added as an additional service in your compose.yaml — no manual configuration required.

Try it:

npx @excli/express

NPM
Github

Top comments (0)