Site: https://azriel.im/disposition
Repo: https://github.com/azriel91/disposition
It's written in Rust, has stable node positions, is stylable (and has default styling, dark mode styles), among other things.
The hardest part is calculating coordinates for edges:
- ranking nodes / positioning them when edges connect nodes of different nesting levels
- ensure edges don't overlap with nodes to not obscure content
- ensure edges don't overlap with each other
It's about 60% of what my version of "complete" looks like. Remaining parts:
- edge labels (might need a rewrite of how edge paths are calculated.
- images in nodes
- generating diagrams for different screen sizes
- LSP support (?)