Skip the boilerplate. Generate a production-ready Express 5 + TypeScript API with Prisma, Drizzle, or TypeORM, Docker, testing, and deployment config included.
Tech Stack
Every project comes preconfigured with industry-standard tooling.
CLI
Interactive prompts guide you through every choice — database, Docker, package manager, and more. Or pass flags for CI.
____ _____ ____ _____ _
| _ \| ____/ ___|_ _| (_)___
| |_) | _| \___ \ | | | / __|
| __/| |___ ___) || | _ | \__ \
|_| |_____|____/ |_|(_)/ |___/
|__/Features
A complete project setup so you can focus on building your API.
Latest Express with native async error handling and modern middleware APIs.
Choose Prisma, Drizzle, or TypeORM with PostgreSQL, MySQL, or SQLite.
Multi-stage Dockerfile and docker-compose with database services.
Strict config, ESLint flat config, Prettier, Husky pre-commit hooks.
Pino and pino-http for fast, JSON-structured request logging.
Zod schemas with validation middleware, rate limiting, and error classes.
FAQ
Everything you need to know before getting started.
No. PEST.js is a project generator. It scaffolds a standard Express 5 + TypeScript project and gets out of the way. The generated code is yours to modify however you want with no runtime dependency on PEST.js.
Everything. The output is plain TypeScript files, not a locked-down template. Change the folder structure, swap middleware, add routes, remove what you don't need. There is no abstraction layer between you and Express.
PostgreSQL, MySQL, and SQLite through your choice of ORM: Prisma, Drizzle, or TypeORM. You can also skip the database entirely and add one later.
Yes. The CLI runs on Windows, macOS, and Linux. Dockerfile and Docker Compose configs are generated cross-platform. Git hooks use LF line endings and skip chmod on Windows.
Node.js 18 and above. The generated Dockerfile uses node:20-slim by default, but you can change it to any version you prefer.
Yes. Pass the --yes flag to skip all prompts and use defaults, or combine it with --name, --database, --dialect, and --docker flags to configure everything non-interactively.
Generate a complete backend with one command. Express 5, TypeScript, your database, Docker, testing, and deployment config included.