Satori is a library that converts HTML and CSS to SVG.
The tool solves the problem of generating dynamic images from HTML and CSS markup by implementing its own layout engine based on the SVG 1.1 specification. It accepts JSX elements or React-like objects and renders them into SVG output, handling layout calculation, font rendering, and typography to produce results that match browser rendering. The library supports a limited but practical subset of HTML elements and CSS properties, focusing on static and visible features suitable for image generation rather than full web compatibility.
Satori is well-suited for generating Open Graph images, social cards, and other dynamic image content where you need to render styled markup without a browser. It works with JSX syntax for straightforward usage and includes an experimental built-in JSX runtime that does not require React as a dependency. The tool is designed for stateless, pure components and does not support React APIs like useState or useEffect. Developers should be aware that Satori implements its own layout engine using Flexbox rather than full CSS, so the SVG output may not match browser rendering in all cases. The library supports a curated set of HTML elements and CSS properties; features like input elements, cursor properties, style tags, and external resources are not available.
The project shows consistent development activity with regular commits addressing bug fixes and feature improvements. Pull requests receive timely review and feedback from maintainers. The codebase maintains active issue triage with clear communication about feature scope and limitations. Documentation is kept current alongside code changes, and the project demonstrates responsiveness to user-reported problems.