@excli/express
v2.10.0
Published
A cli tool for creating Express.js applications, supporting both JavaScript and TypeScript.
Maintainers
Keywords
Readme
@excli/express — Modern Express.js Project Generator
What is @excli/express?
@excli/express is a CLI tool that scaffolds production-ready Express.js projects in seconds — with TypeScript, Docker, database integration, ORM, testing, and Git hooks included. No boilerplate. No manual config. Just start building.
Why Not Use express-generator?
| Feature | express-generator | @excli/express |
| ------------------- | ------------------- | ------------------------------------------------ |
| TypeScript support | ❌ | ✅ Native TS & JS |
| Docker integration | ❌ | ✅ One command |
| Database setup | ❌ | ✅ MySQL, PostgreSQL, MongoDB, SQLite, MariaDB |
| ORM support | ❌ | ✅ Prisma, Drizzle, TypeORM, Sequelize, Mongoose |
| Redis / caching | ❌ | ✅ Built-in Redis support |
| Hot reload (dev) | ❌ | ✅ Included |
| Testing setup | ❌ | ✅ Vitest + Supertest |
| Git hooks (Husky) | ❌ | ✅ Pre-commit & pre-push |
| Admin DB panels | ❌ | ✅ phpMyAdmin, pgAdmin, Mongo Express |
| Authentication | ❌ | ✅ Better Auth (drizzle and prisma only) |
| Reverse proxy setup | ❌ | ✅ Nginx & Caddy & Traefik |
| Load balancing | ❌ | ✅ Built-in config |
| Modern Node.js APIs | ❌ | ✅ No deprecated methods |
| Actively maintained | ❌ | ✅ |
Quick Start
No installation required. Just run:
npx @excli/expressOr install globally for repeated use:
npm install -g @excli/express
excliRequirements
- Node.js 20 or higher
- A package manager:
npm,yarn,pnpm, orbun - Docker (optional — only needed for database features)
Interactive Setup
The CLI walks you through a short, guided setup:
- Project Name — Name your application
- Language — Choose TypeScript or JavaScript
- Project Mode — Development (lightweight) or Production (full Docker + database stack)
- Dev Tools — Select from Git, Prettier, Husky, Vitest, Docker
- Database Type — SQL or NoSQL
- Database — MySQL, MariaDB, SQLite, PostgreSQL, or MongoDB
- ORM / ODM — Choose from Prisma, Drizzle, TypeORM, Sequelize, or Mongoose
- Authentication (new) — Optionally set up Better Auth (available with Prisma & Drizzle)
- Cache — Enable Redis for in-memory caching
- Proxy — Choose Nginx, Caddy or Traefik
- Proxy Mode — Reverse proxy and load balancing
- Package Manager — npm, yarn, pnpm, bun
Running Your Project
cd my-project
pnpm run devVisit http://localhost:3000 — your Express server is live.
What's Included
Git Hooks with Husky
When enabled, Husky sets up Git hooks automatically:
- Pre-commit — Runs linting and formatting before every commit
- Pre-push — Runs your test suite before pushing to remote
- Commit message validation — Enforces the Conventional Commits standard
Database Support
All databases come with a pre-configured admin panel at http://localhost:6969 after running pnpm run docker:up.
| Database | Admin Panel | Port | | ---------- | ------------- | ---- | | MySQL | phpMyAdmin | 6969 | | MariaDB | phpMyAdmin | 6969 | | PostgreSQL | pgAdmin | 6969 | | MongoDB | Mongo Express | 6969 | | SQLite | — | — |
Note: Admin panels may take a moment to initialize on first startup.
ORM / ODM Support
| ORM | Supported Databases | TypeScript & JavaScript | | --------- | ---------------------------------- | ----------------------- | | Prisma | PostgreSQL, MySQL, MariaDB, SQLite | ✅ | | Drizzle | PostgreSQL, MySQL, MariaDB, SQLite | ✅ | | TypeORM | PostgreSQL, MySQL, MariaDB, SQLite | ✅ | | Sequelize | PostgreSQL, MySQL, MariaDB, SQLite | ✅ | | Mongoose | MongoDB only | ✅ |
Authentication Support (New)
@excli/express now includes built-in support for Better Auth — a modern, framework-agnostic authentication library.
Note: Currently, Better Auth integration is supported with Prisma and Drizzle adapters only (prisma with mongodb may also contain some clashes because of old prisma mongodb support but still its works)
| Adapter | Status | | ------- | ------------ | | Prisma | ✅ Supported | | Drizzle | ✅ Supported |
Docker Setup
Production mode includes a complete Docker configuration:
- Dockerfile — Production-optimized container build
- compose.yaml — Multi-service orchestration with correct volume paths
- .env files — Separate environment configs for development and production
Reverse Proxy Setup
Choose between two options:
| Feature | Nginx | Caddy | Traefik |
| --------------------- | -------------------------- | -------------------- | -------------------- |
| Reverse proxy | ✅ | ✅ | ✅ |
| Load balancing | ✅ | ✅ | ✅ |
| Automatic HTTPS (TLS) | ❌ Manual | ✅ Automatic | ✅ |
| Config style | nginx.conf | Caddyfile | traefik.yaml |
| Best for | Full control, high-traffic | Simplicity, auto SSL | Simplicity, auto SSL |
Common Commands
pnpm run dev # Start development server
pnpm run format # Format code with Prettier
pnpm run build # Compile TypeScript (TS projects only)
pnpm run docker:up # Start Docker services
pnpm run docker:down # Stop all Docker servicesTroubleshooting
Port already in use? Update the ports in your .env file to resolve the conflict.
Docker not starting? Make sure Docker Desktop is running before executing pnpm run docker:up.
Husky hooks not triggering? Ensure Git is initialized, then run pnpm run prepare to register the hooks.
Proxy not routing traffic? Make sure your compose.yaml includes the proxy service and that no other process is bound to port 80.
Contributing
Contributions are welcome. Please read the Contributing Guide before opening a pull request.
License
ISC License — see the LICENSE file for details.
Author
Noman
Built with ❤️ for developers who want to skip the setup and start shipping.
