Navigate to your project

March 21, 2026 ยท View on GitHub


Project Logo

TypeScript Express Starter

๐Ÿš€ Express RESTful API Boilerplate Using TypeScript

npm Info

npm Version npm Release Version npm Downloads npm Package License

github Stars github Forks github Contributors github Issues




๐Ÿ“ Introduction

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

๐Ÿ’Ž CLI Features

  • ๐ŸŽฏ Interactive Setup โ€” Smart CLI with guided project configuration

  • ๐Ÿš€ Quick or Custom Mode โ€” Start fast with presets or choose tools category by category

  • ๐Ÿ—„๏ธ 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

โšก๏ธ Quick Start

# Install globally
npm install -g typescript-express-starter

# Run the interactive CLI
typescript-express-starter

โ”Œ  ๐Ÿ“˜ TypeScript Express Starter
โ”‚
โ—‡  Choose setup mode:
โ”‚  โ— ๐Ÿš€ Quick start (recommended preset) (Automatically selects a sensible toolset)
โ”‚  โ—‹ ๐Ÿ›  Custom (step-by-step) (Pick tools category by category)
โ”‚
โ—‡  Which package manager do you want to use?
โ”‚  โ— npm
โ”‚  โ—‹ pnpm
โ”‚  โ—‹ yarn
โ”‚
โ—‡  Choose a template:
โ”‚  โ— Express TypeScript (Basic Express + TypeScript starter ยท beginner ยท stable)
โ”‚  โ—‹ Drizzle PostgreSQL (Modern SQL toolkit with type safety + full devtools ยท intermediate ยท stable)
โ”‚
โ—‡  Enter your project name:
โ”‚  your-project-name
โ”‚
โ—‡  Choose quick profile:
โ”‚  โ—‹ Minimal (Template only (no additional devtools))
โ”‚  โ— Recommended (Balanced default toolchain)
โ”‚  โ—‹ Full (One tool from each category)
โ”‚
โ—‡  Preset โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                                     โ”‚
โ”‚  Quick profile selected: recommended (biome, tsup, vitest, docker)  โ”‚
โ”‚                                                                     โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”‚
โ—‡  Configuration summary โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                                                โ”‚
โ”‚  Setup mode     : quick                        โ”‚
โ”‚  Package manager: pnpm                         โ”‚
โ”‚  Template       : Express TypeScript           โ”‚
โ”‚  Project name   : your-project-name            โ”‚
โ”‚  Devtools       : Biome, tsup, Vitest, Docker  โ”‚
โ”‚                                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”‚
โ—†  Proceed with project generation?
โ”‚  โ— Yes / โ—‹ No
โ”‚
โœ” ๐Ÿ“ฆ Base dependencies installed!
โ”‚
โ”” ๐ŸŽ‰ Project setup complete!

# Navigate to your project
cd your-project-name

# Start development server
npm run dev

Generated Project Features:

  • ๐ŸŒ Express server: http://localhost:3000/
  • ๐Ÿ”„ Hot reload with nodemon

๐Ÿ“‚ Generated Project Structure

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 (if using ORM)
โ”‚   โ”œโ”€โ”€ 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 file
โ”œโ”€โ”€ .env.development.local # Development environment variables
โ”œโ”€โ”€ .env.production.local  # Production environment variables
โ”œโ”€โ”€ .env.test.local        # Test environment variables
โ”œโ”€โ”€ nodemon.json           # Nodemon configuration
โ”œโ”€โ”€ package.json           # Project dependencies and scripts
โ””โ”€โ”€ tsconfig.json          # TypeScript configuration

๐Ÿ›  Development Tools Available

Choose from these categories during project setup:

CategoryAvailable ToolsDescription
Linterbiome, eslint, oxlintCode formatting & linting (Biome is all-in-one)
Bundlerswc, tsupFast TypeScript compilation and bundling
Testingjest, vitestUnit & integration testing frameworks
ContainerdockerDocker & docker-compose configuration

To be added later (currently in progress):

CategoryAvailable ToolsDescription
Processpm2Production process management
CI/CDgithubGitHub Actions workflows
Git HookshuskyPre-commit hooks for quality control
API DocsswaggerOpenAPI/Swagger documentation

Smart Selection: The CLI automatically resolves tool dependencies and compatibility.

๐Ÿงฉ Available Templates

Current template status with comprehensive compatibility tested:

โœ… Production Ready & Fully Tested

TemplateDescriptionStatusCompatibility
defaultExpress + TypeScript starterโœ… Active๐ŸŽฏ Baseline
drizzle-postgresqlDrizzle ORM + PostgreSQL (Type-safe, Zero overhead)โœ… Active๐ŸŒŸ 100% (8/8)

๐Ÿ”ง Enhanced Development Tools Support

drizzle-postgresql template is fully compatible with:

Linters

  • โœ… Biome - Modern unified tool (linter + formatter)
  • โœ… ESLint + Prettier - Traditional reliable combination
  • โœ… Oxlint - Rust-based high-performance linter (18ms!)

Compilers

  • โœ… tsup - esbuild-based bundler (193ms build!)
  • โœ… SWC - Rust-based native performance compiler

Test Runners

  • โœ… Jest - Mature test framework with full E2E support
  • โœ… Vitest - Modern Vite-based test runner

๐ŸŽฏ All 8 combinations tested and verified - Choose your preferred development experience!

๐Ÿšง Coming Soon

ORM/Database Integration

TemplateDescriptionPriority
prismaType-safe database client with auto-generated types๐Ÿ”ฅ Next
mongooseElegant MongoDB ODM for Node.js๐Ÿ”ฅ Next
typeormDecorator-based Active Record ORM๐Ÿšง Planned
sequelizeMature Promise-based SQL ORM๐Ÿšง Planned
mikro-ormData Mapper ORM pattern for TypeScript๐Ÿšง Planned
typegooseTypeScript-friendly Mongoose alternative๐Ÿšง Planned
node-postgresHigh-performance PostgreSQL native driver๐Ÿšง Planned
knexFlexible SQL query builder & migrations๐Ÿšง Planned

Architecture/Controller Style

TemplateDescriptionPriority
graphqlGraphQL API schema with Apollo Server๐Ÿšง Knowledge

๐Ÿค” Why Use This CLI?

vs. Manual Setup

AspectManual SetupTypeScript 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

vs. Other Generators

FeatureTypeScript Express StarterOther Generators
Database Choiceโœ… 10+ options plannedLimited options
Tool Selectionโœ… Mix & match dev toolsFixed stack
TypeScript Firstโœ… Built for TypeScriptOften JS-first
Production Readyโœ… Docker, PM2 includedBasic setup

โญ๏ธ Stargazers

Stargazers repo roster for @ljlm0402/typescript-express-starter

๐Ÿด Forkers

Forkers repo roster for @ljlm0402/typescript-express-starter

๐Ÿค Contributors

Contributors repo roster for @ljlm0402/typescript-express-starter

๐Ÿ’ณ License

MIT


Made with โค๏ธ by AGUMON ๐Ÿฆ–