Shipping a cybersecurity SaaS dashboard under load
Thousands of live events, virtualized tables, and a render budget. Notes from NAXON on making real-time feel calm.
Calm under a firehose
A security operations dashboard ingests thousands of events a minute. The design goal isn’t to show all of them — it’s to make the stream feel calm and legible while staying genuinely live.
Windowing is non-negotiable
Virtualize every long list and table. Render the ~30 rows in view, recycle the DOM nodes as the user scrolls, and the table stays buttery whether it holds 100 rows or 100,000.
Suspense boundaries as a budget
- Each panel streams in behind its own boundary, so one slow query never blocks the whole board.
- Skeletons hold layout so nothing reflows when data lands.
- Stale-while-revalidate keeps numbers on screen while they refresh in the background.
“Real-time” should lower the operator’s heart rate, not raise it.
The payoff at NAXON: an SOC dashboard that feels instant and unflappable even during an event spike, instead of a frantic wall of flashing rows.
Working draft. An outline of the real article — the full write-up is on the way. The notes below are genuine takeaways from shipping this in production.