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)
