Show HN: Supernotes 3 – Offline-Ready, Collaborative and Cross-Platform Notes (supernotes.app)
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
5 comments
[ 3.3 ms ] story [ 28.6 ms ] threadThat 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.