Hacker News new | ask | show | jobs
by Myrmornis 60 days ago
https://d2lang.com/ is a nicer language than Mermaid with much nicer visual appearance. It would be great if it became more widely supported.
8 comments

I reached the same conclusion after comparing diagram-as-code tools — D2 feels cleaner and more expressive than Mermaid.

I’ve been working on an AI diagramming tool built around D2: https://aidiagrammaker.com/ You describe a system in plain English, and it generates architecture diagrams, flowcharts, and sequence diagrams in D2.

Edits can be made either directly in the D2 code or via a context-aware editor.

Has anyone here used https://pikchr.org/ from the creator of SQLite?
I agree that it's nicer and more powerful, but it's a little concerning it hasn't had any commits in the past 6 months: https://github.com/terrastruct/d2/commits/master/
I think the founder/lead developer, Alexander Wang, works at OpenAI now.

Plus, according to this comment on an issue, folks in their discord say it's not being actively maintained.

https://github.com/terrastruct/d2/issues/2735#issuecomment-4...

Never imagined Scale.ai CEO was D2Lang creator nor that he joined his room-mate at OpenAI (giggle).

Thanks for sharing

Scale AI is a different Alex. Their first names are spelled slightly different. Alexandr vs Alexander
Maybe it doesn't need constant fixing? Are there many issues in the tracker?
How good is the LLM at creating d2? What if any skills/material can folks recommend? (Follow-up: D2-mcp has a cheat sheet, https://github.com/h0rv/d2-mcp/blob/main/d2/CHEATSHEET.md)

And, does GitHub support it? (Follow up: alas not! Sadness. Please add!)

For me that's the deal breaker :/
Does it produce real svgs as opposed to foreign object html in svg mess that mermaid compilers produce?
d2 produces real svgs but I've found them to have a hard time displaying in other svg editors. The d2 folks talk about that somewhere and they have some fixes for it.
Oh, finally, something that supports actual hierarchical state diagrams (that isn't Graphviz, no offense)... Mermaid's "You cannot define transitions between internal states belonging to different composite states" [1] has driven me up a wall for years.

  parentA.childA -> parentB.childB: voop
  parentB.childB -> parentA: vorp 
shouldn't be that hard!

[1] https://mermaid.ai/open-source/syntax/stateDiagram.html#comp...

Thanks for sharing! I haven’t looked into that before but looks neat.
What makes it nicer?
Take a look at https://d2lang.com/examples/dagre/ and https://d2lang.com/tour/intro/

The language is richer and all diagram types are implemented consistently in the same language in a way that can be composed, as opposed to being a collection of unrelated DSLs.

The improved visual appearance is clear from inspecting example diagrams, I believe.