GitHunt

๐Ÿš€ Express TypeScript Boilerplate 2025

CI

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 tsx and error checking with tsc
  • ๐ŸŒ 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.template to .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 .env then pnpm 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
edwinhern/express-typescript | GitHunt