PlantUML Link to heading

PlantUML is a great diagramming as code tool. You can create different types of UML diagrams as plain text, and export them to different formats.

# this will spin up a web server with a web GUI on :8080
docker pull plantuml/plantuml-server:jetty
docker run -p 8080:8080 plantuml/plantuml-server:jetty

Mermaid Comparison Link to heading

mermaid.js is also a great diagrams as code tool.

  • mermaid has better DX, and is supported in multiple editors.
  • mermaid can be embedded in Markdown files through codeblocks.
  • mermaid has no need for a compile or generation step when rendered in web platforms (e.g.: GitHub, GitLab, Hugo).
  • PlantUML is more extensible, and has a mature ecosystem.
  • PlantUML has support for icons. E.g.: AWS icon set.

To keep it simple:

  • mermaid is great for:
    • Whipping out quick diagrams, with live preview on tools like VSCode.
    • Including diagrams as text in READMEs or any .md file, and rendering them in the web.
  • PlantUML may be a good option for:
    • More complex diagrams, which require labels, images, or more informative layout.
  • [[flowchart-vs-state-diagram|flowchart Vs State Diagram]]