// the find
airbnb/lottie-web
Render After Effects animations natively on Web, Android and iOS, and React Native. http://airbnb.io/lottie/
lottie-web renders After Effects animations exported as JSON (via the Bodymovin plugin) directly in the browser using SVG, Canvas, or HTML backends. It's for frontend devs working with designers who want AE-quality motion without hand-coding CSS/JS animations or shipping video files.
Three interchangeable renderers (SVG/Canvas/HTML) plus 'light' builds that strip out expression support for smaller bundles, so you can trade fidelity for bundle size depending on the animation. Feature coverage of AE constructs is genuinely deep — masks, mattes, shape layers, time remapping, text animation, expressions — which is why this became the de facto standard rather than a toy exporter. The same JSON format works across the web, iOS, Android, and React Native sibling libraries, so a design team exports once and every platform team consumes it.
The player source (player/js/*) is still pre-ES6 constructor/prototype style, not a modern codebase, which makes it unpleasant to debug or contribute to despite the project's size. Expression support means the player can execute arbitrary AE expression JS embedded in the animation JSON at runtime — a real concern if you're loading animations from anything other than a trusted design pipeline. Reusing the same animationData object across multiple loadAnimation calls silently breaks repeaters unless you deep-clone it first (issues #1159, #2151), and that gotcha is buried in the README rather than enforced by the API. Choosing the right build (full vs light vs svg-only vs canvas-only) isn't obvious from the npm install step — you have to go dig through the docs site to avoid shipping renderers you don't need.