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.