Skip to content

Navigation

ServicesAI VideoIndustriesPortfolioPackagesPricingPortalHow We WorkFAQ
START A PROJECT

Motion Graphics

Lottie & Web Motion

Lottie renders vector animation from a JSON file, so an illustrated loop can ship at a fraction of the weight of the video or GIF it replaces, stay sharp on any display, and be driven by your own code. We design the animation, export it cleanly, and hand your engineers a file that drops in — with a reduced-motion fallback and an implementation note, not just a JSON blob over Slack.

  • Product teams who want empty states, loaders, toggles, and success moments to feel designed rather than default
  • Marketing sites carrying a heavy hero GIF or autoplaying MP4 that is hurting the page and still looks soft
  • Design systems teams who need motion delivered as an asset engineers can version, not a video someone re-exports
  • Founders on Webflow, WordPress, or Framer who want real animation without hiring a motion designer in-house
Live LottieDegird's mark as a real Lottie file — vector, transparent, playing in the page

The animation is rarely the problem. The handoff is

Most web animation dies somewhere between After Effects and production. A designer builds something beautiful using effects, track mattes, and expressions, exports it, and the JSON either fails to render those features at all or balloons into a file that stutters on a mid-range phone. Or the file works, but nobody agreed who owns integration: it lands in a ticket, an engineer wires up a player, it autoplays on every page load, ignores `prefers-reduced-motion`, and quietly becomes the thing that makes the page feel slow. Meanwhile the fallback nobody built means users with motion sensitivity or a blocked script see an empty box. Lottie is genuinely excellent technology, but it has a specific set of things it can and cannot do, and the projects that go badly are the ones where nobody checked that list before the animation was designed. We design inside those constraints from the first keyframe.

What's included.

Every lottie & web motion engagement covers all four of these — they are the work, not upsells.

Animation designed inside Lottie's actual feature set

Lottie renders shape layers, transforms, trim paths, gradients, solids, precomps, and time-based interpolation faithfully. It does not render most After Effects effects, layer styles, or 3D layers, and expression support depends on the player build you ship. So we scope the look against that list before animating rather than discovering it at export. Where a design genuinely needs something Lottie cannot express, we say so early and either rebuild the effect with shape layers or recommend a different format for that one asset.

A clean export and a real optimisation pass

Export runs through the LottieFiles/Bodymovin plugin, then the file gets worked on: unused precomps and hidden layers removed, keyframes thinned where the motion does not need them, path point counts reduced, decimal precision trimmed, and raster assets either replaced with vectors or embedded deliberately rather than by accident. You get the plain optimised `.json` and a `.lottie` (dotLottie) bundle, which packages the animation and its assets together as one compressed archive — usually the smaller of the two, and the better default for anything with images or multiple animations.

Integration your engineers do not have to reverse-engineer

Every animation ships with a short implementation README: which player to use, which renderer to pick, whether it should autoplay or be driven by scroll, hover, or a state change, and where to lazy-load it. We can supply React usage with `lottie-react` or the dotLottie player, a Webflow-ready hosted JSON, or a WordPress drop-in — and where you want an animation wired to real interaction, we hand over named layers and segment markers so your code can play a range instead of the whole timeline.

Fallbacks and reduced-motion handled by default

Every delivery includes a static SVG or WebP poster taken from the animation's resting frame, so a user with `prefers-reduced-motion: reduce`, a blocked script, or a failed fetch sees the intended composition rather than a hole in the layout. The README shows the `matchMedia` check to gate autoplay, and for decorative animations we mark them `aria-hidden` rather than inventing alt text for a loader. This is an accessibility requirement, not a nicety, and it is the single most commonly skipped part of a Lottie handoff.

See the work.

Style samples for this service — grouped by what they demonstrate, because that is how buyers actually choose.

Same 60 frames, rendered from one source · sizes measured from the served files

MeasuredOne animation as GIF, MP4 and Lottie — zoomed edges and real file sizes
Syncing 3 sites…Loader while the request runs
No submissions yetEmpty state that invites action
PublishedSuccess, confirmed once
Guest submissionsToggle with state change
Studio demoLoader, empty state, success and toggle — each a live Lottie in context
animation.json · playing live, not a video
Studio demoWhat a Lottie delivery contains, with the delivered file playing

