Hey everyone! I'm Emir. As a product designer, I ve always struggled with heavy Lottie files slowing down my SaaS projects.
Instead of just complaining, I decided to 'vibe code' a solution using AI agents. It took exactly 7 days to build TinyLottie from scratch. It s launching right here tomorrow!
I m curious what s the biggest 'web performance' headache you face in your projects? I'd love to gather some feedback before the big day!
Damnnnnn. I'm working on an app called Habit Doom.
I moved away from Lottie animations cause I needed to keep the app size less than 50 MB.
Will give it a try. Is there no quality loss on compression?
@richard_andrews4 That is exactly why I built TinyLottie! Keeping an app under 50 MB is a real challenge when you want rich animations.
To answer your question: No, there is zero quality loss.
TinyLottie doesn't treat Lottie like a video or a raster image; it optimizes the underlying JSON structure. It removes redundant data, simplifies complex vector paths, and cleans up invisible layers that don't contribute to the animation. Your vectors stay crisp, and your animations stay smooth—just with a much lighter footprint.
Give it a spin with your Habit Doom assets. I’d love to see how much space we can save you so you can bring those animations back! ⚡
98% compression on Lottie JSON — is the technique mostly path/coordinate quantization, dropping redundant keyframes, or actually re-encoding to dotLottie's binary format? The answer matters because each of those has a different visual-fidelity trade-off, and "up to 98%" is the kind of number that's true on a specific shape of input.
@sounak_bhattacharya Great question! You’re absolutely right that 'up to 98%' is dependent on the input structure, but here is how we achieve those high-efficiency results without compromising the visual output:
Smart Path & Coordinate Optimization: We apply intelligent quantization and simplify vector paths by removing unnecessary anchor points that don't affect the final shape.
Redundancy Cleanup: TinyLottie scans for hidden or invisible layers and redundant keyframes that often get exported by default but don't contribute to the animation.
JSON Structure Refactoring: Instead of just binary re-encoding (like dotLottie), we focus on refactoring the JSON itself to be as lean as possible while remaining fully compatible with standard Lottie players.
Dynamic Decision Making: The '98%' usually happens on complex, unoptimized exports from design tools where there is a lot of 'meta-data bloat' to clean up.
We aim for the 'sweet spot' where the file size drops dramatically but the curves stay perfectly smooth. I'd love for you to run one of your complex files through TinyLottie and see how the fidelity holds up! ⚡