Post

Getting close to being able to demonstrate the complementarity of #DialogDB and #ATProto. Bi-directional sync between a general purpose, local-first (private by default) database and any PDS.

One thing that is tricky with ATP is the open-ended nature of Lexicons. SQLite doesn't sync out of the box, but even if it did there would be an impedance mismatch: no fixed schemas!

I get hot and bothered thinking about a local-first Bsky client with offline write. Even though the audience for that is like.. dozens of people? 😅

Wrangling, composing and remixing Lexicons without an AppView deployed in the cloud is also going to be interesting.

Appviews aren’t required. They’re required for aggregation (among other things) but sharing data shapes p2p works fine. As well as PDS to PDS. What else do you feel you’ll need?

I think you answered your own question before you asked it. If the AppView served no purpose, we may just as well discard it. But, in fact you need it to do several things. If I have a local first UX, I want to be able to read AND write locally without having to sync the world (or trade fidelity).

1 repost0 likes

That’s my question - you can pull records you’re interested in off a firehose or fetch it from PDS of particular accounts. So I am interested in what you need. Local publishing isn’t published as far as the network is concerned - you’ll need to push to the “online” repo of an account. Say more!

Local first data and authority just flows differently. It shows up in how we handle identity, how we reconcile histories, even how we may choose to move the data around. I don't think we *need* anything on the ATProto side (but you will be the first person I ask when I discover otherwise).