What you actually receive.

Resolutions, ratios, formats, and source files — stated up front rather than discovered at handover. Full delivery specification.

Output formats
Optimised `.json` plus a `.lottie` (dotLottie) bundle — assets and animation zipped into one file
Renderer
SVG by default for crisp scaling; canvas recommended and tested where layer counts are high; the choice is documented per animation
Players supported
lottie-web, lottie-react, the dotLottie web component and React player, Webflow's native Lottie element
Interactivity
Named layers, segment markers, and frame ranges so playback can be driven by scroll, hover, state, or a promise resolving
Reduced-motion fallback
Static SVG or WebP poster from the resting frame, plus the `prefers-reduced-motion` gate in the README
Vector assets
SVG with named layers and CSS-animatable IDs where an animation is better done in CSS than in Lottie
Source files
After Effects project with the LottieFiles/Bodymovin export settings intact, re-exportable by any motion designer
Documentation
A per-animation implementation README covering player, renderer, mount point, lazy-loading, and loop behaviour

How it gets made.

The sequence for this service specifically. How we work, in detail.

  1. 01

    Placement and constraint brief

    We start with where the animation lives and what triggers it — hero, empty state, onboarding step, button — because that decides length, loop behaviour, canvas size, and how much complexity the file can afford. Anything that will not survive the Lottie export is flagged here, before it is designed.

  2. 02

    Styleframes and motion direction

    Static frames in your brand's illustration style, plus a description of how the motion behaves — easing, timing, what loops and what plays once. Approving a look on stills costs an hour; changing it after the animation is rigged costs days.

  3. 03

    Animation built Lottie-native

    Built in After Effects with shape layers and trim paths rather than effects, expressions baked where they would not survive export, and layer names written for the engineers who will target them rather than for the person animating.

  4. 04

    Export, optimise, and test

    Bodymovin export, then the optimisation pass, then the file is played back in both SVG and canvas renderers and checked on a throttled mobile profile — because an animation that only ever ran on a desktop preview has not been tested.

  5. 05

    Handoff and integration support

    JSON, dotLottie, poster fallback, source project, and the README delivered together. If your team hits something odd during integration, we look at your staging build rather than sending the file back over the wall.

Where we've done it.

Real clients, live products. Every one of these links to the finished work in the place it actually runs.

WordPress · Image CDN & Performance

PixJet

Explaining server-side image optimization to people who just want a faster site

Read the case study Watch the video

E-commerce · Cart Recovery

CartResQ

Making automated cart recovery feel like a revenue tool, not another marketing plugin

Read the case study

SaaS · AI Email Marketing

EmailFunnelAI

Turning a prompt-to-funnel AI tool into a story people understand in 60 seconds

Read the case study Watch the video

What it costs.

Lottie is the one service we do not sell as a cheap fixed tier, and it would be dishonest to invent one. Among the fixed-price kits it appears only in the Full-Funnel Bundle, from $2,900, which covers site and app onboarding motion as part of a rolling 30-day engagement. Most Lottie work is bought either on the $2,450/mo retainer — where a single animation typically comes back in about 48 hours, one request at a time from your queue — or as a scoped one-off project quote, usually 7 to 10 days. Tell us how many animations and where they live and we will tell you which of the three is cheapest for you.

Lottie & Web Motion questions.

Use Lottie for anything illustrated or vector-based: icons, loaders, empty states, UI micro-interactions, and simple hero animations. It stays sharp at any size because it renders vectors at runtime, supports true alpha transparency, and can be paused, scrubbed, or recoloured from your own code. GIF is the worst of the three for this job — it is capped at 256 colours, has only on/off transparency so edges fringe against your background, and is typically far larger than the equivalent Lottie. Video is the right answer when the content is photographic, uses heavy blur, film grain, or particle simulation, or is long enough that a vector file would be doing an unreasonable amount of per-frame work.

