Beyond PlantUML – The Best Open Source Diagramming Alternatives
From “diagrams as code” to full-featured visual editors, here’s what to use if you want freedom, flexibility, and no vendor lock-in.
If you’ve ever been neck-deep in a documentation sprint, diagramming everything from class hierarchies to system architectures, you know that tools matter. PlantUML has been a go-to for years — especially for developers who love “diagrams as code” — but it’s not the only game in town. In fact, there’s a whole ecosystem of open-source tools that can slot right into your workflow, depending on whether you prefer text-based diagram generation or a good old drag-and-drop interface.
Here’s my breakdown of the most useful options I’ve run into, both as a developer and someone who has to occasionally sell diagrams to non-technical stakeholders without making their eyes glaze over.
Text-based / “Diagrams as Code” options
Mermaid
Probably the friendliest entry point if you’re coming from markdown-heavy environments. Mermaid’s syntax is lightweight, it’s open-source under the MIT license, and it’s already built into GitHub, GitLab, Notion, and Obsidian. You can drop a snippet in and have it render instantly. Great for quick flowcharts, sequence diagrams, Gantt charts, or even class/state diagrams.
Structurizr DSL
This one’s a bit more niche, aimed squarely at folks who use the C4 model for software architecture. Instead of juggling separate files for separate diagrams, you define one model and generate multiple diagrams from it. Makes architectural documentation a whole lot cleaner.
D2
A relatively new player with a modern declarative syntax and auto-layout capabilities. Handles UML sequence diagrams and a variety of other diagram types. Licensed under MPL 2.0, so you can bend it to your needs without feeling handcuffed.
Graphviz
The grizzled veteran of the group. Graphviz is all about rendering graphs from DOT files and has been the backbone of countless visualizations over the last two decades. If you’re working on anything where node/edge relationships matter more than aesthetics, this is your tool.
Kroki
Think of Kroki as a one-stop rendering API. It supports multiple engines under one roof — PlantUML, Mermaid, Graphviz, and more. You send it your diagram definition, and it sends you back an image. Super handy for integrations where you don’t want to manage the rendering yourself.
Visual or GUI-based editors (open source)
diagrams.net (formerly draw.io)
A heavyweight in the “free, open, and works everywhere” category. Browser-based, with offline desktop builds available. Drag shapes, connect lines, export to PNG/SVG/PDF — it’s got everything you’d expect. Also plays nicely with GitHub, Google Drive, and OneDrive.
Dia
If you like your tools lightweight and local, Dia might fit. It’s a GTK-based desktop app that’s been around forever. Good for UML, ERDs, flowcharts, and even electrical diagrams. Supports scripting and custom shapes for the tinkerers among us.
ArgoUML
A Java-based UML modeling app that supports all UML 1.4 diagrams. While it feels a bit old-school compared to web-based tools, it’s surprisingly capable — it can even reverse engineer Java bytecode and spit out diagrams for you.
And for the record…
There’s also yEd Graph Editor. Not open-source, but free to use, and packed with advanced layout algorithms. Worth checking out if you need something GUI-based with sophisticated auto-layout capabilities.
When to use what
If you want everything version-controlled and reproducible, stick to Mermaid, Structurizr DSL, D2, Graphviz, or Kroki.
If you’re collaborating with non-technical folks or need something for rapid visual mockups, go with diagrams.net, Dia, or ArgoUML.
Different projects call for different tools — and having this toolbox ready means you’re not locked into a single way of working.