LottieFiles

lottiefiles.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

A workflow for JSON-based animations: a library, an editor, optimisation and players for web and mobile, built around the Lottie format.

Promptfree, for everyone, and the only version there is
Build me the animation pipeline I actually need instead of paying for LottieFiles: optimise, host, preview and play JSON animations, on my own infrastructure.

Read this first: the format and the players are open, and the honest thing you are giving up is the marketplace — thousands of ready-made animations for people who do not animate. If that is why you pay, keep paying, or buy them individually. What is entirely replaceable is the hosting, the optimisation and the preview workflow.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode
- lottie-web or the dotLottie player for rendering; do not write a renderer
- puppeteer only for generating preview images and video, on a worker
- Caddy in front

THE DATA MODEL
- animations: id, uid, name, folder_id, source_json_path, optimised_json_path, dotlottie_path, width, height, frame_rate, in_point, out_point, duration_ms, bytes_source, bytes_optimised, features_json, created_by, created_at
- versions: id, animation_id, version, json_path, bytes, note, at — an animation embedded in a shipped app must never change under it
- previews: id, animation_id, kind, path, width, bytes — a still, a GIF, an MP4, a WebP
- themes: id, animation_id, name, colour_map_json — the same animation in your brand colours
- usages: id, animation_id, path, referrer_host, at — where each one is actually used
- tags, folders, and FTS over names and tags

OPTIMISATION, WHICH IS THE REAL WORK
- Round every numeric value to a sensible precision. Exported files routinely carry twelve decimal places on every keyframe, and cutting to three is often half the file with no visible difference
- Remove hidden layers, empty groups, unused assets and expressions that resolve to constants
- Deduplicate identical shapes and image assets by hash
- Convert embedded base64 images to referenced files, or downscale them — an embedded PNG is usually most of the weight
- Detect and report what cannot be optimised: expressions, merge paths, auto-orient, time remapping. Each of these is also a rendering risk, and the report is more valuable than the saving
- Always show source and optimised side by side, playing, at the same size. Optimisation you have not looked at is optimisation you have not verified
- Report the saving honestly: bytes before, bytes after, and gzipped, because that is what the network actually carries

COMPATIBILITY, WHICH IS WHERE THIS BITES
- The web player, the iOS player and the Android player do not support the same feature set. An animation that looks perfect in a browser can render blank on a phone
- Scan every uploaded file for the features that differ — expressions, mattes, merge paths, gradients on strokes, effects — and flag them per platform with a plain warning
- That check is the single most useful thing this tool can do, and it is the thing designers find out about after shipping

DELIVERY
- Serve the JSON gzipped or brotli-compressed with immutable cache headers and a content hash in the URL
- dotLottie output, which is a zip of the animation plus its assets and is dramatically smaller over the wire
- A tiny embed snippet, and a web component wrapping the player with sensible defaults: lazy, respecting `prefers-reduced-motion`, and pausing when off-screen
- Respecting reduced motion is not optional. Some people get genuinely unwell from motion, and an animation that ignores the setting is doing that to them

PREVIEW AND HANDOFF
- A player page per animation with a scrubber, speed control, loop settings, a background colour switcher and a size slider
- Renders as still, GIF, MP4 and animated WebP, generated by a worker — for the places a JSON animation cannot go, like an email or a marketplace listing
- A theme: map the colours in the file to your palette and store the result as a variant, so one animation serves a light and a dark interface
- A shareable read-only link per animation for review, with comments

THE LIBRARY
- Folders, tags, search over names and tags
- Usage tracking, so an animation nobody references can be deleted with confidence
- Versions, with the shipped version pinned and never overwritten

OPERATIONS
- .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, MAX_UPLOAD_BYTES
- Migrations on boot, each once
- The render worker is CPU-heavy and needs a concurrency cap
- Nightly backup of the database and the source files; optimised outputs are regenerable
- Health endpoint that optimises a small fixture

WHAT MATTERS MOST
The optimiser and the compatibility scan. Build precision rounding with a side-by-side preview first, then the per-platform feature warnings. Those two together are worth more than the hosting, and they are what stops an animation shipping blank on half your users' phones.

Give me the repository, the optimiser, the web component, migrations, .env.example, and a README with deploy steps behind Caddy and the platform feature table.

What you lose

  • A marketplace of ready-made animations, which is where most of the value is for people who do not animate
  • Optimisation that cuts file size without visible loss
  • Plugins for the design tools animators actually use

If you would rather not build

  • A CSS or SVG animation, which is often lighter

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$19/mo——

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

lottie-web

$0

The reference player for Lottie animations in a browser.

airbnb/lottie-webfree · open source

dotLottie

$0

A compressed Lottie container with a smaller, faster player.

LottieFiles/dotlottie-webfree · open source

Why this verdict

our own opinion · changed only by a person

82/100

Verdict yes at 82. Lottie is a JSON file and a free player. The library of ready-made animations is the only thing worth paying for.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about LottieFiles

answered from the record above

Is LottieFiles free?

No — the plan we track is $19 a month. Pro from around $19 per editor per month billed monthly, cheaper annually.

Can you replace LottieFiles by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 82 out of 100, build time one session. Read what you lose before you decide.

How much does LottieFiles cost?

$19 a month on Pro — $228 a year. Recorded 10 Aug 2026.

What do you lose by replacing LottieFiles?

A marketplace of ready-made animations, which is where most of the value is for people who do not animate; Optimisation that cuts file size without visible loss; Plugins for the design tools animators actually use. If any of those carry weight for you, keep paying.

Is there an open-source alternative to LottieFiles?

Yes: lottie-web, dotLottie. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 31 in Design & website builders

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc