The absence of a protocol and format to store, sync and search personal data is one of the main blockers for most attempts at decentralized/self-hosted services.
What is wrong with good old plain text?
It provides no way to automatically synchronize/merge/reconcile data. E.g. if I create a calendar event on my desktop and one on my phone before they can sync, a content-agnostic tool cannot reconcile the calendar events.
That’s why most distributed datastores use key/values with metadata like timestamps, monotonic clocks, host unique ids…
This is extremely cool, thanks for writing it up! (Also, Kindle has similar data-export issues to your Kobo… as far as I can tell, if you buy a book from anywhere besides Amazon, you cannot export any notes you take in the book)
Great post. My own thinking takes a different turn, towards local-first designs, but I’m also happy to see people working on sync-based approaches—because that’s going to be useful for the local-first and multi-device stories to not be in conflict.
Thanks, glad you enjoyed it. I’m all pro local-first as well! The sad reality though is it’s gonna take a while to actually get there (in part due to the burden of existing products). I’m also not that familiar with such types of distributed systems, so would struggle to advocate for them without backing it up by facts.
But I do believe we’ll get there at some point :)
Yep, the sync-based solution I’m suggesting is sort of a first order approximation to local first, which one can get today with some effort (I’d be describing my setup in subsequent post).
Looking forward to it! I’ll follow your Atom feed to watch for it.
I’m currently working on a local-first social journaling protocol called Cavern, which you might be interested to read the design and philosophy documents for.
Kudos to you! This is excellent work. I feel motivated to do the same, although I’d like to wait for the rest of your scripts and see what’s missing before I start. Keep us posted with the progress.