Back to Blog

PlantUML Without Java: Text Diagrams With Zero Setup

plantumlcomparisondiagrams-as-codeuml

PlantUML is a capable, long-lived diagram-as-code tool. But it has one requirement that trips people up constantly: it needs Java. The renderer is a .jar, so every machine that draws a diagram — your laptop, your CI runner, your docs build — needs a working JRE on the path. When the Java version drifts, you get crashes on diagrams that worked yesterday, and “works on my machine” stops meaning anything.

If you like PlantUML’s approach but not its runtime, DGMO is a no-Java alternative: a single CLI and npm package, no JRE, no server, no .jar to keep on the classpath.

The setup difference

PlantUML, minimally:

# install a JRE first (and keep its version in sync everywhere)
brew install plantuml        # pulls in OpenJDK
plantuml diagram.puml        # JVM spins up per render

DGMO:

npm i -g @diagrammo/dgmo
dgmo diagram.dgmo            # renders to SVG/PNG, no JVM

In CI that difference is the whole ballgame: no JDK setup step, no version-pinning a runtime you don’t otherwise use, faster cold renders because there’s no JVM to start.

The syntax is lighter, too

A login sequence in PlantUML:

@startuml
participant Browser
participant Server
database UserDB
Browser -> Server: POST /login
Server -> UserDB: SELECT user
UserDB --> Server: user record
Server --> Browser: 200 OK + token
@enduml

The same thing in DGMO — participants are inferred from their names (so UserDB becomes a cylinder automatically), and there’s no @startuml/@enduml wrapper:

LoginBrowserServerUserDBPOST /loginSELECT useruser record200 OK + token
LoginBrowserServerUserDBPOST /loginSELECT useruser record200 OK + token
sequence Login

Browser -POST /login-> Server
Server -SELECT user-> UserDB
UserDB -user record-> Server
Server -200 OK + token-> Browser

DGMO covers the practical UML subset most teams actually reach for — sequence, class, state, ER, and C4 — with modern themed output and seven color palettes built in.

Where PlantUML still wins

This isn’t a clean sweep. PlantUML supports the full UML 2.x catalog plus BPMN, activity, deployment, and timing diagrams. If your team needs UML-complete formality, PlantUML’s decades of depth are hard to beat — and that depth is worth a JRE. DGMO aims at the diagrams most people draw day to day, not exhaustive UML coverage.

Try it

If the Java dependency is the only thing standing between you and diagrams-as-code, DGMO removes it. Start with the sequence diagram guide, or see the full side-by-side on the comparison page.