Contributing
February 16, 2026 · View on GitHub
Thank you for your interest in contributing to the dotlottie-web monorepo! This guide will help you get set up and contribute effectively.
Prerequisites
Getting Started
# Clone the repository
git clone https://github.com/LottieFiles/dotlottie-web.git
cd dotlottie-web
# Install dependencies
pnpm install
# Build all packages
pnpm run build
Project Structure
This is a monorepo with the following packages:
| Package | Path | Description |
|---|---|---|
@lottiefiles/dotlottie-web | packages/web/ | Core player library (canvas + WASM) |
@lottiefiles/dotlottie-react | packages/react/ | React wrapper |
@lottiefiles/dotlottie-vue | packages/vue/ | Vue wrapper |
@lottiefiles/dotlottie-svelte | packages/svelte/ | Svelte wrapper |
@lottiefiles/dotlottie-solid | packages/solid/ | Solid wrapper |
@lottiefiles/dotlottie-wc | packages/wc/ | Web Component wrapper |
Development Workflow
# Start dev mode (all packages)
pnpm run dev
# Run tests
pnpm run test
# Lint
pnpm run lint
# Format
pnpm run format
# Type-check
pnpm run type-check
To work on a specific package, run commands from within its directory:
cd packages/web
pnpm run build
pnpm run test
Making Changes
- Create a branch from
main. - Make your changes.
- Ensure linting and tests pass:
pnpm run lint && pnpm run test. - Add a changeset (see below).
- Open a pull request against
main.
Changesets
We use Changesets to manage versioning and changelogs. Every user-facing change needs a changeset.
# Add a changeset
pnpm changelog
# Follow the prompts to:
# 1. Select the affected package(s)
# 2. Choose a version bump (patch / minor / major)
# 3. Write a short summary of the change
The generated .md file in .changeset/ should be committed with your PR.
Versioning
We follow Semantic Versioning:
- Patch — backward-compatible bug fixes
- Minor — new functionality, backward-compatible
- Major — breaking API changes
Pull Requests
Your PR should:
- Clearly describe the changes and motivation.
- Link to related issues (use
Fixes #123). - Include tests for new or changed functionality.
- Include a changeset if the change is user-facing.
- Pass all CI checks.