Editable .drawio from plain English vs. diagrams-as-code in Python

The mingrammer "Diagrams" library defines cloud diagrams in Python and renders them to a static image. Diagrams.so turns plain English into an editable .drawio you can open and change without writing code.

Overview

The "Diagrams" library by mingrammer is a popular open-source, diagrams-as-code tool: you describe cloud systems in Python and it renders them to a static image through Graphviz. Because the diagram is code, it is free, diffable in pull requests, and easy to regenerate in CI, all genuine strengths. Diagrams.so serves a different need. Instead of writing and running Python, you describe the system in plain English and get back an editable .drawio file that anyone on the team can open and adjust, not just people who write code.

Why teams choose Diagrams.so

  • No Python, pip install, or Graphviz to set up, it runs in the browser
  • Editable .drawio output, not a static PNG, so you can drag, relabel, and restyle after generating
  • Anyone can open and edit the result, not only people who write Python
  • Official AWS, Azure, GCP, and Kubernetes icons auto-selected from a description
  • Architecture warnings flag single-AZ, public exposure, and missing boundaries
  • Free tier with 10 credits and no credit card required
  • Import existing .drawio files for free on all plans

Feature comparison

FeatureDiagrams.soThe "Diagrams" Python library (mingrammer)
Input methodPlain EnglishPython code
OutputEditable .drawio XMLStatic image (PNG/SVG via Graphviz)
EditabilityFull drag-and-drop in Draw.ioEdit the code, then re-render
SetupNone, browser-basedPython and Graphviz install
CI and repo workflowCommit the .drawio; regenerate manuallyNative, code in repo rendered in CI (its strength)
Cloud iconsOfficial AWS/Azure/GCP/K8sProvider node sets (AWS, Azure, GCP, K8s, and more)
AudienceAnyoneDevelopers comfortable in Python
Cost$0 / $15 / $25 per monthFree (open source)
Import .drawio filesYes, free on all plansN/A or requires manual upload

Verdict

The mingrammer Diagrams library is the better choice when you want diagrams-as-code: a Python file checked into your repo and rendered in CI so the picture regenerates with every change. Diagrams.so is the better choice when you want to describe a system in words and get an editable diagram back, with no Python, no build step, and openable by anyone on the team.

Ideal for: The Diagrams Python library is ideal for developers who want their diagrams generated from code in CI. Diagrams.so is ideal for anyone who wants an editable architecture diagram from a plain-English description.

Frequently asked questions

Is Diagrams.so a good alternative to the mingrammer Diagrams library?

For people who would rather not write code, yes. The Diagrams library is a strong diagrams-as-code choice: you define the system in Python and it renders a clean image, which is great for repos and CI. Diagrams.so takes plain English instead and returns an editable .drawio file you can change without touching code.

Do I need to write Python to use Diagrams.so?

No. There is nothing to install, no pip and no Graphviz. You describe the architecture in plain English in the browser. The mingrammer library, by design, expects you to write Python, which is what makes it code-diffable.

Is the output editable, or a static image?

Diagrams.so returns a native, fully editable .drawio file, so you can drag nodes, relabel, and restyle after generating. The Diagrams library renders a static image (PNG or SVG via Graphviz); to change it you edit the Python and re-render.

Can I generate diagrams in CI the way diagrams-as-code does?

Not natively. Rendering from code in CI is exactly what the mingrammer library is built for, and it is a real advantage there. Diagrams.so is browser-based: you generate an editable .drawio and can commit that file next to your code, but it does not render itself in a pipeline.

Does Diagrams.so export to draw.io?

Yes. Output is native .drawio (mxGraphModel) XML that opens in Draw.io, Confluence, and the VS Code extension, and you can also export to PNG or SVG.