Ask HN: What do you use to create diagrams?

61 points by ttd ↗ HN
I've been working on a diagramming tool [1] and wanted to get some thoughts from people who regularly make architecture and other technical diagrams. I know my own experiences but I'm quite curious to hear others.

I'm guessing for a lot of people draw.io and Excalidraw are probably the go-to. If you use draw.io (or something else), what do you like about it, or what do you wish was better?

[1] - https://app.vexlio.com/ for the curious

82 comments

[ 3.1 ms ] story [ 44.5 ms ] thread
I’ve used terrastruct a lot over the past few years. It’s really nice to write your diagrams with code.
Lucidchart has worked well for me in the past, with built in AWS icon packs.
Seconded, very comprehensive paid tool that's been around for a while and works very well.
Do you use your AWS infra diagrams primarily as internal documentation? Or, where else do they end up?
99% sure this is not what you're asking for, but I think it's worth mentioning monodraw: https://monodraw.helftone.com

It's really useful for embedding diagrams in your code. Not so much for uses outside of code though.

This looks so much fun, thanks for sharing.
Hey, I got some good use out of Emacs artist-mode for a while - so I love seeing ideas like this! Thanks for linking that, hadn't seen it before.
Graphviz! The syntax is kind of absurd, but it produces some beautiful results and can be version controlled.
Definitely a personal fan of Graphviz as well! One thing I'm curious about are usecases that require version-controlled diagram sources. Do you guys have e.g. a build step that updates the rendered version somewhere? Or Confluence integration, etc?
I'm not the person you replied to, but for projects I maintain at work we've got a plugin for Confluence called Mark. It allows using Markdown to create Confluence pages, which is useful because the company uses Confluence for some reason. For diagrams (Mermaid, GraphViz, etc.) the source for the diagram is kept with the Markdown & I've got a CI job that generates diagrams & then runs Mark to update Confluence.

It makes it a lot easier to keep the documentation in sync with the code than having to remember to go to Confluence and update things. And avoids the pain of dealing with Atlassian's slow-loading site.

I work at a BigCorp with a fancy md-to-html generator that supports graphviz via code blocks, e.g.

    ```dot
    digraph { a -> b }
    ```
But day-to-day, I actually use graphviz inside emacs org-mode (and in a private git repo). If you press C-c C-c with your cursor on the code blocks, it plops the rendered graph below.
TIL org-mode can do that (though I really shouldn't be surprised). Thanks for the info!
(comment deleted)
Powerpoint
Powerpoint is also my go to. It just feels more natural and I prefer editing locally, not in web browser.
FigJam by Figma
Occasionally it can be hard to wrestle with but my go-to is PlantUML, which has a simple syntax and for better or for worse doesn't support many formatting options, so I can't get distracted tweaking the specifics of the layout
Semi, aside, but I'm desperate for a better way to make math diagrams (WYSIWYG style, not TeX). I asked about this a while ago and nothing is really doing it for me: https://news.ycombinator.com/item?id=38351370. Although since then I have heard about https://penrose.cs.cmu.edu/ as well. Right now I use Excalidraw because there's a fork (never landed... ugh) which supports TeX in labels. But its actual drawing tools are quite limited, not to mention janky. There are some other options not mentioned in that thread which I've found in since then, but I still haven't seen anything satisfactory.

If you made math stuff easy to draw I'd use your tool in a heartbeat. Unfortunately there's probably not a large market for that sort of thing.

I completely get this usecase, TikZ is great but sometimes WYSIWYG is just easier to work with. Re: math stuff in particular, you may be in luck, my tool does already support LaTeX equations as first-class objects. Check out https://vexlio.com/latex-equation-editing/ for a quick screencap if you're interested.
Obsidian has an excalidraw plugin that supports LaTeX both math and text. Then you can export your final diagram in many formats (pdf, svg, png, jpg).
I'm aware, but excalidraw is fairly underpowered for diagramming. It can do TeX but very little in the way of actual figures without a lot of finicky manual effort.
For work especially if it's for a large audience I use Visio or GraphViz. For my own consumption (and a couple co-workers) I really prefer mermaidjs, especially just to have it embedded in markdown files.
For your large audience cases - do those typically go in one-off presentations or are they for more long-lived things (design docs, customer-facing docs, etc)?
Where I work now 95% of the time it's long-lived things - design docs, architecture diagrams, etc.,.
None of the visual diagramming tools pass muster for me. They are all too fiddly and trying to use them requires a lot of yak-shaving to get the layout acceptable.

The diagrams I draw are all done with something like graphviz, plantuml, mermaid, Structurizr, or d2.

Very rarely I'll use excalidraw to throw together a one-off.

It depends on the use. If it is simple enough, mermaid diagrams have several advantages, like easy to understand versioning, and integration with many note taking programs.
excalidraw as already mentioned above
I use Mermaid.js - either through Notion or via an Mkdocs static site.

Increasingly, I'm describing my diagrams to an LLM and letting _it_ generate the Mermaid.

I find Miro the least vexing to use, but they are all pretty limited.
Mind if I ask what kinds of limitations you're running into with Miro (and the other tools)?
Well I make https://gojs.net, so I just use the GoJS diagramming library to make diagrams :D

Of course, its made for developers trying to make applications, not end users.

I use http://multiplayer.app/

It connects to your system using OpenTelemetry and it lets you automatically document all the components, dependencies, APIs, etc. I prefer it to static, drag and drop whiteboards because I get immediate visibility without having to waste time moving boxes and arrows.

(Of course you can still create sketches if you want, but the real value is in getting the information you need immediately)

Such a shame products like this hide features behind Call Us or Let's Chat buttons. Just let people buy it.