Introduction

What is PEST.js and why use it.

PEST.js is a CLI that generates complete Express 5 + TypeScript backend projects. You run one command, answer a few questions, and get a working API with routing, validation, logging, testing, linting, and optionally a database and Docker.

No copy-pasting boilerplate. No wiring up config files by hand. Just a clean starting point that works out of the box.

What's in the box

Every generated project includes:

  • Express 5 with native async error handling
  • TypeScript in strict mode
  • Pino for structured JSON logging
  • Zod for request validation
  • Rate limiting (global and per-route)
  • Jest + Supertest for testing
  • ESLint flat config, Prettier, and Husky pre-commit hooks
  • Vercel deployment config

You also choose from:

  • Database ORM: Prisma, Drizzle, or TypeORM (with PostgreSQL, MySQL, or SQLite)
  • Docker: multi-stage Dockerfile and docker-compose with database services
  • Package manager: npm, pnpm, or yarn

Quick start

Terminal
npx pest-js-app

The CLI walks you through project setup interactively. Or skip the prompts entirely:

Terminal
npx pest-js-app --yes --name my-api
Terminal
npx pest-js-app --yes --name my-api --database prisma --db-provider postgresql --docker
Terminal
npx pest-js-app --yes --name my-api --package-manager pnpm