Context
Most React performance challenges only show up at scale. The chart is fine with a thousand points. At a hundred thousand, with new points streaming in every second, the page locks up. The team blames React, then Highcharts, then the backend. The actual cause is usually a chain of small mistakes — re-rendering ancestors, unstable callbacks, mutating state through reference, and a streaming pipeline that doesn't batch.
Approach
We're building a live-data dashboard specifically designed to break under load — then engineering it until it doesn't. Highcharts with a streaming WebSocket source, decimation on read, render-throttling on write. The point is the methodology: instrument first, fix what the profiler actually shows, measure again. No guess-fixing.
What's inside
- 01Streaming data pipeline with backpressure-aware batching on the client.
- 02Highcharts boost module and decimation tuned for the data shape, not copy-pasted from the docs.
- 03React Profiler + Chrome Performance traces driving every change.
- 04Memoisation discipline: stable identities, narrow dependency arrays, selective context boundaries.
- 05requestIdleCallback for non-critical work, requestAnimationFrame for the chart write loop.
See it run live
See it run live.
Click show and we mount a Highcharts line series streaming 50,000 live points in your browser — engineered to stay smooth, with the techniques that get it there listed alongside.
What it demonstrates
Will hold 60fps at 100k+ live points on commodity hardware. The exercise demonstrates that React performance is a measurable engineering discipline — not a vibe, and not Highcharts' fault.
Stack
- React 19
- Highcharts
- WebSockets
- TypeScript
Facing something similar?
Twenty minutes is usually enough to know whether we can help.