[HN Gopher] Swimlanes.io - generated editable sequence diagrams ___________________________________________________________________ Swimlanes.io - generated editable sequence diagrams Author : smusamashah Score : 355 points Date : 2021-04-27 14:54 UTC (8 hours ago) (HTM) web link (swimlanes.io) (TXT) w3m dump (swimlanes.io) | rorykoehler wrote: | This app has saved me countless hours. Very well executed but I | don't like their publicly viewable permissions being the default. | jsmcgd wrote: | The inline editing and change propagation is very cool. | | [bug] Swimlane name changes aren't propagated to notes. | redleader55 wrote: | I would really like a sequence diagram that allow for diagonal | arrows, not just horizontal ones. A message takes time to arrive | to its destination and sometimes it's interesting what else could | happen during this time, for example the backend sending another | response to the requester. Also requests don't arrive to the | destination in the exact order they where made. All of these are | impossible to represent with horizontal arrows. | prepend wrote: | There's an asynchronous notation in sequence diagrams if | responses can go back in different order. Still uses horizontal | arrows but the arrowhead is different. | | I don't think diagonal arrows really help with this and will be | harder to deal with because they could get overlapping really | quickly. | | But if things are truly out of sequence use something other | than a sequence diagram. Just a regular flow chart, or activity | diagram, or state diagram. | braho wrote: | I second this. | | I have been using sequence diagrams a lot for embedded or real- | time systems a lot last year, and travel time is important | there. | | Besides, it allows to have one diagram abstract from another, | without modifying execution times. | dariusj18 wrote: | Apparently https://sequencediagram.org/ is what you want. It | has "non-instantaneous message" | xtracto wrote: | Reminds me of https://bramp.github.io/js-sequence-diagrams/ The | nice thing about that library is that you actually can have a | self-contained HTML page with a diagram, like: | <html> <script src="https://cdnjs.cloudflare.com/aja | x/libs/webfont/1.6.28/webfontloader.js"></script> <script | src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.3.0/raphael | .min.js"></script> <script src="https://cdnjs.cloudflare. | com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script> | <script src="https://cdnjs.cloudflare.com/ajax/libs/js-sequence- | diagrams/1.0.6/sequence-diagram-min.js"></script> <body> | <div id="diagram"></div> <script> var diagram = | Diagram.parse("A->B: Message"); | diagram.drawSVG("diagram", {theme: 'hand'}); </script> | </body> </html> | | And this will draw render a sequence diagram in any browser. I've | used this to have as documentation in the /docs folder of project | Git repository for some of my teams. It is great because it is | pretty easy to update and maintain changes via VCS. | jorisd wrote: | You actually don't even need the HTML scaffolding for that, and | can author a js-sequence-diagrams diagram straight into a text | file, append a simple script to render the document, and save | as .html! Example: https://unpkg.com/browse/js-sequence- | diagrams-autorenderer@1... - click on "view raw" to see it in | action. | | Looks a lot cleaner, and the .html itself is a valid diagram as | the script tag that bootstraps the renderer is prefixed with a | comment hash. | | EDIT: I used to have this in a gist that I'd load via | rawgit.com, but since that's no longer active, I figured I'd | update my script and make it publicly available through unpkg | :) | xtracto wrote: | Howdy, that's some black magic! Thanks a lot, that's a really | neat idea. | hakcermani wrote: | Another similar site that i have used a lot is ... | https://www.websequencediagrams.com/ .. i particularly like the | svg export of websequencediagrams. | avodonosov wrote: | also https://sequencediagram.org | jonahx wrote: | Prior art: | | 1. Plant UML: | http://www.plantuml.com/plantuml/umla/SoWkIImgAStDuNBCoKnELT... | | PlantUML supports many diagram types, and there's a nice VS Code | plugin with side by side live preview. | | 2. https://www.websequencediagrams.com/ | | Has a hand-drawn style option which is nice: | | https://i.imgur.com/lh4jaVL.png | carb wrote: | As we're listing alternatives, Lucidchart also supports | generated UML Sequence Diagrams, which lets you use their GUI | after generation to customize it / alter as desired | avodonosov wrote: | https://sequencediagram.org is another alternative | gregmac wrote: | Plantuml plugin within Confluence is pretty nice for | documentation, and arguably a super-power because it makes it | easier to make good docs ("a picture is worth a thousand | words"). | | The source shows up in edit mode (no external app needed; and | it's always correct) and it handles the rendering for you, thus | reducing friction. | | In other places I've seen people attach a PNG. If you're lucky, | they've also attached the corresponding (and up-to-date) source | in visio/draw/ppt/whatever random app format, in which case | making a small edit might only takes ten of minutes. In the | worst case, it's missing source, the source file is not the | same as the PNG, or they used some program you don't have, and | you have to totally redo it. For most people if the friction is | too high, it just doesn't get updated. | eugene0 wrote: | MermaidJS is also a good alternative: https://mermaid- | js.github.io/mermaid-live-editor/ | leipert wrote: | GitLab has mermaid support in its markdown | https://docs.gitlab.com/ee/user/markdown.html#mermaid | Veuxdo wrote: | Ilograph supports interactive sequence diagrams e.g. | https://app.ilograph.com/demo.ilograph.Ilograph/Get%2520Diag... | intrasight wrote: | also see zenuml.com | | I was just looking at that a few days ago. But don't want | something that works on-line. Any good equivalent local | tools? | Veuxdo wrote: | There is a desktop version that works off-line: | https://www.ilograph.com/desktop/index.html | avodonosov wrote: | FWIW, https://diagrams.net/ also have a downloadable | version. But it's a point and click WYSIWYG editor, not a | text notation like swimlanes.io. | swyx wrote: | collated these diagramming tools here: https://github.com/sw- | yx/spark-joy/blob/master/README.md#gen... | gnat wrote: | Thanks. Please do identify when they're open source -- I have | been bitten by filling a small app of unknown longevity with | my system diagrams and flowcharts, only to have it disappear. | scoot wrote: | Any plans to do curated? | swyx wrote: | i mean i will inject my opinions when i have to use these | things in anger, right now it is just a raw list for future | usage. i do put little stars or warnings against some items | when i have an opinion. | | you're welcome to PR in some commentary on each of them | though. or fork it and curate. its open source knowledge :) | https://www.youtube.com/watch?v=XoATf7xGoUY | kjagiello wrote: | For sequence diagrams in text format you can take diagwiz for a | spin. There is also an online version of the tool. Disclaimer: It | is working, but it's still just an experiment and might change a | lot. | | https://github.com/kjagiello/diagwiz | | https://diagwiz.io/playground/ (not really mobile friendly) | smusamashah wrote: | These do the same i.e. ASCII sequence diagrams | | https://textart.io/sequence | | http://weidagang.github.io/text-diagram/ | ram_rar wrote: | This is really a great tool. I have been using | https://www.websequencediagrams.com/ in the past. Will definitely | give this one a shot. | | Generating quick sequence diagrams helps a lot to articulate | ideas. Ever since wfh, I have used these tools a lot of | communicate design flow with team mates. | superfrank wrote: | Oh man, someone showed me this site a few years ago and I never | could find it again. Glad it popped back up | sly010 wrote: | The parser seems to be broken. Or I don't understand the syntax. | There is no way to end the last example note. | | Edit: ok, you need to add at least a colon after every edge | ragsagar wrote: | My incomplete attempt to do something similar in python | https://github.com/ragsagar/yezdi | danellis wrote: | I just don't see the point. If it only supports one type of | diagram (and judging by the name, it seems like it only ever | will), why would I use this over PlantUML? | sagichmal wrote: | Cool! | | Sequence diagrams are by far the most effective way to | communicate system behavior. | | These, and boxes-and-lines diagrams to communicate component | relationships, are all that's necessary to document a system of | arbitrary complexity. | hderms wrote: | I'd add state machine diagrams if those aren't covered by your | previous suggestions. I suppose they could be considered a | subset of sequence diagrams. | michaelsbradley wrote: | Statecharts and other variants of state machine diagrams are | quite useful, but they serve a different purpose than | sequence diagrams. | | A sequence diagram describes an exchange of messages between | different objects. | | A statechart describes the states of an individual object and | how it transitions between those states. | michaelsbradley wrote: | For statechart diagrams see: https://xstate.js.org/viz/ | | Note that in addition to being editable, they are executable and | can be used to implement state transition logic in node/browser | JS code. | | The visualizer is used throughout XState's docs. | flexterra wrote: | I've been using this for years. Is really good and the best | feature is that diagrams don't look like crap by default, which | is not the case for most code to diagram tools out there. Looking | at your Plant UML. | unixhero wrote: | Sequence diagrams, this deserves an awesomelist. And swimlanes.io | should be on that list | monkeydust wrote: | These are becoming as prevalent as note taking apps on HN! | DanBC wrote: | So, if anyone wants to make diagramming software and is looking | for a niche, there's something used in quality improvement | called a "driver diagram". | | These are very simple. | | https://qi.elft.nhs.uk/resource/driver-diagrams/ | | http://www.ihi.org/resources/Pages/Tools/Driver-Diagram.aspx | | The problem is that you want something that a small team can | collaborate on; that allows them to control where it's stored | and viewable; that works with baffling NHS bureaucracy; and is | very easy to use. You want something that allows actions to be | attached and completed. And you might want to allow it to link | to other documents. (For example, "we tried change idea 1, and | we didn't see any improvement, here's the data"). | | The other problem is that most software will apply colour | vertically to a column, but you probably don't want that. You | want something that allows horizontal stripes. | | Vertical: | https://tse4.mm.bing.net/th?id=OIP.hhpwTzkH7yvSFeBY61hM7wHaF... | | Horizontal: https://tse1.mm.bing.net/th?id=OIP.i9BwtTbgKV- | UGlO5675QtgHaF... | | Horizontal: | https://tse4.mm.bing.net/th?id=OIP.4oy4eY78Ik4sl5r2ygFpvgHaE... | | There's something called LifeQI which is good but a bit spendy | and it covers a _lot_ more detail than just driver diagrams. | smusamashah wrote: | A list of all such tools https://xosh.org/text-to-diagram/ | loeber wrote: | Fun! I think there's a ton of value in programmatic "markup for | flowchart" type tools. My tool of choice has historically been | MermaidJS: https://mermaid-js.github.io/mermaid-live-editor | omot wrote: | This is so creative! | | I never would've thought making a Latex for diagrams! I can't | think of an immediate use case but this is really cool! | dwrodri wrote: | There's PGF/TikZ[1], but from what i've seen, it appears a bit | clunky. These days I usually see packages which are basically | convenience wrappers living above TikZ for common usecases | (e.g. visualizing neural networks in papers) | jayniz wrote: | I read edible :( | sgt wrote: | Print them out. | Geee wrote: | Me too! What is going on :) | skilesare wrote: | https://mscgen.js.org/ | Andrew_nenakhov wrote: | Can confirm, the best online MSC editor out there, and we | looked hard a couple of years ago. | barbazoo wrote: | I use https://sequencediagram.org/ quite frequently these days, I | like how you can get a link with the actual diagram encoded in | it, makes it trivial to store and share. | zemo wrote: | it's got Google Drive integration too. I use it and put all the | diagrams into a Google Drive folder. | canada_dry wrote: | I'll throw diagrams.net (formerly draw.io) into the discussion. | | Their UI is incredibly well designed/intuitive. Does swim lanes | quite well - along with most other charts/diagrams... and there's | a desktop version too. | rorykoehler wrote: | I use both regularly and tbh they aren't comparable. | Swimlanes.io is the perfect example of one small niche idea | well executed while diagrams.net is also well executed but the | other side of the scale. If you want a quick swimlane diagram | you can have it published in the time it takes you to prep the | canvas in diagrams.net | jamespwilliams wrote: | draw.io is open-source and easily self-hostable, too. | dariusj18 wrote: | And can be edited in VSCode | | https://marketplace.visualstudio.com/items?itemName=hediet.v. | .. | jpollock wrote: | Pretty cool. | | I was hoping to see a swim lane diagram? Could you add that as a | feature? Then I can share it with some business analysts who love | that kind of thing. | | https://en.wikipedia.org/wiki/Swim_lane | travisjungroth wrote: | I'm curious: who made this? What stack? I couldn't find anything | on the page. | marshray wrote: | I just see an entirely blank page. Chrome incognito mode. | frank13 wrote: | Hi. I made this. Its mostly plain JS, all of the diagram, | except the arrow heads, are simple div element | travisjungroth wrote: | Hi! Thanks for replying. Is there any storage layer? Or is | everything encoded in the URL? | frank13 wrote: | Yes. There is a simple storage if you sign in with | google/github | travisjungroth wrote: | I mean what's the storage from a technical standpoint? If | you're saving every version of every swimlane that | anonymous users create, it seems like that would add up | in your database. | frank13 wrote: | If you dont sign in nothing is stored. Your diagram data | does not leave the browser, unless you generate an image. | The diagram data is in the url | kobieyc wrote: | Thank you for making this. Are you making the code available? | imiric wrote: | Thanks for sharing! Sequence diagrams are awesome. | | I've used websequencediagrams.com and PlantUML to create them | before, and honestly I much prefer using an open source CLI tool | for this than a closed source service, even if it's free to use. | The day the site goes offline all my Git versioned diagrams would | be useless. | | If the authors are reading: have you considered releasing a | standalone CLI tool? It could even be open sourcing the site | itself and packaging it as a Docker image. If not, exposing an | API like wsd.com has would be very useful. | frank13 wrote: | Hi. I created this years ago and have not been able to give it | much attention lately. There is a very basic API, | https://swimlanes.io/docs/api | frank13 wrote: | You can also embed a diagram. See | https://jsfiddle.net/y6Lqpfcw/ | imiric wrote: | Much appreciated. That still does network requests and I | wasn't able to make it work fully offline after downloading | all the assets, but pretty nice nonetheless. | rockostrich wrote: | Really? I downloaded the js file linked and set up an | index.html with that snippet. The only requests being | made were for FontAwesome stuff which you could also | download and change the references to in that `embed.js`. | uncomputation wrote: | Looks great and super easy to use! I find myself needing these | all the time for work and really hate Visio | red_hare wrote: | "Markup for diagram" is great so long as others have a way to | edit the markup when you use the diagram in your document. | | Blockdiag/Seqdiag has a pretty good RST integration for Sphinx. | | Lately I've been using the ZenUML diagram plugin for Confluence | which lets you do sequence and other diagrams using Mermaid-JS. | | Considering that the author of swimlanes.io seems to have | mastered the part where the diagram is encoded into a URL, it | feels like making plugins to popular documentation systems is the | obvious next step to making this useful for engineering orgs. | sirk390 wrote: | Very cool. Makes me think of https://dbdiagram.io | vprcic wrote: | Sequence diagrams seem like the go--to format for displaying data | flow in a microservice-type environment, but even though there is | a plethora of implementations in various languages and | technologies that generate diagrams of this kind, they all lack | certain functionalities, number one being the support for | threads. Some solutions do provide the "par" fragment, but this | is inadequate when message ordering corresponds to cronological | ordering. Numbering messages may help, but I find it easier to | grasp what is going on visually with multiple activations per | lifeline (the best implementation of this I've found to date is | the Quick Sequence Diagram Editor | [http://sdedit.sourceforge.net/], but that project doesn't seem | to be active or maintained). | | I've recently tried to find a suitable solution for this on | StackOverflow, but I've been rejected under the "Opinionated | question" remark (::sigh::), so I could just as well do it here. | | Is there a (Java based) sequence diagram generating tool/library | that has the following functionalities: | | . supports multiple threads and thread referencing in messages | (multiple activations per lifeline) | | . supports delayed messages (message trasmission and message | reception can occur at different times, i.e. sending a message | does not imply immediate reception on the other side) | | . no custom language/pseudocode as input, but builder-style | approach (I use Java to generate a text description of the | diagram and then pass it to the library for parsing - I could | just call the methods the parser calls and remove the unneccesary | middle man) | | . highly customizable visual style (PlantUML, the most flexible | I've found in this regard, is notoriously bad at styling, mostly | due to a lack of a coherent styling paradigm) | | If not, how many people would be interested in such a thing? I | may start it as an open source project myself... | imiric wrote: | I'm not familiar with those features, and agree that PlantUML | generated diagrams have a distinctive look, but why not | contribute to PlantUML instead of starting yet another project | of this type? It's written in Java, so it meets that | requirement. | vprcic wrote: | This was my intention as well so I tried familiarizing myself | with PlantUML code (made a small contribution as a result), | but in the end, I came to the conclusion that the overhead of | getting to know its ins and outs would be greater than to get | a new project to a usable state from scratch. PlantUML is, | unfortunately, burdened with years of development choices | that make it tough to modify in a way to conform to what I | need. Most of these functionalities were (I'm 100% sure for | the multiple threads and customization of the visuals), at | some point, mentioned in various forum discussions as | "possibly under development" by the developer, just to be | followed with years of silence on the topic. And if they | aren't able to deliver those, I'm not going to be, for sure. | sergiotapia wrote: | Also: https://playground.diagram.codes/ ___________________________________________________________________ (page generated 2021-04-27 23:00 UTC)