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
npx pest-js-appThe CLI walks you through project setup interactively. Or skip the prompts entirely:
npx pest-js-app --yes --name my-apinpx pest-js-app --yes --name my-api --database prisma --db-provider postgresql --dockernpx pest-js-app --yes --name my-api --package-manager pnpm