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.