Featured project

Lumen

A self-hosted real-time metrics console that renders 50k points without dropping a frame.

  • Rust
  • axum
  • WebSocket
  • Svelte
  • Canvas
  • TimescaleDB

Lumen is a metrics console for people who got tired of dashboards that grind to a halt the moment the data gets interesting. The brief I set myself: stream tens of thousands of live points and keep interaction at 60fps on a laptop, not a workstation.

The problem

Most dashboard tools re-render the DOM on every tick. At a few hundred series that's fine; at the volume that actually reveals an incident, the main thread falls behind and the UI you need most is the one that locks up.

What I built

A thin Rust ingest service over axum fans incoming samples out over WebSocket with backpressure, so a slow client never stalls the pipeline. The front end draws to a single <canvas> with a fixed-budget render loop: downsampling happens before paint, and the loop skips frames under load instead of queueing them. State is Svelte runes; the hot path never touches reactive graph updates per point.

Outcome

50k live points at a steady 60fps on mid-tier hardware, with sub-frame input latency on pan and zoom. The architecture note is the most useful artifact — it's mostly a list of things I deleted.