Logo

dev-resources.site

for different kinds of informations.

Scaling Diagram Documentation

Published at
6/4/2023
Categories
documentation
diagram
excalidraw
mermaid
Author
sibelius
Author
8 person written this
sibelius
open
Scaling Diagram Documentation

At Woovi we are adding more and more documentation for all domains of product.
We have documentation for very specific implementation of the codebase to the higher level, to the high level of architecture and data modelling.
We are using different types of diagrams to describe some aspect of a domain, like state machines, sequence diagrams and flowchart.

Unstructured diagram workflow

Each developer start adding their diagrams using their favorite tool, like excalidraw, mermaid or even Figma.
It is great to have flexibility to build any diagram you want, but this flexibility is also hard to scale.

Problems with image-based diagram tools

Excalidraw and Figma provides a lot of flexibility to create your diagrams.
The workflow to add an excalidraw/figma diagram to our documentation is:

  • Create the diagram using excalidraw/figma
  • export an image of the diagram
  • add the image to the documentation

The problem with this approach is that we can't ensure consistency across diagrams, it is like if every developer writes their own CSS.
Another drawback of this approach is that it is not easy to edit the diagram. If you don't have the excalidraw/figma source, you would need to recreate the whole diagram by hand.
Also, you can't search on text inside diagrams, as they are images.

Text-based diagram tool

To solve all these problems, we investigate some text-based diagrams, and the one that fits better in our workflow is mermaid.
Mermaid renders Markdown-inspired text definitions to create and modify diagrams dynamically.
All our documentation is already in Markdown, so writing a diagram in mermaid is easy to learn.
Mermaid render on GitHub issues, so we can easily move diagrams from issues to our documentation.
Mermaid provides a Live Editor
You can easily copy, paste, edit and search diagrams.
We also solve the consistency problem, and we avoid recreating existing diagrams types.
It also works with ChatGPT and Show Me plugin.

In Conclusion

We still use Excalidraw and other image based diagrams for drafts and discussions, but when everything is decided, we move them to text-based mermaid to add to documentation.
As we grow, we are adding just a bit more of structure to make sure we enable can scale without moving slow.


Thanks to Eduardo from Woovi that come up with this proposal.


Woovi
Woovi is a Startup that enables shoppers to pay as they like. To make this possible, Woovi provides instant payment solutions for merchants to accept orders.

If you want to work with us, we are hiring!


Photo by Nsey Benajah on Unsplash

diagram Article's
30 articles in total
Favicon
Shorts. Solana Versioned Transaction structure
Favicon
Shorts. Get CompactU16 array length
Favicon
Easily Automate Flowchart Creation in Angular Diagram
Favicon
Creating effective system architecture diagrams is a critical skill
Favicon
From Diagram to Code with Amazon Q Developer
Favicon
Unlock Efficient Coding: Master Embedded Systems with Finite State Machines
Favicon
7 Best AI Diagram Generators for Effortless Visuals
Favicon
Animating systems diagrams with draw.io
Favicon
More Haskell Diagrams: Images
Favicon
Introduction to Haskell Diagrams
Favicon
More Haskell Diagrams: Contribution Graph
Favicon
iCraft Editor - Free 3D Architecture Diagram Drawing Tool
Favicon
Digram display of Python's commonly used third-party libraries
Favicon
Crafting Interactive Digital Logic Circuits Made Easy with Blazor Diagram Component
Favicon
Syncfusion Blazor Diagram Library Now Supports Swimlane Diagrams
Favicon
An Exploration into Use Case Diagrams
Favicon
HueHive diagram generator -Mermaid diagrams using ChatGPT
Favicon
What’s New in WPF Diagram: 2023 Volume 4
Favicon
Teoria | Documentando arquitetura de software com C4 Model + Plant UML
Favicon
Run Cystoscape.js with Node.js
Favicon
Text to diagram
Favicon
Reverse Engineering for the Good: From the Source Code to the System Blueprint (Part I)
Favicon
How to use UML Diagrams for better communication
Favicon
Scaling Diagram Documentation
Favicon
PLNT System
Favicon
Seamlessly Create a Mind Map Using the Blazor Diagram Component
Favicon
How to Communicate Your Process Visually using BPMN as Code
Favicon
Creating sequence diagrams using mermaidjs to map out your user journey
Favicon
A Complete Guide to Creating a Mind Map Using Angular Diagram Component
Favicon
Editing and previewing Mermaid diagrams on your docs (markdown, github, notion, confluence)

Featured ones: