TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What do you use to create diagrams?

61 pointsby ttd2 months ago
I&#x27;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&#x27;m quite curious to hear others.<p>I&#x27;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?<p>[1] - https:&#x2F;&#x2F;app.vexlio.com&#x2F; for the curious

51 comments

shagie2 months ago
Mermaid - support in many markdown rendering pages. Embedding a ``` block in Markdown and having it versioned as text is the big win.<p>Graphviz - same basic reason as Mermaid, though no markdown support. Versioning text is a lot easier than versioning binaries.<p>Draw.io - if you&#x27;ve got to have a binary, this is it. In particular, it allows you to embed the drawing information in the image so that you can import a .png file into draw.io and get the drawing.
评论 #43351218 未加载
评论 #43351034 未加载
ajkjk2 months ago
Semi, aside, but I&#x27;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: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=38351370">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=38351370</a>. Although since then I have heard about <a href="https:&#x2F;&#x2F;penrose.cs.cmu.edu&#x2F;" rel="nofollow">https:&#x2F;&#x2F;penrose.cs.cmu.edu&#x2F;</a> as well. Right now I use Excalidraw because there&#x27;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&#x27;ve found in since then, but I still haven&#x27;t seen anything satisfactory.<p>If you made math stuff easy to draw I&#x27;d use your tool in a heartbeat. Unfortunately there&#x27;s probably not a large market for that sort of thing.
评论 #43343746 未加载
评论 #43352795 未加载
brylie2 months ago
I&#x27;ve had a great experience using Excalidraw, which is also open source:<p><a href="https:&#x2F;&#x2F;excalidraw.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;excalidraw.com&#x2F;</a><p><a href="https:&#x2F;&#x2F;github.com&#x2F;excalidraw&#x2F;excalidraw" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;excalidraw&#x2F;excalidraw</a>
flaminHotSpeedo2 months ago
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&#x27;t support many formatting options, so I can&#x27;t get distracted tweaking the specifics of the layout
hiAndrewQuinn2 months ago
<a href="https:&#x2F;&#x2F;mermaid.live&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mermaid.live&#x2F;</a> ! Mostly because it lets me generate my diagrams <i>in code</i> rather than drawing them out by hand, which means I can version control them, as well as generate said code from human-language descriptions given to ChatGPT. Sequence diagrams are an especially favorite of mine.<p>There are a few good options in the code to SVG (PNG, JPG, whatever) space besides Mermaid. The venerable graphviz has been around since the 90s, I think, and uses the DOT language. The newer D2 language probably has the nicest overall aesthetics as well: <a href="https:&#x2F;&#x2F;play.d2lang.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;play.d2lang.com&#x2F;</a>
评论 #43372924 未加载
atoav2 months ago
As others mentioned mermaid and graphviz already, I want to throw in two slightly more obscure ways:<p>schemdraw (python library) is a library for drawing beautiful circuit diagrams. It has a surprisingly effective flowchart part as well, that allows you even to draw custom beziers arrows and stuff. You can do manual positioning of everything, which is sometimes an anonoyance with mermaid. Outputs to svg or png. <a href="https:&#x2F;&#x2F;schemdraw.readthedocs.io&#x2F;en&#x2F;stable&#x2F;" rel="nofollow">https:&#x2F;&#x2F;schemdraw.readthedocs.io&#x2F;en&#x2F;stable&#x2F;</a><p>matplotlib (python library), people know it for drawing charts and such things, but if you want to build your own drawings that deviate strongly from existing solutions, all the drawing primitives are in there. See for example: <a href="https:&#x2F;&#x2F;matplotlib.org&#x2F;matplotblog&#x2F;posts&#x2F;mpl-for-making-diagrams&#x2F;" rel="nofollow">https:&#x2F;&#x2F;matplotlib.org&#x2F;matplotblog&#x2F;posts&#x2F;mpl-for-making-diag...</a><p>And for just wrapping your head around something, a piece of paper and a sharpened pencil are surprisingly effective at not wasting your time.
gmuslera2 months ago
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.
Octoth0rpe2 months ago
99% sure this is not what you&#x27;re asking for, but I think it&#x27;s worth mentioning monodraw: <a href="https:&#x2F;&#x2F;monodraw.helftone.com" rel="nofollow">https:&#x2F;&#x2F;monodraw.helftone.com</a><p>It&#x27;s really useful for embedding diagrams in your code. Not so much for uses outside of code though.
评论 #43343690 未加载
评论 #43343613 未加载
viraptor2 months ago
Excalidraw for life. It can be embedded in Obsidian as well.<p>Draw.io is OK too, but the interaction is much slower when editing. The strict position&#x2F;shape of arrows makes me want to clean things up way more than necessary and waste time.<p>I&#x27;d maybe consider miro or draw.io if I was working on something with other people and expected lots of edits and change history.<p>Mermaid is an interesting concept, but putting things in the reasonable location can be next to impossible and a single new connection can blow up the whole layout. And the integration is never quite polished - so many times I&#x27;ve been scrolling down a github page just to suddenly stop and resize a diagram. Then the panning&#x2F;zoom is a bit clunky. (I know it&#x27;s a client issue, but unless the defaults become reasonable, it&#x27;s a mermaid issue too)
评论 #43370104 未加载
jamesponddotco2 months ago
I&#x27;m clearly biased since I work at Datadog[1], but I use and recommend Cloudcraft[2] for diagramming. As I don&#x27;t use the cloud I focus more on the manual design tools, but the automatic stuff are pretty neat.<p>Recently, though, I&#x27;ve been using D2[3] a lot and really liking it. The diagrams don&#x27;t look as aesthetically pleasing to my eyes, but being able to design everything with a simple language is pretty cool, and helps with automation.<p>[1]: Datadog owns Cloudcraft, hence the bias. Plus, I work in the Cloudcraft team, haha.<p>[2]: <a href="https:&#x2F;&#x2F;www.cloudcraft.co" rel="nofollow">https:&#x2F;&#x2F;www.cloudcraft.co</a><p>[3]: <a href="https:&#x2F;&#x2F;d2lang.com" rel="nofollow">https:&#x2F;&#x2F;d2lang.com</a>
评论 #43349319 未加载
评论 #43356348 未加载
rednafi2 months ago
I like Mermaid[1], but can’t be bothered to learn the syntax. So, most of the time, I ask LLMs to generate the scaffolding and work from that.<p>For freehand drawing, to me, nothing beats Excalidraw[2]. I use it for pretty much everything—from system design work to planning a project and explaining a concept. Such a wonderful tool from the Czech Republic.<p>[1]: <a href="https:&#x2F;&#x2F;mermaid.js.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mermaid.js.org&#x2F;</a><p>[2]: <a href="https:&#x2F;&#x2F;excalidraw.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;excalidraw.com&#x2F;</a>
bqmjjx0kac2 months ago
Graphviz! The syntax is kind of absurd, but it produces some beautiful results and can be version controlled.
评论 #43343662 未加载
mindcrime2 months ago
Depends on the diagram. But a lot of times it&#x27;s OpenOffice Draw[1]. I might also use Archi[2] or GraphViz[3] depending on what I&#x27;m trying to do. I&#x27;ve also dabbled with using Papyrus[4] but it hasn&#x27;t yet become a routine part of my workflow. Maybe it should though...<p>[1]: <a href="https:&#x2F;&#x2F;www.openoffice.org&#x2F;product&#x2F;draw.html" rel="nofollow">https:&#x2F;&#x2F;www.openoffice.org&#x2F;product&#x2F;draw.html</a><p>[2]: <a href="https:&#x2F;&#x2F;www.archimatetool.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.archimatetool.com&#x2F;</a><p>[3]: <a href="https:&#x2F;&#x2F;graphviz.org" rel="nofollow">https:&#x2F;&#x2F;graphviz.org</a><p>[4]: <a href="https:&#x2F;&#x2F;eclipse.dev&#x2F;papyrus&#x2F;" rel="nofollow">https:&#x2F;&#x2F;eclipse.dev&#x2F;papyrus&#x2F;</a>
bitozoid2 months ago
What I ask to a diagramming software:<p>- To be open source, or open specification&#x2F;format.<p>- Easy eaditable (gui&#x2F;tui&#x2F;source), that is, primitives. I don&#x27;t want to edit a text based diagram with a text editor (emacs artist mode).<p>- Free design features, so I have some control on the presentation.<p>- Render to text diagram as a first class feature, so it can be integrated in source code&#x2F;control. From text rendering it can easily be converted to vectorial&#x2F;raster.<p>- CLI to render.<p>- DSL, better with geometric (position, size) and styling features (color, bold face, ...).<p>I have found nothing that meets these criteria.<p>I&#x27;m actually using <a href="https:&#x2F;&#x2F;metacpan.org&#x2F;pod&#x2F;App::Asciio" rel="nofollow">https:&#x2F;&#x2F;metacpan.org&#x2F;pod&#x2F;App::Asciio</a> as the best approach.
eb0la2 months ago
Excalidraw and PlantUML Each one has its own benefits &#x2F; drawbacks. PlantUML is great for version-controlled files. Excalidraw for throwaway diagrams and discussion. Ocassionally I draw comic strips with Excalidraw.
shagmin2 months ago
For work especially if it&#x27;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.
评论 #43343850 未加载
argoeris2 months ago
I use <a href="http:&#x2F;&#x2F;multiplayer.app&#x2F;" rel="nofollow">http:&#x2F;&#x2F;multiplayer.app&#x2F;</a><p>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.<p>(Of course you can still create sketches if you want, but the real value is in getting the information you need immediately)
评论 #43356363 未加载
mkl2 months ago
I generally use TikZ or Inkscape, or occasionally Asymptote, depending on the context.<p>Some quick notes about your app:<p>- No touch zoom&#x2F;pan. Apart from that it worked okay on a Galaxy Note phone with the pen.<p>- I managed to make a shape vanish by (I think) rotating it quickly. I couldn&#x27;t repeat that.<p>- The polyline selection seems quite broken. Draw a shape, then draw a polyline around it. Now you can&#x27;t select the first shape, even though it&#x27;s not obscured by anything.
Ancapistani2 months ago
I use Mermaid.js - either through Notion or via an Mkdocs static site.<p>Increasingly, I&#x27;m describing my diagrams to an LLM and letting _it_ generate the Mermaid.
Eddy_Viscosity22 months ago
I&#x27;m a latex user so I tried tikz and I like the results but it&#x27;s often too much work. I end up most of the time using PowerPoint and using those drawing tools on a blank slide and then printing that slide to pdf so I get vector graphics then loading that into a pdf tool to crop it. Not a great system but still faster than tikz. I would love a better tool.
cratermoon2 months ago
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.<p>The diagrams I draw are all done with something like graphviz, plantuml, mermaid, Structurizr, or d2.<p>Very rarely I&#x27;ll use excalidraw to throw together a one-off.
dp-hackernews2 months ago
Also, <a href="https:&#x2F;&#x2F;draw.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;draw.io&#x2F;</a>
评论 #43372053 未加载
nunez2 months ago
I&#x27;m a Sales&#x2F;Solutions&#x2F;Systems Engineer&#x2F;Consultant&#x2F;Architect, but I also code still. I create loads of diagrams for work.<p>For Enterprise-Grade Slideware™, I&#x27;ll use either Lucidchart or draw.io.<p>For my personal projects, I&#x27;ll use Mermaid.
评论 #43349294 未加载
rthnbgrredf2 months ago
I instruct sonnet-3.7-thinking in Cursor Agent mode to draw latex tikz diagrams for me and that works iteratively quite well.<p>Draw a circle, add a label to the circle, draw a box right to it, draw an arrow from the circle to the box, and so on.
fosco2 months ago
I’ve worked at some very large networks.<p>In a pinch and when on a call, it’s always Microsoft paint.
simonsarris2 months ago
Well I make <a href="https:&#x2F;&#x2F;gojs.net" rel="nofollow">https:&#x2F;&#x2F;gojs.net</a>, so I just use the GoJS diagramming library to make diagrams :D<p>Of course, its made for developers trying to make applications, not end users.
nextts2 months ago
The one built into confluence because then someone else can edit it. But I am not an architect. If I was I may get a dedicated tool.
mapmap2 months ago
If you&#x27;re looking for labeled shapes with connections, Apple&#x27;s Keynote is a great free alternative to OmniGraffle.
Aeolun2 months ago
I’ve used terrastruct a lot over the past few years. It’s really nice to write your diagrams with code.
outer_web2 months ago
They always end up in Powerpoint at the end of the day so I just cut out the middleman.
cj2 months ago
Lucidchart has worked well for me in the past, with built in AWS icon packs.
评论 #43343624 未加载
评论 #43344121 未加载
fullstackwife2 months ago
Figjam, and then doing a screenshot, and paste to the destination doc
schmookeeg2 months ago
I find Miro the least vexing to use, but they are all pretty limited.
评论 #43345104 未加载
valbaca2 months ago
draw.io mostly, export as PNG and include the actual diagram XML within the PNG so it can be opened and edited.<p>very rarely use mermaid, but good for some simple README&#x2F;markdown style diagrams.
c-smile2 months ago
yEd, for those of us who knows word &quot;Visio&quot;<p><a href="https:&#x2F;&#x2F;www.yworks.com&#x2F;products&#x2F;yed" rel="nofollow">https:&#x2F;&#x2F;www.yworks.com&#x2F;products&#x2F;yed</a>
epirogov2 months ago
Qt Visual Graph Editor is cool for thinking through graphs.
mannyv2 months ago
I usually will do a draft in notability then use draw.io.
brunooliv2 months ago
draw.io
评论 #43344034 未加载
评论 #43343658 未加载
manishsharan2 months ago
Visio.<p>I have tried Graphviz but the diagrams looked shoddy.
sathomasga2 months ago
Apple Keynote.
theyknowitsxmas2 months ago
MermaidJS
PaulHoule2 months ago
Powerpoint
评论 #43343631 未加载
thatxliner2 months ago
Excalidraw and Mermaid
rcarmo2 months ago
This is timely. I have grown disappointed with mermaid as it can only render stuff in the browser and libraries that use dot underneath but do not afford full control over the generation, so I have stared writing little Python programs that generate SVGs for things like sequence diagrams and store their output.
ranger_danger2 months ago
plantuml, it&#x27;s hard to beat diagrams as code
a9ex2 months ago
FigJam by Figma
mkranjec2 months ago
excalidraw as already mentioned above
olea2 months ago
plantuml.
stfp2 months ago
miro
andyjohnson02 months ago
Visio. No drama, just works. Not cheap though.
Jack55002 months ago
tldraw.com