← back to projects
PROJECT 06 · 2025

Relayroom

A lightweight internal status page for small engineering teams to broadcast what's up, what's degraded and what's being worked on — without adopting an incident-management platform.

Developer tool Shipped Sole builder
TypeScriptSQLiteFastify

The problem

Small teams kept reaching for enterprise incident tools that assumed a dedicated on-call rotation, an SRE team and a budget line. What they actually needed was a page that told the rest of the company what was going on.

The approach

Reduced the surface area to three states — operational, degraded, down — and one update stream per service. No escalation policies, no paging integrations, no SLA tracking. Those are real needs for a different kind of team.

OBSERVEREDUCEMODELBUILDTESTSHIP

System diagram

Focus or hover a node for what it does.

Service
State
Update
Public page
Subscriber
A service is registered with a name and nothing else.
State is one of three values, always visible.
An update is a short, timestamped note attached to a state change.
The public page renders the current state and update history.
A subscriber gets a notification only when state actually changes.

By the numbers

3
Service states
1
Update stream per service
9
Interface states
4
Releases

Decisions I kept

  • No escalation policies or on-call rotations — out of scope by design
  • One update stream per service, no threads
  • Plain-text history instead of a timeline visualization that needed explaining

Things I didn't build

  • Paging integrations — the teams using this didn't have a formal on-call rotation
  • SLA and uptime percentage tracking — that's a different product's job
  • Multi-tenant support — this stayed a self-hosted, single-team tool

What changed

Adopted by a handful of small teams as an internal status page; the smaller surface area meant new teammates understood it without a walkthrough.