Key things I learned about scroll-driven animations:
- Use Canvas, not Video — frame-accurate scrubbing only works on canvas
- WebP format — 25–35% smaller than JPEG, 160 frames came out to ~19MB
- Separate scroll logic from rendering — never draw inside a scroll handler, use requestAnimationFrame instead
- position: sticky + tall container — the structural trick behind all Apple-style scroll animations
Same technique Apple uses on their product pages. Claude Code handled the entire build.
Drop a comment if you think this could be something we can sell together, I build, you sell, we split.