So cool!
HN user
RohanAdwankar
https://github.com/RohanAdwankar
Thanks!
Just curious, how do you know / why do you think it's written by AI? The bullet points?
hi this true! i personally typically write my diagram or add nodes in a text editor prior to customizing but I do realize that many would prefer to be able to do everything in the gui so I will start adding features to add nodes and initialize the diagram in the gui!
Yes that's essentially my thoughts though perhaps a later feature would be to support the tool customizing d2 files as well! I also think another part about starting with supporting mermaid syntax is that the AI coding agents seem to emphasize mermaid in particular [1] so if they are writing in that syntax anyways I feel it will be even more the norm.
[1] https://cursor.com/docs/configuration/tools/mermaid-diagrams
Thanks for sharing. One of the very fun parts of posting this for me was seeing how much bigger this niche was than I thought haha. D2 seems great and super featureful!
Thanks for the comment! I will look into this since I certainly think the ideal scenario would be the core mermaid project supporting customizations in their engine. I imagine that before that I would have to refine the project further after which it would be interesting to see if they would be open to supporting it!
For the syntax I aim to support mermaid's syntax and any modifications the tool makes are saved as comments so that the files remain backwards compatible with the original mermaid engine!
The main advantage of this project is it enables customizations of the layout and visual preferences. So using LLMs to write the mermaid code itself still works perfectly fine the mermaid code can then directly be passed in as input and then edited with this tool.
Oh sure collaborating sounds fun, what application are you building?
Oh thanks, that's a good idea I'll make a issue on the github for that and get to it eventually!
Thanks, let me know how it goes! There's certainly lots of improvements to be made to the layout engine and polishing for the UI so happy to incorporate any feedback!
I can look into this further but at a glance I don't see something for declarative diagramming syntax. I will say the name is fantastic! One of the great things about making this thread for me was learning about all the different tools people are using!
Thankyou!
Hi thanks! I'm not sure I fully understand what you mean by intermediate data? Would this be the location data computed for the different components?
Great to hear! Absolutely this is the goal.
Hi as of now I haven't added that feature so the current way would be to edit the .mmd text. However I think you are right that would be a good feature to add. For collapsing downstream nodes I think it would make sense with the request the someone else made in this thread for animations. From what I see it should certainly be possible to implement at some point!
Thank you! Happy to hear that!
Thanks for sharing I'll look into this. The animations do look great!
that would be pretty funny. A visual programming tool for polyglot microservice architectures XD
That makes sense I will eventually get to that!
This seems cool! Thanks for sharing.
Thanks for catching that! Just added the license file.
Thanks!
Thanks! I think that sounds interesting, to make sure I'm understanding your use case would these pop ups be for your own use or for other people? For example would you want to send a link to someone else on your team and then the link shows the diagram with popups and nesting? Or would it be sufficient to send over the .mmd files and then the other person can use the cli to open the web interface which supports the popups and nesting. I imagine I could add the latter one quickly but for the former I would either add an easy way for users to self serve like with ngrok or some cloud solution. Or alternatively I could add some way to export the diagram just as a standalone HTML file in which case that could be sent and support the popups and hovering without the person you're sending it to having to have the CLI installed.