Introduction
Published Oct 1, 2025 | Updated Mar 13, 2026
Zuro documentation: learn how to initialize an Express TypeScript backend, then add auth, database, uploads, validation, and API docs modules.
Stop wasting time on Express boilerplate. init gives you the production-ready core (Express + TypeScript + security + logging + env validation). Then use add to install modules like auth, database, uploads, and validator when you need them.
npx zuro-cli initThen add modules for your use case:
npx zuro-cli add authHow It Works
Init
npx zuro-cli initCreates Express + TypeScript project with security, logging, and env validation.
Add Modules
npx zuro-cli add authAdd features when you need them. Dependencies are auto-installed—running add auth also sets up database and error-handler.
Quick Start
# Create project
npx zuro-cli init my-app
cd my-app
# Add auth (auto-installs database, error-handler)
npx zuro-cli add auth
# Run
npm run dev# Create project
pnpm dlx zuro-cli init my-app
cd my-app
# Add auth (auto-installs database, error-handler)
pnpm dlx zuro-cli add auth
# Run
pnpm dev# Create project
bun x zuro-cli init my-app
cd my-app
# Add auth (auto-installs database, error-handler)
bun x zuro-cli add auth
# Run
bun run devOne command, full stack: Running zuro-cli add auth automatically installs database and error-handler if they're missing. No need to remember the order!
Available Modules
| Module | Command | What You Get |
|---|---|---|
| Core | zuro-cli init | Express, TypeScript, Helmet, CORS, Pino logger |
| Database | zuro-cli add database | Drizzle ORM, PostgreSQL or MySQL |
| Uploads | zuro-cli add uploads | S3, R2, or Cloudinary uploads with proxy, direct, or multipart flows |
| Auth | zuro-cli add auth | Better-Auth, signup/login, sessions |
| API Docs | zuro-cli add docs | Scalar UI + OpenAPI generated from Zod |
| Validator | zuro-cli add validator | Zod middleware for request validation |
| Error Handler | zuro-cli add error-handler | Custom error classes, consistent responses |
What Makes Zuro Different?
Tech Stack
Everything uses battle-tested libraries:
| Category | Library | Why |
|---|---|---|
| Framework | Express.js | Most popular Node.js framework |
| Language | TypeScript | Type safety out of the box |
| Database | Drizzle ORM | Type-safe queries, great DX |
| Auth | Better-Auth | Modern, flexible auth |
| Validation | Zod | Runtime + TypeScript validation |
| Security | Helmet | Secure HTTP headers |
| Logging | Pino | Fastest JSON logger |
Project Structure
After zuro-cli init + adding modules:
Next Steps
→ Init Command
Create your first project
→ Add Database
Connect PostgreSQL or MySQL
→ Add Auth
User signup, login, sessions
→ Add Uploads
S3, R2, or Cloudinary upload flows
→ Add Error Handler
Consistent API error responses
→ Add Validator
Validate requests with Zod
→ Add API Docs
Document uploads, auth, and your own routes