It's astonishing to me how difficult it (still) is to design a syncable local-first data model.
I keep thinking I've found a decent way, then realizing its flaws, then despondently noticing that the flaws were already discussed in Ink & Switch's article: inkandswitch.com/local-first.ht
Conversation
Arguably things are even worse than discussed in that article. Take Firebase, for instance: it implements offline caching, but that's very different from sync. You have to design a whole replication strategy on top to get something like "a synced file format."
1
20
CouchDB seems like the closest solution, if you can design a conflict-free model. But I spent the last week getting into the details of actually operating a multi-user service, and I am now quite thoroughly spooked!
8
30
Both new to me, thanks—will read up.
2
1
2
This is really fantastic!! I'm so excited to see this space evolve. Databases do seem like the next frontier…
Are any of your apps open source by chance? I'd be curious to dig in to understand how these frameworks work out in practice.
1
all of them actually, just pick an org github.com/rosano
i use a wrapper to indirectly integrate with both protocols via one api, the simplest implementation might be this 'proof' svelte app with crud operations where it's all in one file
1
2
Show replies
i think it's now possible to have an in-browser sqlite database via webassembly? it might not be too hard to populate it based on change events from these protocols. but a completely integrated system would be more elegant.
1
1
there’s interesting stuff happening with SQLite including with WASM eg phiresky.github.io/blog/2021/host
But it’s all single user, and like James Long, a roll your own sync / CRDT is needed.


