I use **PlantUML** a lot. It's what I use for drawing all sorts of diagrams and it's handy because of its easy markup (once you get used to it) while making things easy to maintain as projects grow (thanks to version control) This gist explains how I do my PlantUML workspace in a project. - The idea is to keep a `globals` directory for all diagrams to follow (like the "stylesheet" below) to keep things consistent. - I use a `stylesheet.iuml` file that keeps the use of colors consistent through use of basic FOREGROUND, BACKGROUND and ACCENT colors. - The `style-presets.iuml` file defines these colors so you can make "presets" or "themes" out of them. - As stated in the `stylesheet.iuml`, you'll need the **Roboto Condensed** and **Inconsolata** fonts for these to work properly. - You can choose to either run the PlantUML jar over your file/s, or use an IDE like VSCode with the PlantUML extension. Here's a preview of `example-sequence.puml` for example: https://imgur.com/Klk3w2F Assume the following directory structure: ```bash $ tree . ├── globals │   ├── style-presets.iuml │   └── stylesheet.iuml └── diagrams    ├── example-sequence.puml ├── etc... ``` ## Changelog 2020-01-27: - Added a preview of how it looks like when it's exported / viewed with PlantUML: https://imgur.com/Klk3w2F - Added a quick tip to use an IDE or the PlantUML jar to get this to work. - Corrected the filename - example-sequence.puml. It was .iuml before. The extensions don't really matter from what I can tell though. - Added this changelog.