Skip to content

ividrine/express-starter-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

172 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

codecov

Express Starter App

A starter project for building RESTful web services.

About

This is a TypeScript project that provides a foundation for building RESTful web services using NodeJS and the Express framework. It builds upon RESTful API Node Server Boilerplate while keeping support for the same features and more. You can refer there for most of the core feature documentation.

Prerequisites

  • Node version 22 or later
  • Docker for local external app dependencies/tools (Postgres, PGAdmin, Grafana)
  • Git Bash (if on windows) for running shell scripts

Quick Start

  1. Run npx @idvidrine/create-express-app yourAppName or npm init @idvidrine/express-app yourAppName to initialize a new project.
  2. cd yourAppName and npm run dev to start the app

What's Different

TypeScript

This project uses TypeScript instead of JavaScript for its powerful tooling and type safety, reducing bugs and improving developer experience.

PostgreSQL

SQL database instead of NoSQL for structured data using Prisma ORM. It is also used as a store for the rate limiter.

Cloud Native

This application is meant to run inside containers locally, on-premises or in the cloud. It doesn't store any state in memory.

Observability

This project provides full application observability. It uses OpenTelemetry to collect/export logs, metrics and traces and send them to a collector running on the same network.

Github Actions

CI/CD is implemented using Github Actions. It has the following workflows:

  • lint.yaml: check for code quality
  • test.yaml: run unit/integration tests and upload coverage to codecov
  • release-please.yaml: create a release PR and generate github release
  • publish-docker.yaml: publish image to docker hub
  • publish-npm.yaml: publish package to npm

Packages

In addition to using the latest packages like Express 5, there were a number of different package choices made based on current community support and usefulness in this project:

  • Zod for object schemas / validation
  • Vitest for unit/integration testing
  • Scalar for API documentation
  • pnpm package manager

Local Development

Docker Compose is used for local application infrastructure and tools. It provides the following for a strong local development experience:

Inspirations

License

MIT

About

A starter project for building RESTful web services.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •