Hashnotes Release Notes
Yesterday I launched the first version of Hashnotes (this website), a small hobby project of mine.
The idea behind Hashnotes is to let people share Markdown-formatted text in a way that doesn’t require logging in. The main use case is for content that’s longer than a tweet, but that might not warrant its own blog post. Cohost was great for this, but since they are shutting down at the end of the year that’s not really an option.
Design decisions
From the start I decided that I wanted notes to be immutable. The reason for this is twofold:
- If I wanted to support editing then I would have to support some kind of identity management
- It would make notes much easier to cache
This means you can’t edit a note after publishing it. However, like other content-addressed systems like Git or IPFS, you can create a new version of a note, and then update any links to point to the new version instead.
Currently, notes are named after the hash of the (non-rendered) Markdown content—hence the name “Hashnotes”.
Content moderation
Another consequence of notes being immutable is that they can’t be deleted. This could turn out to be problematic if someone uploads illegal or objectionable material. The plan right now is for users to file a deletion request if they want something taken down, and possible to maintain a list of “blocked” hashes, which would prevent someone from uploading the same material again.
Roadmap
As far as I’m concerned Hashnotes is pretty much feature complete (aside from the moderation features mentioned above). There are a bunch of things I’d like to fix though:
- I’m not happy with the typography; notes are too wide on desktop, there are a bunch of weird margins in places, etc
- The “edit” window is too big on mobile; right now it’s also just a plain
<textarea>
; some highlighting or similar might be helpful - Dark mode?
- Image support? (Although I’m not sure how that would work—I’m not sure I want to deal with image hosting)
Anyway, hope you find this thing useful! My intent is to open-source this at some point, but I want to clean it up a little bit more first.