Two labs — pick whichever fits your stack (or do both). Finish the Production lessons first. Lab 1 builds Pulse from an empty folder and deploys it to Vercel. Lab 2 builds a local Docker Compose stack with Postgres, Prometheus and Grafana. Both need Git, npm and a terminal — from Core or equivalent practice. Lab 2 also needs Docker Desktop installed before you start it.
🧪Lab 1 · Pulse on Vercel
Build Pulse, a tiny status board, from an empty folder: harden the GitHub repo (including adding a collaborator), deploy to Vercel, add CI and preview cleanup, read logs and charts, cause and fix errors, improve load time, use Blob and alerts, then rehearse a staging-only incident.
🐳Lab 2 · Local stack with Docker and Grafana
Build a small Pulse-shaped app from an empty folder and run it locally with Docker Compose: app, Postgres, Prometheus and Grafana. Cause a failure, see it on charts, fire a local alert, then tear the stack down. No cloud bill.
By the end, you'll have shipped a practice app to Vercel with logs, charts, error tracking and alerts, improved its load time, and run the same observe-break-fix loop locally with Docker, Prometheus and Grafana.