Workshop app for Zerops: submit markdown, workers render
each section to PNG/PDF, and the browser shows live queue depth. Topology is
SPA + API + worker + Postgres + NATS + Valkey. Deploy from .zerops-recipe/
(one environment per folder + repo-root zerops.yaml).
Environments (via .zerops-recipe/):
- AI Agent — deploy
- Remote (CDE) — deploy
- Local — deploy
- Stage — deploy
- Small Production — deploy
- Highly-available Production — deploy
npm install
npm test
npm run build
npm run devOpen http://localhost:5173. The API listens on :3000 with an in-memory
store and a stub renderer when DATABASE_URL / NATS_URL / VALKEY_URL are
unset.
On Zerops the SPA needs its API origin at build time, and the API and worker
both need the database, queue, and cache connections. The worker additionally needs a headless browser and fonts
installed in its runtime. See AGENTS.md for what each process reads.
Slides are split on a line that is only ---.
apps/frontend Vite + React SPA
apps/api REST + WebSocket
apps/worker render process
packages/shared types, slide split
packages/engine jobs, lock, render, adapters
.zerops-recipe/ deploy manifests (six lifecycle environments)
Regression: npm test. That suite is the proof a change did not break the app.
Need help? Zerops Discord.