Designers

All 141 tools / Motion

Lint a Lottie file for size, expressions, embedded images and features that break on mobile players

Lottie JSON lintFreeFor developers and designers

25/day

free runs a day, no sign-in.

Before: what you give it

The example input, as typed in. You give it structured JSON.

{"v":"5.7.0","fr":60,"ip":0,"op":180,"w":1920,"h":1080,"layers":[{"ty":4,"nm":"dot","ks":{"p":{"a":0,"k":[100,100],"x":"wiggle(3,20)"}},"shapes":[]},{"ty":2,"refId":"img_0"}],"assets":[{"id":"img_0","p":"data:image/png;base64,AAAA"}]}

After: what comes back

The first lines of a real run on that input. Nothing here is edited by hand.

Lottie: 0.2 KB, 1920x1080, 60 fps, 3 s, 2 layers, 1 expressions.

- [high] 1 expression(s) found (e.g. "wiggle(3,20)"). Many native players (and lottie-web in safe mode) do not run After Effects expressions, so they render wrong or static. Fix: Bake expressions to keyframes before export.
- [medium] 1 embedded base64 image(s), about 0 KB of the file (base64 adds roughly a third over the binary). Fix: Use vectors, or link external images, or switch to video for photographic motion.
- [low] Frame rate 60: 60 doubles keyframe data against 30 for little gain on simple UI motion.

Limits: reads structure only; it cannot render the animation, test player support, or see what a given player does with unusual features. Size thresholds are our conventions. dotLottie archives are not read.

What you get

File size, canvas, frame rate and duration, plus findings with severity and a fix for each

What it cannot do

Reads Lottie JSON only; dotLottie (.lottie zip) files are not supported, and size thresholds are conventions.

Who it is for

  • Developers
  • Designers

Free and Pro

Free25 runs a day per IP address, up to 400,000 characters a run.
ProNo daily limit, 300 requests a minute, up to 200,000 characters a run.

What each plan includes

Use it from your assistant

The tool is called lint_lottie_json. Connect the server once, then ask for it by name or just describe the job. Install steps for each app.

claude mcp add --transport http designers https://designers.allthepossibles.com/mcp
curl -X POST https://designers.allthepossibles.com/api/lottie-json-lint -H 'content-type: application/json' -d '{"json":"{\"v\":\"5.7.0\",\"fr\":60,\"ip\":0,\"op\":180,\"w\":1920,\"h\":1080,\"layers\":[{\"ty\":4,\"nm\":\"dot\",\"ks\":{\"p\":{\"a\":0,\"k\":[100,100],\"x\":\"wiggle(3,20)\"}},\"shapes\":[]},{\"ty\":2,\"refId\":\"img_0\"}],\"assets\":[{\"id\":\"img_0\",\"p\":\"data:image/png;base64,AAAA\"}]}"}'

Try it here

The form starts with the same example input, so you can run it first and then swap in your own.

More in motion

All motion tools