grjte
grjte.sh
grjte
@grjte.sh
- https://grjte.sh
- Researcher at @baincapitalcrypto.com exploring programmable cryptography and local-first software
- Experimenting with atproto + local-first software at https://groundmist.xyz
2/ Particular thanks to @expede.wtf @patternist.xyz for helpful discussions beforehand and @inkandswitch.com @martin.kleppmann.com @jakelazaroff.com @jessmart.in for referenced work

For an intro to the idea of "programmable cryptography" see gubsheep's excellent essay: 0xparc.org/blog/program...
0xPARC
Supporting application R&D on Ethereum and decentralized platforms.
0xparc.org
July 10, 2025 at 5:03 PM
👋I was just talking about your local-first conference talk on a podcast yesterday. I love your new website design too! Fun to engage with & exactly the kind of unique personalized view over PDS data that I was envisioning
June 27, 2025 at 1:41 PM
9/

A personal sync server acts as your local-first PDS, offering local-first benefits—like offline access, data ownership, and multi-device support—while enabling the interoperability and flexibility of the AT Protocol.

👉 Read more: whtwnd.com/grjte.sh/3ln...
Exploring interoperability & composability for local-first software | grjte
Check out the project at https://github.com/grjte/groundmist-syncCross-posted to https://baincapitalcrypto.com/atproto-for-local-first-interoperability/ This is the third exploration connecting local...
whtwnd.com
May 14, 2025 at 2:45 PM
8/

Because your apps are local-first, the user-centric data repo that your personal sync server provides is portable, just like your atproto identity. Update the location of your PSS, and your local-first data will sync in the new data store as you continue to use your apps.
May 14, 2025 at 2:45 PM
7/

With this foundation, any AppView you want to use for interacting with your local-first data can sync and use multiple data types from your PSS without having access to the full PSS. You can do this from any device, even using different services for different devices.
May 14, 2025 at 2:45 PM
6/

This personal sync server (PSS) model can enable local-first interoperability. atproto identity can be used as a user-centric identity for managing and connecting to the sync server. Data can be structured, stored, and permissioned according to a Lexicon definition.
May 14, 2025 at 2:45 PM
5/

This can be fixed by following atproto's lead and making an architectural shift from app-centric sync servers to user-centric sync servers. Instead of local-first apps syncing data to the same server regardless of the user, each user's data syncs to a personal sync server.
May 14, 2025 at 2:45 PM
4/

In the local-first context, data interoperability is challenging partly because it lacks atproto's data model separation. It also lacks user-centric identity, schema standardization, a permission system, and a discovery mechanism, all of which facilitate apps sharing data.
May 14, 2025 at 2:45 PM
3/

For data interoperability across services, we need legibility as well as discoverability and accessibility beyond the original app. atproto enables this by combining the Lexicon system with data model separation where user-centric data repos are separated from AppViews.
May 14, 2025 at 2:45 PM
2/

The latest Groundmist experiment explores how a personal sync server can function as a local-first data store, mirroring the role of an atproto Personal Data Server (PDS) and building on the lexicon schema system's foundation to enable interoperability over local-first data.
May 14, 2025 at 2:45 PM
1/

In the 1st Groundmist experiment, we used atproto as a publishing target for data drafted privately in a local-first context. In the 2nd, we explored atproto's Lexicon schema system as a legibility foundation for describing how to interact with various local-first data.
May 14, 2025 at 2:45 PM
Yeah this is an interesting point - currently the publishing is one way from private to public, but it would be great to be able to sync in both directions. There are a few issues to think through here that I mentioned in a related github issue someone raised: github.com/grjte/ground...
Feature request: store collection in PDS? · Issue #1 · grjte/groundmist-library
I made a collection and published links, but I didn't save the collection url before clearing my browser cache. Now I have links in my PDS but can't get back the collection, and neither is it possi...
github.com
May 9, 2025 at 9:17 AM
what's the purpose of the modes? the first part makes sense to me. what's the extra power you want from the server/client model?
April 24, 2025 at 4:19 PM
Yes, I'd love to see this pattern applied to knowledge graph notes. Long form markdown was a simple place to start, but having a mixed local-first/public knowledge graph would be so useful. I'll catch up on your notes & would love to chat more also with @cdata.earth @mathewlowry.bsky.social
April 24, 2025 at 4:17 PM
Interesting! My PSS prototype is built as a sync server for automerge documents, so the storage is managed by github.com/automerge/au.... I just define where to store those repos, and I do it according to a specified lexicon NSID, storing data along that path
April 24, 2025 at 4:09 PM
9/ Combining atproto's Lexicon schema system with local-first software offers a lightweight way to unlock interoperability. If you're interested in these ideas or working on similar ones, I'd love to hear from you.

👉 Read the post: whtwnd.com/grjte.sh/3ln...
Exploring the AT Protocol as a legibility layer for local-first software | grjte
Check out the project at https://notebook.groundmist.xyzCross-posted to https://baincapitalcrypto.com/atproto-for-local-first-legibility/ Some people like vim and some people like emacs and some peop...
whtwnd.com
April 23, 2025 at 7:25 PM
8/ Second: local-first software applications can provide multiple AppViews for private data that _never gets published._ By using shared lexicons and data, independent local-first applications can smoothly interoperate, easily understand data sets, and modify them correctly.
April 23, 2025 at 7:25 PM
7/ atproto lexicons + local-first software enables AppViews over local-first data, enabling 2 useful models.

First: local-first software can provide AppViews of private data and be connected via a lexicon to public AppViews that display data that was published to the AT Protocol
April 23, 2025 at 7:25 PM
6/ To explore the idea of local-first AppViews connected to public lexicons, I made a local-first markdown editor for the @whtwnd.com blog using Automerge + @inkandswitch.com's "tiny essay editor". You can use it to draft your writing in private before publishing to atproto.
April 23, 2025 at 7:25 PM