top | item 27606604

Show HN: Fuzzynote – terminal-based, CRDT-backed, collaborative note-taking

153 points| sambigeara | 4 years ago |github.com | reply

26 comments

order
[+] Evidlo|4 years ago|reply
So it looks like the clients talk to each other through AWS.

Would it be possible to use GDrive/Syncthing/Dropbox as the IPC mechanism for CRDT (e.g. store changes in a bunch of small files in a hidden folder which gets synced to other clients)?

I understand syncing would probably not be fast enough for a live cursor, but the benefit is you wouldn't have to worry about networking or accounts.

Just an idea I've had in my head for a while.

[+] sambigeara|4 years ago|reply
Providing Go has a decent enough client/interface into the tools you listed above, absolutely!!

The original "remote" I implemented was a single S3 bucket (no websockets, just a static file location), and if you set the synchronisation intervals to something in the realms of 10ths-1s of a second, you had near enough real time sync/collaboration!

I created a (really poorly named) abstraction called a WalFile which is basically an interface to implement these remote targets. Theoretically, you could build one for any service out there. If there was demand for one, I'd totally give it a go!

Sods law - I temporarily disabled support for the direct S3 remote yesterday because it's slightly broken. But it's a minimal amount of work away from having it functioning again.

[+] sambigeara|4 years ago|reply
Author here. Happy to answer questions if there are any!
[+] benrbray|4 years ago|reply
Nice project! How was your experience using CRDTs? I often see the criticism thrown around that the history might become enormous even with regular usage. I'm curious what you have to say!
[+] ampdepolymerase|4 years ago|reply
Does it support character level collaboration (like Google docs) or is this just generic entry/line level sync? IIRC CRDTs do not work well for Google-docs type text editing because they cannot capture intent well.
[+] al_james|4 years ago|reply
Looks powerful. You mention the CRDT is a WAL, won't it grow indefinitely?
[+] sambigeara|4 years ago|reply
Thanks! Again, very good question. There's an answer I wrote in response to benrbray which explains this!
[+] zimpenfish|4 years ago|reply
Minor complaint - the confirmation code email has an empty `text/plain` part which seems odd for a single line of plain text saying "Your confirmation code is XXXXXX".

Also the box to enter your code has no border which means I assumed I needed to hit the button first to get a box to type into (Dear world, please stop doing this - input boxes have borders! Otherwise how the hell do we know it's there?)

[+] sambigeara|4 years ago|reply
Thanks, appreciate the feedback!

Currently I'm just using the hosted AWS Cognito offering straight out the box (just as a temporary measure to enable people to sign up). I hope to have this looking/operating a bit better down the line.

[+] reyman|4 years ago|reply
Thanks for this tools ! Any chance that you add an emacs org-mode compatibility ?