
AETHER MOBILITY · OPERATIONS
Real-time operations dashboard for dispatch and fleet health.
Unified telemetry, incidents, and dispatch into one Next.js operations surface — fewer swivel-chair workflows, faster incident response, calmer night shifts.
- Client
- Aether Mobility
- Sector
- Web Development · Operations
- Timeline
- 10 weeks
- Services
- Real-time web, data modelling, SRE playbooks
The challenge
Four tools, one emergency; nobody trusted the same number
Aether’s dispatch team juggled a telemetry viewer, an incident chat, a spreadsheet for fleet utilisation, and a legacy map that drifted from ground truth. Night shifts burned time reconciling versions before acting. Fleet managers distrusted utilisation figures because definitions differed per region.
The COO asked for a single operations surface before peak season — ten weeks, no net-new data science team. Engineering demanded WebSocket-first updates; finance demanded cost controls on cloud spend.
We refused to “just embed Grafana everywhere.” The constraint was actionability: every tile had to map to a runbook step, not a vanity chart.
Our approach
Real-time product discipline — budgets, backpressure, and boring schemas
Framing. This was an SRE-shaped product: SLOs, error budgets, and human runbooks shipped alongside widgets.
Architecture. Next.js UI, Node gateway for WebSocket fan-out, TimescaleDB for hot telemetry paths with retention policies that finance signed. We used strict schemas for event payloads so partial outages degraded gracefully.
Phasing. Weeks 1–3: read-only consolidation with feature flags. Weeks 4–7: interactive dispatch actions behind role gates. Weeks 8–10: hardening, load tests shaped from peak-hour captures, and on-call dry-runs.
Judgment. We delayed map clustering polish until websocket stability hit three nines in soak tests — UX stewards disagreed initially, then thanked us.
The outcome
Response times dropped; utilisation rose; uptime held through peak
Median incident response time for Sev-2+ dispatch incidents fell 33% after runbook-linked tiles shipped. Fleet utilisation — revenue miles per active vehicle week — rose 18% with the same safety constraints once deadheading visibility improved. The dashboard and gateway maintained 99.95% uptime across the peak window in scope.
Four brittle internal tools retired; training took two afternoon sessions because flows mirrored how dispatch already talked.
Results
Results in numbers
- incident response timeMTTR for Sev-2+ dispatch incidents
- -33%
- fleet utilizationrevenue miles per active vehicle week
- +18%
- uptimedashboard + websocket gateway SLO
- 99.95%
- Tools retiredinternal spreadsheets replaced by the new surface
- 4
What we learned
What the night shift taught us
We underestimated keyboard-first workflows — mouse-heavy UI failed at 3am. We added shortcuts mid-programme. We were surprised how much trust came from printing a one-page incident summary — PDF export mattered more than animations.
Next time we would embed a “definition drift” alert when two metrics disagree by more than a threshold — catches spreadsheet ghosts early.
Tech stack
What shipped in production
- Next.js
- Node.js
- WebSockets
- TimescaleDB
Gallery
