TypeScript Express Starter is an interactive CLI tool that generates production-ready TypeScript Express projects with your preferred stack configuration.
Instead of starting from scratch, this CLI provides a comprehensive project generator with multiple database integrations, development tools, and deployment configurations. Choose from 10+ templates and customize your development workflow in minutes.
- Interactive Setup: Choose database, ORM, linter, testing framework, and more
- Production Ready: Docker, PM2, NGINX configurations included
- Developer Experience: Hot reload, testing, linting, and formatting pre-configured
- Multiple Stacks: Support for 10+ database/ORM combinations
-
π― Interactive Setup β Smart CLI with guided project configuration
-
ποΈ Multiple Database Options β Prisma, Sequelize, TypeORM, Mongoose, Knex, and more
-
π οΈ Development Tools β Choose from ESLint, Biome, Jest, Vitest, Docker, PM2
-
π± Template Selection β 10+ pre-configured project templates
-
β‘ Auto Configuration β Dependencies, scripts, and configs automatically setup
-
π§ Smart Dependencies β Tool compatibility and requirement resolution
-
π¦ Package Manager Agnostic β Works with npm, pnpm, or yarn
-
π Zero Config Start β Generated projects work immediately
-
π¨ Customizable β Add your own templates and development tools
# Install globally
npm install -g typescript-express-starter
# Run the interactive CLI
typescript-express-starter
# Follow the prompts to:
# 1. Choose package manager (npm/pnpm/yarn)
# 2. Select project template (default/prisma/sequelize/etc.)
# 3. Enter project name
# 4. Pick development tools (linting/testing/docker/etc.)
# Navigate to your project
cd your-project-name
# Start development server
npm run devGenerated Project Features:
- π Express server:
http://localhost:3000/ - π Auto-generated API docs:
http://localhost:3000/api-docs - π Hot reload with nodemon
- π§ͺ Testing setup included
When you create a new project, the CLI generates this structure:
your-project/
βββ src/
β βββ config/ # Configuration files, environment settings
β βββ controllers/ # Request handling & response logic
β βββ dtos/ # Data Transfer Objects for request/response
β βββ entities/ # Database entities/models (if ORM selected)
β βββ exceptions/ # Custom exception classes
β βββ interfaces/ # TypeScript interfaces and type definitions
β βββ middlewares/ # Middlewares (logging, auth, error handling)
β βββ repositories/ # Database access logic
β βββ routes/ # API route definitions
β βββ services/ # Business logic
β βββ utils/ # Utility/helper functions
β βββ app.ts # Express app initialization
β βββ server.ts # Server entry point
βββ .env* # Environment variables (multiple stages)
βββ nodemon.json # Development server configuration
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ docker-compose.yml # Docker setup (if selected)Choose from these categories during project setup:
| Category | Available Tools | Description |
|---|---|---|
| Linter | biome, eslint |
Code formatting & linting (Biome is all-in-one) |
| Bundler | swc, tsup |
Fast TypeScript compilation and bundling |
| Testing | jest, vitest |
Unit & integration testing frameworks |
| Process | pm2 |
Production process management |
| CI/CD | github |
GitHub Actions workflows |
| Git Hooks | husky |
Pre-commit hooks for quality control |
| Container | docker |
Docker & docker-compose configuration |
| API Docs | swagger |
OpenAPI/Swagger documentation |
Smart Selection: The CLI automatically resolves tool dependencies and compatibility.
Current template status (more coming soon!):
| Template | Description | Status |
|---|---|---|
default |
Express + TypeScript starter | β Active |
| Template | Description | Priority |
|---|---|---|
prisma |
Type-safe database client with auto-generated types | π₯ High |
drizzle |
TypeScript-first ORM with zero runtime overhead | π₯ High |
mikro-orm |
Data Mapper ORM pattern for TypeScript | π₯ High |
mongoose |
Elegant MongoDB ODM for Node.js | π₯ High |
node-postgres |
High-performance PostgreSQL native driver | π§ In Dev |
knex |
Flexible SQL query builder & migrations | π§ In Dev |
typeorm |
Decorator-based Active Record ORM | π§ In Dev |
sequelize |
Mature Promise-based SQL ORM | π§ In Dev |
typegoose |
TypeScript-friendly Mongoose alternative | π§ In Dev |
| Template | Description | Priority |
|---|---|---|
graphql |
GraphQL API schema with Apollo Server | π§ In Dev |
Note: Currently focusing on the
defaulttemplate. Additional templates will be activated as they're completed and tested.
| Aspect | Manual Setup | TypeScript Express Starter CLI |
|---|---|---|
| Time | π΄ Hours of configuration | β 2-3 minutes interactive setup |
| Configuration | π΄ Manual dependency management | β Auto-resolved, compatible versions |
| Best Practices | π΄ Research required | β Pre-configured industry standards |
| Consistency | π΄ Varies by developer | β Standardized project structure |
| Updates | π΄ Manual maintenance | β CLI updates bring new features |
| Feature | TypeScript Express Starter | Other Generators |
|---|---|---|
| Database Choice | β 10+ options planned | Limited options |
| Tool Selection | β Mix & match dev tools | Fixed stack |
| TypeScript First | β Built for TypeScript | Often JS-first |
| Production Ready | β Docker, PM2 included | Basic setup |
MIT(LICENSE) Β© AGUMON (ljlm0402)
