ED
edwinhern/express-typescript
Express + TypeScript starter template
๐ Express TypeScript Boilerplate 2025
Hey There! ๐
๐คพ that โญ๏ธ button if you like this boilerplate.
๐ Introduction
Welcome to Express TypeScript Boilerplate 2025 โ a simple and ready-to-use starting point for building backend web services with Express.js and TypeScript.
๐ก Why We Made This
This starter kit helps you:
- โจ Start new projects faster
- ๐ Write clean, consistent code
- โก Build things quickly
- ๐ก๏ธ Follow best practices for security and testing
๐ What's Included
- ๐ Well-organized folders: Files grouped by feature so you can find things easily
- ๐จ Fast development: Quick code running with
tsxand error checking withtsc - ๐ Latest Node.js: Uses the newest stable Node.js version from
.tool-versions - ๐ง Safe settings: Environment settings checked with Zod to prevent errors
- ๐ Short import paths: Clean code with easy imports using path shortcuts
- ๐ Auto-updates: Keeps dependencies up-to-date with Renovate
- ๐ Better security: Built-in protection with Helmet and CORS settings
- ๐ Easy tracking: Built-in logging with
pino-http - ๐งช Ready-to-test: Testing tools with Vitest and Supertest already set up
- โ
Clean code: Consistent coding style with
Biomejs - ๐ Standard responses: Unified API responses using
ServiceResponse - ๐ณ Easy deployment: Ready for Docker containers
- ๐ Input checking: Request validation using Zod
- ๐งฉ API browser: Interactive API docs with Swagger UI
๐ ๏ธ Getting Started
Video Demo
For a visual guide, watch the video demo to see the setup and running of the project.
Step-by-Step Guide
Step 1: ๐ Initial Setup
- Clone the repository:
git clone https://github.com/edwinhern/express-typescript.git - Navigate:
cd express-typescript - Install dependencies:
pnpm install
Step 2: โ๏ธ Environment Configuration
- Create
.env: Copy.env.templateto.env - Update
.env: Fill in necessary environment variables
Step 3: ๐โโ๏ธ Running the Project
- Development Mode:
pnpm start:dev - Building:
pnpm build - Production Mode: Set
NODE_ENV="production"in.envthenpnpm build && pnpm start:prod
๐ค Feedback and Contributions
We'd love to hear your feedback and suggestions for further improvements. Feel free to contribute and join us in making backend development cleaner and faster!
๐ Happy coding!
๐ Folder Structure
โโโ biome.json
โโโ Dockerfile
โโโ LICENSE
โโโ package.json
โโโ pnpm-lock.yaml
โโโ README.md
โโโ src
โ โโโ api
โ โ โโโ healthCheck
โ โ โ โโโ __tests__
โ โ โ โ โโโ healthCheckRouter.test.ts
โ โ โ โโโ healthCheckRouter.ts
โ โ โโโ user
โ โ โโโ __tests__
โ โ โ โโโ userRouter.test.ts
โ โ โ โโโ userService.test.ts
โ โ โโโ userController.ts
โ โ โโโ userModel.ts
โ โ โโโ userRepository.ts
โ โ โโโ userRouter.ts
โ โ โโโ userService.ts
โ โโโ api-docs
โ โ โโโ __tests__
โ โ โ โโโ openAPIRouter.test.ts
โ โ โโโ openAPIDocumentGenerator.ts
โ โ โโโ openAPIResponseBuilders.ts
โ โ โโโ openAPIRouter.ts
โ โโโ common
โ โ โโโ __tests__
โ โ โ โโโ errorHandler.test.ts
โ โ โ โโโ requestLogger.test.ts
โ โ โโโ middleware
โ โ โ โโโ errorHandler.ts
โ โ โ โโโ rateLimiter.ts
โ โ โ โโโ requestLogger.ts
โ โ โโโ models
โ โ โ โโโ serviceResponse.ts
โ โ โโโ utils
โ โ โโโ commonValidation.ts
โ โ โโโ envConfig.ts
โ โ โโโ httpHandlers.ts
โ โโโ index.ts
โ โโโ server.ts
โโโ tsconfig.json
โโโ vite.config.mts