Quick Start
Customize and start the web app, admin console, Content Studio, worker, PostgreSQL, Redis, and local object storage with one guided workflow.
Verified against starter commit
2a1a04a.
By the end of this page, you will have the customer app, admin console, Content Studio, durable worker, two SaaS databases, a Payload database, Redis, and a private local S3-compatible bucket running together.
Requirements
- Node.js
>=20.19.0 <23 - pnpm
10.22.0 - Docker with Compose
Guided first run
git clone https://github.com/PansaLegrand/sushi-saas-template.git
cd sushi-saas-template
pnpm install
./scripts/setup.sh development
pnpm dev:doctor
pnpm dev:allThe guided setup opens pnpm customize, writes missing ignored environment profiles, starts PostgreSQL, Redis, and Garage, creates sushi_dev, sushi_test, sushi_content, and the restore-drill database, applies Drizzle and Payload migrations, and provisions the private sushi-dev bucket. It is idempotent and never overwrites an existing environment file.
For a non-interactive first clone that keeps neutral product defaults, use pnpm setup instead.
pnpm dev:doctor is read-only. It checks tool versions, environment boundaries and permissions, Docker, PostgreSQL, Redis, migrations, local object storage, Content Studio configuration, and occupied ports without printing secret values.
pnpm dev:all starts:
| Process | Address |
|---|---|
| Customer app | http://localhost:3000 |
| Admin console | http://localhost:3001 |
| Content Studio | http://localhost:3002/admin |
| Durable worker | background process with prefixed logs |
Use --web-only, --no-studio, or --with-stripe for a deliberate partial workflow. The runner executes doctor first and stops the complete process group on Ctrl-C.
Safe demo data and reset
pnpm dev:seed
pnpm dev:reset -- --dry-run
pnpm dev:resetThe seed creates or repairs a verified .test account, personal organization, deterministic 1,000-credit grant, and demo reservation without granting twice. Reset refuses external services, previews its exact local targets, requires explicit confirmation, recreates only this Compose project's data, reruns migrations, and reseeds unless told otherwise.
Verify the complete starter
curl http://localhost:3000/api/health
curl http://localhost:3000/api/ready
pnpm test:fast
pnpm test:e2e
pnpm buildPlaywright signs in through Better Auth and tests the tenant credit ledger, real Garage uploads, and the five-credit image task through the durable worker and signed result. Continue with Customize Your Product, Architecture and Error Contracts, and Testing and CI Contracts.