Hi HN! I’m building a diagramming tool optimized for software engineering use cases.
In previous jobs, I’ve had to draw many diagrams, whether to accompany design specifications or to explain something to peers. I’ve always felt drawing diagrams was too time consuming even though it was incredibly beneficial to my peers. That led me to creating a diagramming tool that allows software engineers to create diagrams quickly while remaining neat and presentable.
A few notable features:
- When drawing arrows, the tool automatically routes the arrows for you (using A* pathfinding and a nudging algorithm [1]).
- The tool has a wide variety of icons to choose from and I’m adding more. The goal here is to add all the icons a software engineer might need.
- Everything is placed on a grid with placement rules so the user doesn't have to worry about alignment.
- Embedding live (auto-updating) diagrams in Notion or using IFrames. GitHub support coming soon.
I understand the tool doesn’t support all use cases, I was primarily focused on architecture diagrams. I hope to support more types of diagrams (sequence, db schemas, flow charts, etc) in the future. Hopefully this is a good starting point to gauge feedback on the direction I’m heading towards.
OneModel is in beta and is completely free to use. It will remain free for individuals after the beta. I’d love to hear your thoughts and feedback! I’ll be around to answer any questions.
If you’d like to reach out to me, feel free to email me at khaled[at]onemodel.app
I've been using the OneModel beta for a couple months now, watching as it matures.
Personally, I'm a huge draw.io fan, and I use the desktop app for many things. While draw.io is great for many types of diagrams it's certainly perfect at none of them. At the end of the day I find myself creating boxes of the same size, formatting lines to be the same style, and routing arrows all around the place.
That's what I love about OneModel: it's currently built as a tool to design system diagrams. I don't have to muck around with box sizes, OneModel knows that a box is a service. I don't have to muck around with line widths and arrow styles, OneModel knows that an arrow represents a service relationship. I don't need to route arrows, OneModel knows that an arrow shouldn't overlap a service icon.
I'm really looking forward to some of the obvious places this tool can go. Attach metadata to a service that points to a GitHub repo and get deployment status. Attach metadata to a line to specify protocol, jump to a firewall rule, or consume Prometheus metrics. Maybe we'll even be able to export a diagram as a Terraform script one day!
I'd think a tool "tailor-made for Software Engineers" would use a human readable text format that can be stored in a VCS repository along side the other documentation. It could work if the GUI outputs a simple text file, but this looks like it'd output an image.
That's a good point IMO and that's why I still find nomnoml my favorite https://nomnoml.com/.
However, nomnoml is more like UML tool than diagramming tool like OneModel. So a big issue could be how to keep all the icons in the text format. With SVGs, the file would be big/or would include some extra assets folder, or with the links directly hosted on OneModel, the file would be tightly coupled.
Just came back here after trying this out in earnest today. I've decided it's the best software diagramming tool I've ever used.
What I liked best is that OneModel doesn't get in your way. It does the ugly aligning and routing of arrows so that your model stays beautiful. I really only sat down to play around with it. But after two hours, I had fully diagrammed my new project including every module and component. It's probably also the best looking software architecture diagram, and perhaps the most easily-read, that I've ever made.
OneModel is really enjoyable to use. The quick feedback of getting to something readable and pleasing inspires you to continue completing and improving your diagram. It's easy to get into the "flow state" that's critical for this kind of work, like programming itself.
My only requests would be custom icons and/or coloring of existing icons. But I was able to get everything I needed by just renaming the components it has.
Awesome job. Something I would pay for. The next diagram I want to make is a state model. I think the auto-routing arrows will be a huge plus.
Wow, this is super quick and easy. It will definitely be replacing draw.io for my cloud architecture diagrams immediately. The only feature I would request is text boxes for notes.
It's a bit buggy.. sometimes when I dropped an icon in, it would disappear while I was typing to filter.
Looks good though and I will try again on a non-FF browser in work. Where do the files get saved? One of the best things about draw.io is that it just works off local files.
Will look into the bug, sorry about that. Everything is cloud based. In other comments I got suggestions for a way to create diagrams without an account. I'm looking into that and that would probably include a local-file component. Thanks for your feedback.
There is one feature I always wished existed in engineering diagramming tools: it's the ability to hook up some logging or status report.
For instance, on each of these nodes, there could be an ID, and I would send a post request from my servers that says "node ID x is down", and the tool would just show a red dot and maybe a "take me to the logs" button, that would be huge.
Which is to say, I don't just want a diagram, cause diagrams get outdated, I want a dashboard. Dashboards get updated, cause you look at them.
Thank you! That's a great idea and it's what I'm working towards. I'd like the ability to connect your diagrams to various event sources or even metadata, to help keep them alive. At the moment though, I'm trying to put together the building blocks to get there.
This looks amazing! Thank you :) Is there a way to request more icons to be added or a way to add custom icons? This is the probably the one thing that stops me from replacing draw.io with this!
Glad you liked it! Hoping to add a request icon form in the app soon and custom icons down the line. In the mean time, feel free to email support[at]onemodel.app with the list and I will add them asap.
FWIW, you might want to search for project naming conflicts. Mine (an AGPL knowledge manager that stores arbitrary knowledge in a single data model, using postgresql & scala, hoping to move to rust and sqlite) is at http://onemodel.org (though nearly stalled due to health issues; I plan to continue in future though), and I remember finding some unrelated commercial project once, maybe onemodel-sys.com or such.
I think a VSCode extension would be pretty cool. I'll have to checkout out cd designer, seems interesting. Thanks for the feedback and glad you liked the tool!
I would love to try this, sounds like it solves a need my team currently uses Mermaid/Drawio/etc. for. But looks like it's behind an account setup screen. :(
Does anyone have any information on the tool pricing? It doesn't appear to let you take a gander at any pricing information before logging in to use the tool.
The tool is free for individuals and will remain free after the beta. Pricing would be for team usage (currently early access) and is still tbd. Early access teams will receive a discount.
koahmad|4 years ago
In previous jobs, I’ve had to draw many diagrams, whether to accompany design specifications or to explain something to peers. I’ve always felt drawing diagrams was too time consuming even though it was incredibly beneficial to my peers. That led me to creating a diagramming tool that allows software engineers to create diagrams quickly while remaining neat and presentable.
A few notable features:
- When drawing arrows, the tool automatically routes the arrows for you (using A* pathfinding and a nudging algorithm [1]).
- The tool has a wide variety of icons to choose from and I’m adding more. The goal here is to add all the icons a software engineer might need.
- Everything is placed on a grid with placement rules so the user doesn't have to worry about alignment.
- Embedding live (auto-updating) diagrams in Notion or using IFrames. GitHub support coming soon.
I understand the tool doesn’t support all use cases, I was primarily focused on architecture diagrams. I hope to support more types of diagrams (sequence, db schemas, flow charts, etc) in the future. Hopefully this is a good starting point to gauge feedback on the direction I’m heading towards.
OneModel is in beta and is completely free to use. It will remain free for individuals after the beta. I’d love to hear your thoughts and feedback! I’ll be around to answer any questions.
If you’d like to reach out to me, feel free to email me at khaled[at]onemodel.app
[1] If you’re interested in these types of algorithms, this paper is great: https://users.monash.edu/~mwybrow/papers/wybrow-gd-2009.pdf
flashgordon|4 years ago
Terretta|4 years ago
Thanks for sharing!
tlhunter|4 years ago
Personally, I'm a huge draw.io fan, and I use the desktop app for many things. While draw.io is great for many types of diagrams it's certainly perfect at none of them. At the end of the day I find myself creating boxes of the same size, formatting lines to be the same style, and routing arrows all around the place.
That's what I love about OneModel: it's currently built as a tool to design system diagrams. I don't have to muck around with box sizes, OneModel knows that a box is a service. I don't have to muck around with line widths and arrow styles, OneModel knows that an arrow represents a service relationship. I don't need to route arrows, OneModel knows that an arrow shouldn't overlap a service icon.
I'm really looking forward to some of the obvious places this tool can go. Attach metadata to a service that points to a GitHub repo and get deployment status. Attach metadata to a line to specify protocol, jump to a firewall rule, or consume Prometheus metrics. Maybe we'll even be able to export a diagram as a Terraform script one day!
chishaku|4 years ago
It's also natively rendered in obsidian [1] without any plugins.
Not affiliated, just very happy with this plain text and local workflow.
[0]: https://mermaid-js.github.io [1]: https://obsidian.md/
bjtitus|4 years ago
eikenberry|4 years ago
strboul|4 years ago
However, nomnoml is more like UML tool than diagramming tool like OneModel. So a big issue could be how to keep all the icons in the text format. With SVGs, the file would be big/or would include some extra assets folder, or with the links directly hosted on OneModel, the file would be tightly coupled.
dtagames|4 years ago
What I liked best is that OneModel doesn't get in your way. It does the ugly aligning and routing of arrows so that your model stays beautiful. I really only sat down to play around with it. But after two hours, I had fully diagrammed my new project including every module and component. It's probably also the best looking software architecture diagram, and perhaps the most easily-read, that I've ever made.
OneModel is really enjoyable to use. The quick feedback of getting to something readable and pleasing inspires you to continue completing and improving your diagram. It's easy to get into the "flow state" that's critical for this kind of work, like programming itself.
My only requests would be custom icons and/or coloring of existing icons. But I was able to get everything I needed by just renaming the components it has.
Awesome job. Something I would pay for. The next diagram I want to make is a state model. I think the auto-routing arrows will be a huge plus.
koahmad|4 years ago
mechero|4 years ago
codebower|4 years ago
koahmad|4 years ago
mbesto|4 years ago
koahmad|4 years ago
Graffur|4 years ago
Looks good though and I will try again on a non-FF browser in work. Where do the files get saved? One of the best things about draw.io is that it just works off local files.
koahmad|4 years ago
d--b|4 years ago
There is one feature I always wished existed in engineering diagramming tools: it's the ability to hook up some logging or status report.
For instance, on each of these nodes, there could be an ID, and I would send a post request from my servers that says "node ID x is down", and the tool would just show a red dot and maybe a "take me to the logs" button, that would be huge.
Which is to say, I don't just want a diagram, cause diagrams get outdated, I want a dashboard. Dashboards get updated, cause you look at them.
Anyways, just a thought.
koahmad|4 years ago
vanpythonista|4 years ago
koahmad|4 years ago
nivertech|4 years ago
Plus VSCode extension which will make editing these diagrams inside the git repo a first class citizen.
lcall|4 years ago
CtrlAlt|4 years ago
Our team usually uses LucidCharts but we'll give this a try. A basic folder system would go a long way in helping to keep my charts organized.
evo_9|4 years ago
Maybe consider making a VScode extension out of it; you could then have it generate actual class files from the drawing.
This is something VSCode lacks that big brother Visual Studio has had forever (cd designer).
koahmad|4 years ago
site-packages1|4 years ago
koahmad|4 years ago
munk-a|4 years ago
koahmad|4 years ago
unknown|4 years ago
[deleted]
fold_left|4 years ago
artur_makly|4 years ago