Mermaid vs PlantUML vs Graphviz
Tres herramientas de texto a diagrama, tres trabajos diferentes. Mermaid es conciso y renderiza en el navegador; PlantUML es el más profundo para UML; Graphviz organiza grafos grandes. Así es como se diferencian en la práctica.
⚠️ Aclaración: nosotros desarrollamos un editor de Mermaid gratuito. Los criterios de abajo — sintaxis, tipos de diagramas, cómo renderiza cada uno, soporte en GitHub — son objetivos; verifica cualquiera de ellos con la documentación propia de cada proyecto.
| Herramienta | Estilo de sintaxis | Tipos de diagramas | Cómo renderiza | Nativo en GitHub | Ideal para |
|---|---|---|---|---|---|
| Mermaid | Conciso, similar a Markdown | Diagrama de flujo, secuencia, ER, clases, estados, Gantt, mapa mental, pastel y más | JavaScript — renderiza en el navegador | Sí — nativo en Markdown | Docs-as-code en READMEs, wikis y notas |
| PlantUML | DSL verboso (@startuml … @enduml) | El conjunto UML más completo, además de muchos diagramas que no son UML | Java — un servidor PlantUML o un jar local | No — necesita una imagen prerrenderizada | Modelado UML profundo y exhaustivo |
| Graphviz (DOT) | Lenguaje de descripción de grafos (digraph { … }) | Grafos generales de nodos y aristas, árboles, mapas de dependencias | Motor Graphviz (dot); ports a WASM para el navegador | No — necesita una imagen prerrenderizada | Grafos y jerarquías grandes con disposición automática |
"Nativo en GitHub" significa que el diagrama se renderiza desde el código fuente en Markdown sin subir ninguna imagen. PlantUML y Graphviz necesitan un SVG/PNG prerrenderizado para aparecer en GitHub.
Cuándo elegir cada uno
Elige Mermaid cuando el diagrama documenta código y debe vivir en el repositorio — un boceto de arquitectura en un README, un diagrama de secuencia en un documento de diseño, un esquema en una wiki. Renderiza de forma nativa en GitHub y GitLab, así que los revisores lo ven en línea, y la sintaxis es lo bastante ligera como para escribirla mientras tomas notas.
Elige PlantUML cuando necesitas UML riguroso y completo — jerarquías de clases detalladas, diagramas de componentes y de despliegue, o un control preciso sobre la notación. Renuncias al renderizado nativo en GitHub y a la brevedad a cambio de profundidad, y ejecutas un servidor PlantUML (o el jar) para producir imágenes.
Elige Graphviz cuando el "diagrama" es en realidad un grafo grande cuya disposición no quieres colocar a mano — grafos de dependencias, grafos de llamadas, máquinas de estados grandes. Su lenguaje DOT más el motor de disposición automática manejan cientos de nodos que serían imposibles de dibujar manualmente.
Si llegaste aquí para hacer un diagrama ahora mismo, el camino más rápido es Mermaid.
Ver también: Editor de Mermaid · UML / clases · Ejemplos · Incrustar Mermaid
Preguntas frecuentes
Mermaid vs PlantUML — ¿cuál es mejor?
Ninguno es estrictamente mejor; apuntan a trabajos diferentes. Mermaid es conciso y renderiza de forma nativa en Markdown en GitHub y GitLab, lo que lo hace ideal para documentación que vive junto al código. PlantUML tiene un conjunto de funciones UML mucho más completo y un control más fino, pero renderiza a través de un servidor Java y no se dibuja de forma nativa en GitHub. Elige Mermaid para docs-as-code rápidos, PlantUML para UML exhaustivo.
¿Puede Mermaid hacer todo lo que hace PlantUML?
No. PlantUML cubre más tipos de diagramas UML y ofrece un control más profundo de estilos y disposición. Mermaid cubre los diagramas que la mayoría de los equipos necesitan en el día a día — diagramas de flujo, secuencia, ER, clases, estados y Gantt — con mucha menos sintaxis. Si necesitas UML avanzado, como diagramas de componentes o de despliegue detallados, PlantUML llega más lejos.
¿Es Graphviz lo mismo que Mermaid?
No. Graphviz usa el lenguaje DOT y destaca en organizar automáticamente grafos grandes de nodos y aristas — árboles de dependencias, grafos de llamadas, máquinas de estados. Mermaid es de más alto nivel y conoce los tipos de diagrama (sabe qué es un diagrama de secuencia), y renderiza en el navegador y en GitHub. Para un grafo grande generado, el motor de disposición de Graphviz es difícil de superar; para diagramas de documentación legibles, Mermaid es más rápido de escribir.
¿GitHub renderiza PlantUML o Graphviz?
GitHub renderiza Mermaid de forma nativa en bloques ```mermaid, pero no PlantUML ni Graphviz. Para esos, generas una imagen (SVG o PNG) con su renderizador y subes o enlazas esa imagen en tu Markdown.
¿Puedo convertir PlantUML a Mermaid automáticamente?
No existe un conversor fiable de un solo clic — las sintaxis y los conjuntos de funciones difieren, así que una conversión limpia normalmente implica reescribir el diagrama a mano. La buena noticia es que los tipos comunes (secuencia, clases, estados) se corresponden de cerca, así que una reescritura manual es rápida para los diagramas de uso diario.