Graphviz

No Change
hold
First Added:July 23, 2023 Updated: July 7, 2026

Graphviz renders directed and undirected graphs from DOT text using layout engines such as dot, neato, and fdp. We hold it for legacy DOT pipelines. Prefer Mermaid for new docs-as-code diagrams.

Blurb

Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks.

Summary

What it is: A CLI and library suite (originally AT&T Labs) that turns DOT language files into PNG, SVG, PDF, and other outputs. Strong at automatic layout of node-edge graphs. Weak at modern software diagram types and author ergonomics compared to Mermaid.

When to use (hold, not banned):

SituationNotes
Existing DOT in repos or CIMaintain what you have; do not rewrite without cause
Tools that emit DOTterraform graph, profilers, codegen, or analysis pipelines
Large abstract graphsfdp / sfdp layouts for hundreds of nodes where Mermaid chokes
Library embeddingApps that call Graphviz C APIs for programmatic layout

When to skip (default for new work):

  • Architecture docs in Markdown, ADRs, or Hugo posts (Mermaid adopt)
  • Stakeholder polish, cloud icons, manual layout (Draw.io trial)
  • Disposable chat sketches (AsciiFlow hold)

Trade-offs: DOT is verbose. Default styling looks dated. Custom icons often need HTML-like labels or post-processing. Scope is graphs and digraphs only. No native sequence, ER, or Gantt diagram types.

Details

DOT Language and Layout Engines

EngineBest for
dotHierarchical directed graphs (layered layouts)
neatoUndirected graphs; spring-model layouts up to ~1k nodes
fdpForce-directed layouts for medium undirected graphs
sfdpMultiscale fdp for large graphs
circoCircular layouts for cyclic structures
twopiRadial layouts from a root node

Author a .gv or .dot file, then run dot -Tsvg input.gv -o output.svg. Other binaries (neato, fdp, etc.) share the same DOT input with different layout algorithms.

Output and Integration

TopicNotes
FormatsPNG, SVG, PDF, PS, plain text, JSON-like graph dumps
Obsidian / HugoNo first-class DOT fence; render to SVG and embed, or use a plugin
GitHubNo native DOT preview in Markdown (unlike Mermaid)
LibrariesC core with bindings in many languages for programmatic graph build

Compared to Mermaid

TopicGraphvizMermaid
Diagram typesGraphs and digraphsFlowchart, sequence, class, ER, Gantt, and more
Author UXLow-level attributes and layout tuningMarkdown-adjacent blocks in docs
Git / PR diffsWorks if DOT is sourceAdopt default for repo-native diagrams
Visual polishDated defaults; heavy styling effortCleaner defaults for software docs
Garden stanceholdadopt

See Diagramming for the full garden matrix.

References