I love that you can write relatively simple declarative markup which is automatically turned into a visual diagram. I would use this for prototyping and private notes, but probably not for any kind of presentation or UI, as the output is still crude.
Your value proposition is that the user doesn't have to think about positioning and other stuff. This is a great optimization for certain use-cases, but it will definitely diminish your addressable market. Many diagramming use-cases need the additional customization that positioning provides.
One might think there's an algorithm that can produce perfectly optimal layout for any declaration (input text). I believe it will be difficult to find this algorithm, since |ideal_layout - computed_layout| could be different for every use case even if the declaration is a constant.
There are a couple ways to solve this problem. The layout output from your algorithm should instead be an ansatz. You present the "suggested" layout for a given declaration, then let the user fine-tine the positioning if they need to for their use-case.
Another way to solve the problem would be to allow the user to specify positional weights in the declaration which your layout generator uses as additional input to decide where to place nodes.
Wow that's great insight, we are evaluating mechanisms to hint the UI and provide customizatoons without excluding non technical users. As I stated elsewhere 2nd phase is improving output quality. Thanks for the excellent feedback.
My main motivation with diagram.codes is to provide a set of very simple DSL's so non technical users can use it to create diagrams for easy concept visualization in tutorials, papers, etc. ( Non technical target audience means having minimal configuration options or syntax that can be confusing)
I've used most of the tools you listed and there's some overlap in functionality. Maximum flexibility is not my goal (simplicity is) so I'd still use them if a high degree of customization is required.
Just initial feedback from non technical users. Curiously technical users have expressed their interest in using it too for the potential time savings and their familiarity with text editors. It's an exploration at this point.
Hi, I'm the creator of the tool, thanks a lot for the feedback, for those interested in getting updates you can follow https://twitter.com/DiagramCodes, thanks.
Thanks! Yes, currently evaluating custom integration with platforms like nounproject. Infrastructure diagrams are also coming soon, it's been a common request.
This is massively appealing to me if it can be made to accommodate a little bit of color and visual design. Sankeymatic is a similar tool that seems to have gotten this right.
As a visual learner who loves to diagram things, I've spent what seems like years of my life being disappointed by visio, draw.io, powerpoint, and the like. Honestly, for a straightforward, clean diagram, my favorite is still Google Draw, mostly because it handles connectors incredibly well.
There are a lot of DSL-driven diagramming tools out there, but most produce functional diagrams rather than visually appealing ones. Whilst these are fine for many use cases, there are plenty of others where the look is too dated, and something more modern is needed.
I'd love to see a DSL-driven tool emerge that has a real focus on design and the visual quality of its output, producing something along the lines of Whimsical[0] for example.
Graphviz has been the gold standard of visually appealing graph layouts for a couple of decades now. Frankly, it seems that it was the most successful output from AT&T/Bell labs since C++.
A lot of programs that do anything with graphs have graphviz backends simply for debugging.
I love it. Especially since the dsl is so readable. It’s like like markdown or orgmode or latex. The ease of authoring is paramount for me; being able to produce beautiful rendering is a huge bonus in terms of delivery and being able to get a different perspective on the content I’m reviewing. Well done!
Thanks for the feedback, the dsl's are kept simple (sacrificing customization flexibility) so non-technical users can benefit from it. Visual quality of the output has lots of room for improvement, so that's what we'll be working on next.
Yes, it's not text based, but it has such a cool hack: it saves the xml reprensentation of the diagram inside the png. So you can publish it anywhere as a regular png, and still edit it !
I'd say it's a similar motivation, we'll keep adding different types of diagrams, and ways to represent timelines, dialogs and more so the tool will be a complement to what's already out there.
Does anyone have a good DSL tool for diagrams showing services exposing ports and connecting to other services and ports? Maybe even showing hosts, docker containers, networks and firewalls?
This is something that I tend to draw a lot at work, but it's always ad hoc and doesn't follow any formal specification. I tried some tools but keep coming back to doing it my way in ASCII with asciiflow.com or Google Docs drawings.
Hi, I'm the creator of the tool, if possible could you share an example of how do they look with me? This sounds like an interesting diagram to include . (hugo at volarelabs.co) Thanks.
We plan to keep adding non graph based diagrams. DOT definitely is an inspiration for the current graph. Engine was built from zero and its general purpose, not only tree or graph based.
I really like this. It provides value as it is. If I were to build this, I’d focus on marketing and not try to monetize or have big expectations for 3+ years.
So it’s websequencediagrams.org with more options.
Alright, I’ll try it. But I’ll echo that others have said, I’d like to see it open source so I could take my designs to another site if this one goes away.
Also, the people comparing to draw.io, plantUML, and other actual programs I don’t think get the lightweight fast sketch idea here.
Draw.io is okay, but it would be even better if you could quickly generate diagrams with markup rather than having to drag, drop and connect every single node in your diagram. 9/10 times, I use paper and pencil because draw.io is too tedious. I would rather have a tool like OP's or a tool where I can take a snapshot of my hand-drawn chart, and have it automatically converted to a digital layout with some sort of ML.
That's a great tool, our approach is text based for users that prefer to describe the diagrams and let the tool automatically deal with the layout (instead of manually arranging elements using drag & drop GUI's). https://twitter.com/DiagramCodes/status/1197549164411916288
Your value proposition is that the user doesn't have to think about positioning and other stuff. This is a great optimization for certain use-cases, but it will definitely diminish your addressable market. Many diagramming use-cases need the additional customization that positioning provides.
One might think there's an algorithm that can produce perfectly optimal layout for any declaration (input text). I believe it will be difficult to find this algorithm, since |ideal_layout - computed_layout| could be different for every use case even if the declaration is a constant.
There are a couple ways to solve this problem. The layout output from your algorithm should instead be an ansatz. You present the "suggested" layout for a given declaration, then let the user fine-tine the positioning if they need to for their use-case.
Another way to solve the problem would be to allow the user to specify positional weights in the declaration which your layout generator uses as additional input to decide where to place nodes.