Un bundler extremadamente rápido para JavaScript, TypeScript, JSX y CSS, con CLI y API para JavaScript y Go.
vercel/satori
Biblioteca avanzada para convertir HTML y CSS en SVG a partir de JSX, con un motor de maquetación propio.
- Estrellas
- 14,121
- Forks
- 392
- Issues abiertos
- 152
- Último commit
- anteayer
¿Qué es?
Satori recibe un árbol de elementos JSX o objetos simples similares a los de React, junto con los datos de las fuentes y el tamaño del canvas, y devuelve una cadena SVG. Implementa su propio motor de maquetación sobre Taffy para Flexbox, Grid y la disposición en bloques, y usa HarfBuzz para dar forma al texto. Así, el resultado busca coincidir con lo que renderizaría un navegador para el subconjunto de HTML y CSS compatible.
No es un motor de navegador completo. Los elementos y las propiedades CSS compatibles aparecen en una tabla de compatibilidad; las propiedades no compatibles se ignoran o generan un error, según el caso. Satori solo acepta componentes puros y sin estado, por lo que no se pueden usar hooks de React como useState. Las fuentes en formatos TTF, OTF, WOFF y WOFF2 deben proporcionarse explícitamente.
Para generar archivos PNG, se puede pasar el SVG a Sharp, que lo rasteriza con librsvg. El proyecto es el motor que utiliza Vercel para generar imágenes Open Graph.
Funciones clave
- 01Convierte JSX u objetos similares a los de React en cadenas SVG
- 02Maquetación con Flexbox, Grid y bloques mediante Taffy
- 03Da forma al texto con HarfBuzz, incluidas las funciones OpenType y la escritura de derecha a izquierda
- 04Compatible con fuentes TTF, OTF, WOFF y WOFF2
- 05Compatibilidad con hojas de estilo, selectores y consultas @media y @container
- 06Canvas WebGL y transformaciones de perspectiva experimentales
Casos de uso
- Generar imágenes Open Graph y tarjetas para redes sociales de forma dinámica, durante la compilación o al recibir una solicitud
- Renderizar gráficos con mucho texto como SVG para flujos de procesamiento de imágenes del lado del servidor
- Generar imágenes PNG pasando la salida SVG por Sharp
Inicio rápido
- 1
Instala el paquete satori desde npm (el fragmento del README no muestra el comando de instalación).
- 2
Llama a satori() con un elemento JSX, width, height y fonts, como en el ejemplo de Overview.
Antes de usarlo
- Solo se admite un subconjunto de HTML y CSS, y el resultado puede no coincidir exactamente con el renderizado del navegador.
- Tiene licencia MPL-2.0, que exige compartir los cambios de código fuente de los archivos modificados.
Temas
Preguntas frecuentes
- ¿Qué es satori?
- Biblioteca avanzada para convertir HTML y CSS en SVG a partir de JSX, con un motor de maquetación propio. Satori recibe un árbol de elementos JSX o objetos simples similares a los de React, junto con los datos de las fuentes y el tamaño del canvas, y devuelve una cadena SVG. Implementa su propio motor de maquetación sobre Taffy para Flexbox, Grid y la disposición en bloques, y usa HarfBuzz para dar forma al texto. Así, el resultado busca coincidir con lo que renderizaría un navegador para el subconjunto de HTML y CSS compatible.
- ¿satori es gratuito? ¿Qué licencia tiene?
- satori es open source bajo la licencia MPL-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿satori sigue mantenido?
- Mantenimiento activo. El último commit de satori fue el 20 oct 2026.
- ¿Para qué puedo usar satori?
- Generar imágenes Open Graph y tarjetas para redes sociales de forma dinámica, durante la compilación o al recibir una solicitud Renderizar gráficos con mucho texto como SVG para flujos de procesamiento de imágenes del lado del servidor Generar imágenes PNG pasando la salida SVG por Sharp
- ¿Cómo se instala satori?
- Instala el paquete satori desde npm (el fragmento del README no muestra el comando de instalación). Llama a satori() con un elemento JSX, width, height y fonts, como en el ejemplo de Overview.
- ¿Dónde consigo satori?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/vercel/satori
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una cadena de herramientas basada en Rust para proyectos web que ofrece un formateador y un linter para JavaScript, TypeScript, JSX, JSON, CSS y más, mediante CLI y LSP.
Colección de skills de agentes de IA de Baoyu para crear contenido, generar imágenes y publicar en WeChat, X y Weibo, compatible con Claude Code, Codex y agentes similares.
Un canvas de código abierto para diseño y creación, con generación de imágenes asistida por IA, presentaciones e importación desde Figma en una app de escritorio.
Una skill de Claude Code que genera variantes de logos en SVG a partir de los atributos de un producto y las convierte en imágenes de muestra con modelos de imagen Gemini.
Un kit rápido y completo para JavaScript y TypeScript: runtime, bundler, ejecutor de pruebas y gestor de paquetes en un solo ejecutable.