What it looks like
The dashboard is Markdown, so here is one. It is an example, rendered by Sluiceway's own code from the made-up data its tests use. In a real dashboard issue the boxes can be ticked. Here they cannot.
Sluiceway dashboard
🟡 4 pending · ⚪ 0 deploying · ⚪ 0 preview failed · 🟢 9 in sync · ⚠️ 1 pending stack destroys resources
Scanned 8c41f0e on 2026-09-21 10:02 UTC · run · last full scan 2026-09-21 06:00 UTC
Pending
Tick a box to deploy that stack exactly as its row shows it.
- apps/api:prod · 1 update · preview
from #5 by alice, #4 by renovate[bot] · compare1 change
updatekubernetes:apps/v1:Deploymentapi ·spec.template.spec.containers[0].image
- apps/legacy-worker:prod · 3 deletes, 1 tracking only · preview
from #427 by dave · compare
⚠️ DELETEaws:sqs/queue:Queuelegacy-jobs
⚠️ DELETEkubernetes:apps/v1:Deploymentlegacy-worker
⚠️ DELETEkubernetes:core/v1:Servicelegacy-worker1 other change
forgetaws:iam/role:Rolelegacy-worker
- apps/web:prod · 2 creates, 1 update · preview
from #418 by carol, and 2 changes outside this stack · compare3 changes
updatekubernetes:apps/v1:Deploymentweb ·metadata.labels["app.kubernetes.io/version"],spec.replicas
createkubernetes:autoscaling/v2:HorizontalPodAutoscalerweb
createkubernetes:core/v1:ConfigMapweb-feature-flags
- platform/ingress-nginx:prod · 1 update · preview
from #437 by renovate[bot] · compare1 change
updatekubernetes:helm.sh/v3:Releaseingress-nginx ·values.controller.image.tag,values.controller.replicaCount
In sync
9 stacks in sync
- apps/api:staging
- apps/auth:prod
- apps/auth:staging
- apps/web:staging
- data/postgres:prod
- data/postgres:staging
- infra/network:prod
- monitoring/grafana:prod
- platform/external-dns:prod
Recently deployed
- apps/auth:prod · ticked by alice · 2026-09-21 09:41 UTC · run
- apps/auth:staging · ticked by alice · 2026-09-21 09:12 UTC · run
- platform/external-dns:prod · ticked by carol · 2026-09-20 17:30 UTC · run
- Rescan all stacks
The parts
Section titled “The parts”Read the dashboard from the top.
- The header. Penny with four crates upstream, one per pending stack, and the destroy sign, because a pending row deletes resources. The header shows every picture.
- The counts line. How many stacks are pending, deploying, preview failed and in sync, always all four, and how many pending stacks destroy resources. Under it, the scan line says which commit the last scan checked out, when, in which run, and when the last full scan was.
- A pending row.
apps/api:prodhas one update waiting. Its row links the preview, names the pull requests that brought the change, links the compare view, and folds the changes under their count. Tick its box to deploy that stack exactly as its row shows it. - A row with deletes.
apps/legacy-worker:proddeletes three resources. A destroy is listed first, outside the fold, and always carries a warning. - In sync. The stacks with nothing to deploy, folded under their count.
- Recently deployed. The newest deploys from the dashboard, each with its ticker and a link to its run.
- The rescan box. Tick it to start a full scan of every stack. It deploys nothing.