● Engineering · 5 min · March 26, 2026
Scrollytelling without scroll-jacking
Good scrollytelling never overrides the user's scroll. The browser's scroll behaviour is the most trusted gesture on the web — taking it away is a confidence-killer, even when the alternative is technically more cinematic.
Our rule: read the user's scroll, don't write it. Pin a scene, drive its timeline by scroll progress, and release back to flow content as soon as the scene is done. The user always feels in control, because they always are.
Stack-wise: sticky containers + a global progress ref + R3F `useFrame` for canvas, IntersectionObserver for HTML, CSS scroll-driven animations for the cheapest reveals. GSAP ScrollTrigger when you need scrub control across multiple targets — but only then.
Almost every Awwwards-winning immersive site this year follows this discipline. The ones that don't end up in the case-studies that warn against scroll-jacking.
— Triptych Studio