A Lottie is JSON, so its size tracks the number of layers, path points, and keyframes rather than the animation's duration or pixel dimensions — a five-second loop and a twenty-second loop of the same complexity are close to the same weight. The things that make files heavy are embedded raster images (base64 PNGs inside the JSON), high path point counts from traced artwork, per-frame baked keyframes, and unused precomps left in the composition. The optimisation pass targets exactly those. Shipping the dotLottie bundle instead of raw JSON adds compression on top, which is why we deliver both.

dotLottie (`.lottie`) is a zipped container that holds the animation JSON plus any images, fonts, and even multiple animations in a single compressed file. Because it is compressed, it is usually meaningfully smaller than the equivalent raw JSON, and because assets travel inside it, you avoid the broken-image problem where a JSON references files that never made it to the server. Use it when your player supports it — the dotLottie web component and React player do natively. Keep the plain JSON when you are on an older lottie-web setup, a platform whose Lottie element expects a JSON URL, or a build pipeline that wants to inline the animation. We ship both so the choice stays yours.

The SVG renderer creates real DOM elements for every shape, which gives you perfectly crisp scaling and lets CSS reach into the animation, but it means the browser is doing layout and paint across potentially hundreds of nodes each frame. The canvas renderer draws to a single element, so node count stops mattering and complex artwork gets much cheaper, at the cost of rasterising at the size it is drawn — you have to handle device pixel ratio, and you lose CSS access to the internals. Our rule of thumb: SVG for small, simple UI animations and anything that needs to scale arbitrarily; canvas for busy illustrations, many simultaneous instances, or anything that must run smoothly on low-end mobile. We test both and tell you which one this file wants.

Most effects do not: blurs, glows, distortions, and third-party plugins are simply absent from the exported JSON, because Lottie describes vector shapes and transforms rather than a render pipeline. 3D layers, layer styles, motion blur, and several blend modes are unsupported or approximated, inverted and complex track mattes are unreliable, and merge paths generally does not survive. Expression support depends on the build you ship — the lighter lottie-web build drops the expression engine entirely to save weight, so anything expression-driven has to be baked into keyframes at export. This is why we scope the design against the supported feature set at the brief stage rather than discovering it the day the file is due.

In React, install `lottie-react` or the dotLottie React player, import the JSON or point at the hosted `.lottie`, and render it inside a container with a fixed aspect ratio so nothing shifts while it loads. In Webflow, the built-in Lottie element takes a hosted JSON URL and exposes loop, trigger, and scroll-scrub settings directly in the designer, and it can be driven by Webflow Interactions without any code. In WordPress, the usual routes are a Lottie block or a small enqueue of the dotLottie web component, then a shortcode or block wrapper around it. Every animation we deliver includes the specific snippet for your stack, plus where to lazy-load it so it does not compete with your largest contentful paint.

Nearly always one of four things. The file is too complex for the SVG renderer, so the browser is recalculating layout across hundreds of DOM nodes every frame — switching to canvas usually fixes it outright. Several animations are playing at once, including ones scrolled far off screen, when they should be paused with an IntersectionObserver. The animation is fighting the main thread during a scroll or a hydration pass, so it should be delayed until after first interaction. Or the artwork itself has path point counts that came from auto-traced imagery and needs simplifying at source. Send us the file and the page and we will tell you which one it is — this is a diagnosis we do often.

More on ownership, licensing, payment, and revisions in the full FAQ.

What clients say.

“Degird was great to work with. They understood what I wanted and delivered a clean, high-quality promo and walkthrough videos that matched my expectations. Communication was smooth, and the whole process was easy. I'd definitely recommend Degird.”

“I had a fantastic experience with Degird! I worked with them to implement a Lottie animation for my application, and the results exceeded my expectations. The process was smooth, professional, and the team made everything easy to integrate. Highly recommend Degird for anyone looking to enhance their app with high-quality animations!”

Verified reviews, not cherry-picked quotes.

We'd rather send you to an independent review platform than write our own testimonials. See what clients say about working with Degird on Trustpilot.

Read Our Trustpilot Reviews

Need lottie & web motion?

Tell us what the video has to achieve and when you need it. We reply within one business day with a package or a scoped quote.

Start your project