Express Typescript Skeleton

screenshot of Express Typescript Skeleton
express
prisma

Template to start developing a REST API with Node.js (Express), TypeScript, Ts.ED, ESLint, Prettier, Husky, Prisma, etc.

Overview

This project is a base template designed to help create a production-ready REST API using Node.js, Express, and Typescript. It aims to simplify the setup process by providing a pre-configured environment, allowing developers to focus more on building the business logic. The template follows best practices and personal preferences to structure the codebase and configure various tools.

Features

  • Built using Typescript
  • Express Framework: Fast, minimalist web framework for node
  • Prisma: ORM for Node.js & TypeScript supporting various databases
  • Ts.ED: Node.js Framework on top of Express/Koa.js for easy server-side application development
  • JWT authentication and role-based authorization
  • OpenAPI definition
  • Fully configured logger with Pino
  • Unit, Integration, and E2E tests using Jest and Supertest
  • Linting with ESLint
  • Formatting with Prettier
  • Git hooks with Husky and lint-staged
  • Containerized using Docker and Docker Compose
  • Path aliases support
  • GitHub Actions
  • Makefile as project entry point
  • PostgreSQL as database
express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

prisma
Prisma

Prisma is a server-side library that helps developers read and write data to the database in an intuitive, efficient and safe way.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.