Show HN: Cascii – A portable ASCII diagram builder written in vanilla JavaScript
53 comments
·March 16, 2025dimenoz
This is fantastic. I've always used JavE before but this being a single HTML file is a big+ and packs quite a punch. Kudos to the author!
One question though, how do edit the content later? For example I generated a few diagrams one at a time and pasted those in a local plain text file. Later when I want to edit a particular diagram/part, I tried copy pasted it in, but always got "cannot paste, content leaves canvas" error. If I tried copy-pasting a really small section (e.g. 3x3 table), it pasted it right in the center. Anyway, not sure if that's an intended work flow or not. Great job regardless.
ftr1200
Glad you asked. Have you checked the online version https://cascii.app
There, all exported drawings come with a short link. This is so that months later anyone reading / seeing can edit their own copy online / keep it up to date.
You can also create an account to manage your own drawings.
Side note - when you use real pasting, it will not remember meaningful information (that's very hard to do elegantly). In your example, I'm guessing that 3x3 table you pasted in could not be properly edited like a table again. Hence, use short links so that Cascii remembers state.
ssriram
Hi, great app. I'd love to understand how you are maintaining state behind that short url and see if there are ways (sans server) to at least partially recreate state from the exported ascii.
Having an Import from clipboard would truly make this a remarkable app.
ssriram
After uploading cascii.html to deepseek.com and promptCoding with it, I saw that you had the json representaion in localStorage.
I tried generating the json from the ascii exported to the clipboard but see why this could get very tricky. So, I added an Export (JSON) to file and Import (JSON) from file and placed them in a More Popup component in which I put the existing export button, so the menu bar does not get too crowded. (for code see (1)) -
This now allows me to save the json and import/edit it at a later time - no short url needed and the data stays private.
Your code was well laid out and deepseek was able to make all the changes error-free.
(1) https://github.com/ssr1ram/cascii-core/tree/more-export-impo...
ftr1200
v1.0.1 now has offline import/export
harvie
Exactly. Make it importable and i am sold.
Maybe base64 encoded metadata under the diagram? Maybe encode in non-printable characters?
Maybe just use non-printable characters to hint where the corners of objects are?
ccakes
Looks super cool, congrats!
Monodraw[1] is a similar product delivered as a standalone macOS app. It’s a classic pay once-type license and very polished software. Cannot recommend enough! I’ve always wanted something as good on Linux though, will definitely give this a go!
Brajeshwar
Happy user of Monodraw. I paid for it once a long long time ago and I use it once or twice a year.
kentbrew
I love this so much. Thanks for using vanilla JS!
Please consider changing the link colors in the scrolling intro to yellow when in dark mode. They were really hard to make out.
macintux
Very cool, thanks.
One of the saddest days at my current job: when the company I’m contracted to stopped offering Excalidraw in favor of Lucid. I mostly understand the rationale, but the dramatic difference in friction basically shut down all interest I had in using diagrams to help communicate with my team members.
ftr1200
A co-worker recently showed me this. It seems really good. If they did ASCII diagrams I'd probably have never made this project!
two_handfuls
This looks amazing! Thank you for making and sharing it. Being able to run it locally is fantastic for work, where one may not be allowed to share "internal details" with unvetted 3rd party companies.
bambax
Wow. This is absolutely fantastic! Great work! Congrats!
Do you know if there would be a way (in the future) to export existing image diagrams to this format / will there be an API. It would be very cool for archival purposes.
ftr1200
It really depends how much demand there is. It's a great next step but a lot of work - I was thinking about training a neural net to parse images / 3rd party diagrams into Cascii, but right now I need a break from my screen for a few weeks :)
ftr1200
v1.0.1 now has offline import/export
smusamashah
This looks awesome. The way you are dragging things around and the diagonal lines is amazing. Don't think asciiflow or the other one or two tools do this.
Since you are providing a single portable html file (which almost no one does that these days sadly) you may be interested in how sequencediagrams.org handles this. They don't offer sign up, instead have localStorage, Google drive, file export and few other ways.
Also, can you let me open it on the phone with a warning/recommendation to look at github instead of redirecting to it.
ftr1200
Bit of a nightmare getting this elegant enough on a phone, and doubt anyone wants to draw ASCII digrams on their phone anyway, so not really a priority!
dspillett
That looks almost exactly like something I've wanted, thought numerous times about making, but never getting around to. Thanks for scratching your itch and mine!
ftr1200
Really glad to hear it. Enjoy!
wiseowise
Any chance you can write a blogpost about development of cascii? It looks impressive and it would be nice to take a sneak peek behind your thought process.
ftr1200
Yeah I'd like to talk about going back to basics with single-HTML / vanilla JS. It was a great experience, though admittedly controversial and I was expecting more people to be anti it.
Rucadi
Best tool I've seen for diagrams in a long time, Congratulations! I'll use this anywhere.
theanonymousone
Nice job. Thanks! Also very interesting to have it "distributed" in one html file. Sometimes people forget simple ways to do stuff :)
Is is possible to import and edit diagrams after they have been created?
ftr1200
Please see https://cascii.app where short links are coupled with your exports
ftr1200
v1.0.1 now has offline import/export
primitivesuave
This is amazing, thank you for sharing it. Aside from being a very useful documentation tool, I hope it inspires more people to distribute simple standalone software utilities in this way.
3 months ago I wanted to draw an ASCII diagram to include in some documentation at work. I found the few tools online to be insufficient, and was suprised there wasn't a more complete tool to get the job done.
Since, I've built Cascii from scratch in vanilla Javascript (I'm not an FE dev, it might be obvious...).
I hope it works alright. Please check out the live version at https://cascii.app, report problems, make diagrams to improve your code's documentation. Hope you enjoy using it.