Production-grade,
Backend with

Skip the boilerplate. Generate a production-ready Express 5 + TypeScript API with Prisma, Drizzle, or TypeORM, Docker, testing, and deployment config included.

Get Started

Tech Stack

Built with the best tools

Every project comes preconfigured with industry-standard tooling.

Express
TypeScript
Prisma
Drizzle
TypeORM
Docker
Jest
ESLint
Pino Logo
Pino
Zod

CLI

One command.
Full project.

Interactive prompts guide you through every choice — database, Docker, package manager, and more. Or pass flags for CI.

Terminal
$ npx pest-js-app
 ____  _____ ____ _____   _
|  _ \| ____/ ___|_   _| (_)___
| |_) |  _| \___ \ | |   | / __|
|  __/| |___ ___) || | _ | \__ \
|_|   |_____|____/ |_|(_)/ |___/
                        |__/
v3.3.2 - Progressive Express Starter Template
Project name · my-api
Project description · A PEST.js application
Author · developer
Database ORM · Prisma
Database provider · PostgreSQL
Add Docker support? · Yes
Package manager · pnpm
Initialize git repository? · Yes
Install dependencies now? · Yes
Project structure created
Git repository initialized
Dependencies installed
Next steps
cd my-api
pnpm dev
npx prisma migrate dev --name init
Happy coding!

Features

Everything you need

A complete project setup so you can focus on building your API.

Express 5

Latest Express with native async error handling and modern middleware APIs.

Database ORMs

Choose Prisma, Drizzle, or TypeORM with PostgreSQL, MySQL, or SQLite.

Docker Ready

Multi-stage Dockerfile and docker-compose with database services.

TypeScript

Strict config, ESLint flat config, Prettier, Husky pre-commit hooks.

Pino Logo

Structured Logging

Pino and pino-http for fast, JSON-structured request logging.

Request Validation

Zod schemas with validation middleware, rate limiting, and error classes.

FAQ

Common questions

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.

Ready to build?

Generate a complete backend with one command. Express 5, TypeScript, your database, Docker, testing, and deployment config included.