Video
Moving scroll videos to the edge: what broke and what we learned
Serving a car service's videos from the edge cut its hosting traffic. One video, the one tied to the scroll, taught us to test how people really scroll.
IO Creative2 min read
Ran on
- Next.js
- Netlify
- Cloudflare
The problem
BlueSky Limo's site opens with video: a hero loop, an orbit around a car, and a scene that plays as you scroll. They look great, and they were most of what every visit downloaded from the site's host.

How we defined it
The job: take the heavy files off the site's host, and keep every video playing exactly as before, in Safari and Chrome, on a slow scroll and a fast one.
How we solved it
We moved the fixed design videos to the edge: a small worker that serves the files from close to the visitor. Static files alone ignore range requests, which Safari and the scroll scene need, so the worker answers those too. We checked it served the same bytes as before, slice for slice.
The hero and the orbit worked from the edge straight away. The scroll scene didn't. On a fast scroll while the video was still downloading, Chrome cancelled and re-requested it in many small pieces, and the scene stalled. It stalled in 3 of 4 runs from the edge, and in none of 9 runs from the original host.
The difference was the connection: Chrome talked to the edge over HTTP/3, which we could not switch off there. We rolled the scroll scene back the same day and kept the other two videos at the edge.
Our vision
Fixed video lives at the edge, close to every visitor. A video tied to the scroll moves only once it passes a fast scroll while still loading, so the next move is safe before it ships.
Test the way people really scroll: fast, and before the video has finished loading.
Our first checks loaded the page, waited, then scrolled. Real visitors don't wait. The failure only showed in the case we hadn't tried.
Measure again before you blame the host
Later runs showed the fast-scroll stall can happen on the original host too, on a slow connection: 3 of 6 runs against 2 of 6. Network speed mattered as much as the host. We fixed the scene so it measures itself again whenever the layout changes, which removed a separate jump ahead of the scroll.
Keep a way back
Every production change records the deploy it replaces. Rolling back took minutes, and no visitor saw a broken scene for long.
- −80%Host traffic on a visit that leaves after the first screenOur measurement, 2026-10-15
- ≈ −45%Host traffic on a visit that scrolls the whole pageOur measurement, 2026-10-15
- 3 of 4Fast-scroll runs that stalled from the edge (0 of 9 from the original host)Chrome, 2026-10-15