Show HN: Supernotes 3 – Offline-Ready, Collaborative and Cross-Platform Notes (supernotes.app)

9 points by fastball ↗ HN
Hi HN! It's been more than a year since I last posted about Supernotes on here, but thought now would be the time since we've just launched our v3 release.

Jumping right in, Supernotes is indeed another note-taking app, but we think ours is pretty awesome. Rather than being modeled after long-form documents, Supernotes utilizes short-form (markdown-based) digital notecards to force you to compartmentalize your thoughts / knowledge and allow for easier linking and sharing. We also place a lot of emphasis on Keeping It Simple, Stupid, because we think notes apps should get out of your way and just let you take notes, rather than being another tool you spend too much of your life configuring and tweaking.

With this v3 release, we've added full offline support, which was an uphill battle because when we first built Supernotes it was designed as an online-only web app. Porting over everything to be offline-first instead was a lot of work given the number of features we've added in the intervening years. A big piece of the puzzle was adding CRDT support (via YJs) to our editing system, which in turn allows for real-time multiplayer editing. Supernotes 3 also marks the release of our mobile apps in the Apple App Store and Google Play Store, which have been a long time in the making and we're very excited about.

The Supernotes team is still just the two of us so it's a lot of work, but we love doing it. Here's the combination of features we've built that make us stand out:

- a powerful markdown-based notecard system that is simple/beautiful but also super flexible

- a WYSIWYM[2] editor that keeps markdown marks for explicitness while still giving you a preview of what the content looks like when rendered

- eschewing a folder system in favor of multi-parent nested hierarchies

- unique collaboration system that is optimized for granular sharing between individuals rather than "all-in" sharing amongst teams or specific groups

- notes that can be linked both with inline bidirectional links or the aforementioned hierarchies, allowing you to build (and experience with our 2D and 3D graph views) a robust graph of your knowledge

There are of course tons of other great features I haven't mentioned, but those are the highlights. If any of that sounds interesting to you, you can sign up here[3] – we would love to hear any feedback you might have!

[1] https://supernotes.app/?ref=hn

[2] https://en.wikipedia.org/wiki/WYSIWYM

[3] https://my.supernotes.app/entry/web?signup=1&ref=hn

5 comments

[ 3.3 ms ] story [ 28.6 ms ] thread
I’ve been using Supernotes for years now. Offline support is a huge feature, especially combined with the new mobile apps. If you are into polished UIs and blazingly fast interactions, I recommend you give Supernotes a try
Thank you for your kind words, very happy to have you as a long-term user of Supernotes!
One thing that always comes up with posts about CRDT is how they typically don't handle formatting markers when resolving edits. How is this (and CRDT) handled in SN?
Great question! First off, that is one reason we decided to stay with Markdown and picked YJs for our CRDT library. Markdown because it is plaintext, and in our testing we found it was a lot easier to conserve user intent when merging plain text than actual rich text (i.e. JSON). YJs because the CRDTs are already fairly robust and designed with intent-preservation in mind.

That being said, we did end up writing a somewhat large system around our editor (we're using CodeMirror, which is also great to work with), because we wanted to take things further by excessively labeling transactions with additional context not included in the plaintext ("this was pasted", "this is clearly a link", "these marks together are valid markdown", etc) which allows us to batch certain types of transactions together and better preserve intent that way. We also use fractional indexing for some things (like lists) which generally do a good job of preserving multi-user intent.

Finally, in cases where sending edits over WebSockets via our own servers is suitable, we actually prefer that to sending them peer-to-peer (via WebRTC) as certain types of atomic operations become difficult in P2P scenarios. This kinda reduces one of the key benefits of CRDTs (over OT), but the P2P is still possible (and works), it's just sometimes not as good at intent preservation.

One of the most carefully crafted apps I have seen in a while. I am good friends with both founders and I have seen how much time and love they put into this new version.