# LottieFiles Developer Portal > The developer portal documents how to use our libraries and tools to create, manupilate and play Lottie animations, in both the lottie .json format and our more capable .lottie format. ## The Lottie Format Lottie is a .json based animation format. It is a simple and efficient way to represent animations in a way that is easy to read and understand. Lottie .json can be rendered using our dotLottie players. Lottie .json can be manipulated using our reLottie library. Use the following links to understand the Lottie format better: * [Lottie Documentation](https://lottiefiles.github.io/lottie-docs/): Lottie documentation * [Lottie Animation Community Specification](https://lottie.github.io/lottie-spec/latest/): Lottie specification from Lottie Animation Community. This spec is a minimzed subset of the full capabilities of Lottie. * [Lottie JSON Schema](https://lottiefiles.github.io/lottie-docs/schema/): Full JSON Schema definition for the format ## dotLottie Format dotLottie is an open-source file format that aggregates one or more Lottie files and their associated resources into a single file with theming and interactivity capabilities. They are ZIP archives compressed with the Deflate compression method and carry the file extension of ".lottie". dotLottie offers the following benefits over the .json format: **Multi-animations**: dotLottie files can contain multiple animations within a single file. These animations are decompressed when selected through the dotLottie player to conserve CPU resources. **Theming**: Bundle various themes within your .lottie file, allowing for easy customization of your animations. Define different themes as a Lottie slots object to override animation properties on the fly, including colors, stroke widths, gradients, and any Lottie animated property, all while ensuring that the animations remain lightweight and high-performing. **Interactivity**: Enable interactivity by incorporating your own state machine definitions within your .lottie file. State machines enable you to create a wide range of interactive scenarios for your animations. When bundled within a multi-animation .lottie, you can switch between animations based on user interactions and events. Use the following links to understand the dotLottie format better: * [dotLottie v1 Documentation](https://dotlottie.io/spec/1.0/): dotLottie v1 documentation * [dotLottie v2 Documentation](https://dotlottie.io/spec/2.0/): **RECOMMENDED**: dotLottie v2 documentation, including information on theming and state machines ## dotLottie Players dotLottie players are libraries that allow you to render dotLottie animations on various platforms and frameworks. They are open-source and available for download and integration into your projects. * [dotLottie Web Players](https://developers.lottiefiles.com/dotlottie-players-web-llms.txt): how to use the dotLottie players to render dotLottie animations in web browsers and JavaScript frameworks * [dotLottie Mobile Players](https://developers.lottiefiles.com/dotlottie-players-mobile-llms.txt): how to use the dotLottie players to render dotLottie animations on iOS, Android, and React Native ## dotLottie-JS dotLottie-JS is a JavaScript library that allows you to create and manipulate. It can be used to create and update themes and state machines within dotLottie files. * [dotLottie-JS](https://developers.lottiefiles.com/dotlottiejs-llms.txt): how to use the dotLottie-JS library to create and manipulate dotLottie files, add themes and state machines ## reLottie reLottie is a JavaScript library that allows you to read and manipulate .lottie files. * [reLottie](https://developers.lottiefiles.com/relottie-llms.txt): how to use the reLottie library to read and manipulate Lottie .json files