PlantUML
๐ plantuml.com
PlantUML can be summarized as declarative diagrams or domain specific language (DSL). I tend to call it Diagrams As Code
for simplicity although this is not 100% technically correct.
PlantUML takes some code like this:
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: Another authentication Response
@enduml
And converts it to this
Within our docs and it is even more elaborate thanks to docusaurus.io,mdxjs.com and the remark-plugins. The community does amazing things โค๏ธ
Note that PlantUML does not look extremely pretty, but I am willing to pay any price to have maintainable, versioned, in-code diagrams! The two times a month we check the diagrams PlantUML or its alternatives definitely do their job!
In short
PlantUML (or its alternatives) take declarative code and convert it to an image of some form. It is like the .svg
file format - except that it describes a diagram instead of an image.
Online Server
They have an online server to start even!
Usage
We use it primarily for C4 Modeling. Note that I do not imply on the/you students that you use PlantUML, everyone can drink their own soup ๐