express-fastexp
v1.3.1
Published
A powerful CLI tool designed to make backend development easier by automating the creation of Express.js projects with improved design and modular code structure
Maintainers
Readme
WELCOME TO FASTEXP
A powerful CLI tool designed to make backend development easier by automating the creation of Express.js projects.
Features
- 🚀 Auto-generate project structure
- 📦 Support for JavaScript & TypeScript
- 🗄️ Multiple database options (MySQL, SQLite, MongoDB, Supabase)
- ☁️ Cloud storage integration (Cloudinary)
- 🔗 Path alias configuration (@, /, or none)
- 🔒 Pre-configured middleware & auth (cors, bcrypt, jsonwebtoken)
- ⚡ Beautiful loading spinners with colors and animations
- 🎯 CLI argument support for quick project creation and startup
Updates
Latest Update
- Version Enforcement - Added automatic version check to ensure users have the latest version, blocking outdated versions from running and prompting for update (08/06/2026 4:16 PM)
- Interactive Start Menu - Added menu to choose between entering project path manually or browsing folders with arrow keys (08/06/2026 4:16 PM)
- Enhanced Project Verification - Three-layer verification checking package.json dependencies, raw content, and source code imports for Express (08/06/2026 4:16 PM)
- Folder Browser - Navigate file system with arrow keys, no loop scrolling, hidden dot folders, and smart path resolution (08/06/2026 4:16 PM)
- Folder Size Display - Added automatic folder size calculation and display after project creation, showing the total size in human-readable format (Bytes, KB, MB, GB) (08/06/2026 4:16 PM)
- Improved CLI Design - Enhanced user interface with better visual design and more intuitive navigation
- Code Restructuring - Refactored the entire codebase into modular chunks for better organization and maintainability
Installation
npm install -g express-fastexpOr use with npx:
npx express-fastexpOr use with bun:
bun install -g express-fastexpOr use with bunx:
bunx express-fastexpUsage
Interactive Mode
Run the CLI without arguments to enter interactive mode:
express-fastexpThis will display the main menu with options:
- Create new project
- Start a project
- Credits
- Exit
CLI Commands
Create a New Project
Basic usage:
express-fastexp create [project-name]This auto-selects "Create new project" and skips the project name prompt, going directly to language selection.
With language:
express-fastexp create [project-name] [language]Skips both project name and language prompts.
Language options:
tsortypescript- TypeScriptjsorjavascript- JavaScript
Examples:
# Create project with name only (prompts for language)
express-fastexp create my-project
# Create TypeScript project
express-fastexp create my-project ts
# Create JavaScript project
express-fastexp create my-project jsStart a Project
Basic usage:
express-fastexp start [path]Auto-selects "Start a project" and skips the project path prompt, going directly to package manager selection.
With all options:
express-fastexp start [path] [package-manager] [command]Skips all prompts and directly runs the project.
Package manager options:
bunor1- Bunnpmor2- npm
Examples:
# Start with path only (prompts for package manager and command)
express-fastexp start ./my-project
# Start with Bun
express-fastexp start ./my-project bun "npm run dev"
# Start with npm
express-fastexp start ./my-project npm "nodemon"
# Start with custom command
express-fastexp start ./my-project bun "bun run index.js"Project Configuration
When creating a new project interactively, you'll be prompted for:
- Project Name - Name of your project folder
- Install Express - Whether to install Express and dependencies
- Language - JavaScript or TypeScript
- Path Alias Style (if Express is installed):
@(e.g., @/controllers, @/models)/(e.g., /controllers, /models)- None
- Package Manager (if Express is installed):
- Bun
- npm
- Database:
- SQL (MySQL)
- SQLite
- MongoDB
- Supabase
- None
- Storage:
- Cloudinary
- None
Project Structure
After creation, your project will have the following structure:
my-project/
├── config/
│ ├── jwt.js/ts
│ ├── sql.js/ts (if SQL selected)
│ ├── sqlite.js/ts (if SQLite selected)
│ ├── mongodb.js/ts (if MongoDB selected)
│ ├── supabase.js/ts (if Supabase selected)
│ └── cloudinary.js/ts (if Cloudinary selected)
├── models/
│ └── model.js/ts
├── middleware/
│ └── middleware.js/ts
├── controllers/
│ └── controller.js/ts
├── routes/
│ └── route.js/ts
├── templates/
│ └── start.js/ts
├── .env
├── .env.example
├── .gitignore
├── nodemon.json
├── package.json
├── index.js/ts
└── tsconfig.json (if TypeScript selected)Included Packages
When Express is installed, the following packages are automatically included:
- express - Web framework
- dotenv - Environment variable management
- nodemon - Auto-restart on file changes
- cors - Cross-Origin Resource Sharing
- bcrypt - Password hashing
- jsonwebtoken - JWT authentication
Additional packages based on your choices:
- module-alias - Path alias support (JavaScript with @ or /)
- typescript, tsx, @types/node, @types/express - TypeScript support
- mysql2 - MySQL database
- better-sqlite3 - SQLite database
- mongoose - MongoDB database
- @supabase/supabase-js - Supabase database
- cloudinary, multer - Cloud storage
Starting Your Project
After creating a project, you can start it in multiple ways:
Option 1: Use the CLI
express-fastexp start ./my-project bun "npm run dev"Option 2: Interactive Start Menu
Run the CLI and select "Start a project" from the main menu. You'll be presented with two options:
Enter project path manually - Type the full path or folder name of your project
- Supports full paths:
C:\Users\jhonj\Downloads\my-project - Supports relative paths:
my-projector./my-project - Supports folder names only:
my-project(system will search in user directory) - Supports nested paths:
portfolio\backend(system will navigate to parent folder)
- Supports full paths:
Browse folders - Navigate through your file system using arrow keys
- Starts in your user home directory
- Navigate with arrow keys (no loop scrolling)
- Hidden dot folders (folders starting with
.) - Select "✅ Select this directory" when you find your project
- Go back with "⬆️ .. (Go back)"
Enhanced Project Verification
The system automatically verifies that your project is a valid Express project by checking:
- package.json - for express in dependencies or devDependencies
- Raw package.json content - for the word "express" anywhere in the file
- Source code imports - for express require/import statements in common entry files:
- Root directory:
index.js,server.js,app.js,main.js(and.tsequivalents) srcfolder: same files if it exists
- Root directory:
Folder Size Display
When a valid Express project is found, the system displays the folder size (e.g., "Folder size: 15.2 MB").
Option 3: Manual start
cd my-project
npm run dev # or bun run devThe server will start at http://localhost:3000 by default.
Environment Variables
Edit the .env file to configure your project:
PORT=3000
NODE_ENV=development
# Database (based on your selection)
DB_HOST=localhost
DB_PORT=3306
DB_NAME=your_database
DB_USER=root
DB_PASSWORD=
# Or for SQLite
SQLITE_PATH=./database.sqlite
# Or for MongoDB
MONGODB_URI=mongodb://127.0.0.1:27017/your_database
# Or for Supabase
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_supabase_anon_key
# Storage (if Cloudinary selected)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secretCredits
Created by Jhon Ladines
- Website: https://www.jhonladines.top/
- Repository: https://github.com/Allvexnation/express-fastexp
License
MIT
Express FastExp - No more manually creating folders, files, and packages! 🚀
