๐ Express TypeScript Boilerplate 2024
Hey There! ๐
๐คพ that โญ๏ธ button if you like this boilerplate.
๐ Introduction
Welcome to the Express TypeScript Boilerplate 2024 โ a streamlined, efficient, and scalable foundation for building powerful backend services with modern tools and practices in Express.js and TypeScript.
๐ก Motivation
This boilerplate aims to:
- โจ Reduce setup time for new projects
- ๐ Ensure code consistency and quality
- โก Facilitate rapid development
- ๐ก๏ธ Encourage best practices in security, testing, and performance
๐ Features
- ๐ Modular Structure: Organized by feature for easy navigation and scalability
- ๐จ Faster Execution with tsx: Rapid TypeScript execution with
tsx
and type checking with tsc
- ๐ Stable Node Environment: Latest LTS Node version in
.nvmrc
- ๐ง Simplified Environment Variables: Managed with Envalid
- ๐ Path Aliases: Cleaner code with shortcut imports
- ๐ Renovate Integration: Automatic updates for dependencies
- ๐ Security: Helmet for HTTP header security and CORS setup
- ๐ Logging: Efficient logging with
pino-http
- ๐งช Comprehensive Testing: Setup with Vitest and Supertest
- ๐ Code Quality Assurance: Husky and lint-staged for consistent quality
- โ
Unified Code Style:
Biomejs
for consistent coding standards
- ๐ API Response Standardization:
ServiceResponse
class for consistent API responses
- ๐ณ Docker Support: Ready for containerization and deployment
- ๐ Input Validation with Zod: Strongly typed request validation using
Zod
- ๐งฉ Swagger UI: Interactive API documentation generated from Zod schemas
๐ ๏ธ 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-2024.git
- Navigate:
cd express-typescript-2024
- Install dependencies:
npm ci
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:
npm run dev
- Building:
npm run build
- Production Mode: Set
.env
to NODE_ENV="production"
then npm run build && npm run start
๐ค 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!