Quick Start: Creating a .lottie File

Build your first .lottie file from scratch using DotLottieBuilder, then save it to disk.

Quick Start: Creating a .lottie File

This walks through building a .lottie file from scratch with DotLottieBuilder, and saving it to disk.

1. Create a builder

const { DotLottieBuilder } = require("@lottiefiles/dotlottie-io");

const builder = new DotLottieBuilder();
builder.generator("my-tool");

2. Add content

Animation JSON and theme JSON are passed as a Buffer (or a JSON string):

builder.addAnimation("intro", JSON.stringify(introLottieJson));
builder.addAnimation("hero", JSON.stringify(heroLottieJson));
builder.addTheme("dark", "Dark Theme", JSON.stringify({ rules: [] }));

3. Build

build() is synchronous — no await needed — and returns a ready-to-use DotLottie instance:

const dl = builder.build();

console.log(dl.animationIds()); // ['intro', 'hero']
console.log(dl.themeIds()); // ['dark']

4. Save to disk

const { writeFileSync } = require("node:fs");

writeFileSync("output.lottie", dl.toBytes());

Adding assets afterward

Images, fonts, and audio can be attached directly on the built DotLottie instance:

const { readFileSync } = require("node:fs");

const storedName = dl.addImage("logo.png", readFileSync("logo.png"));
console.log(storedName); // 'logo.png' (or 'logo_1.png' if that name was already taken)

dl.addAudio("click.mp3", readFileSync("click.mp3"));
writeFileSync("output.lottie", dl.toBytes());

See Managing Assets for the full rules on filename deduplication and supported audio formats.

Next up: Quick Start: Loading a .lottie file

Last updated: August 5, 2026 at 11:47 AMEdit this page