grjte's Avatar

grjte

@grjte.sh.bsky.social

- https://grjte.sh - Researcher at @baincapitalcrypto.com exploring programmable cryptography and local-first software - Experimenting with atproto + local-first software at https://groundmist.xyz

160 Followers  |  63 Following  |  42 Posts  |  Joined: 14.03.2025  |  1.983

Latest posts by grjte.sh on Bluesky

Preview
0xPARC Supporting application R&D on Ethereum and decentralized platforms.

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...

10.07.2025 17:03 โ€” ๐Ÿ‘ 6    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

1/ Had a great time on the ZK podcast chatting about local-first and emerging use cases for programmable cryptography (ZK, HE, MPC) with @goblinoats.com @arro.bsky.social @nicomnbl.bsky.social . I'm excited for more exploration here & I'd love to hear ideas from both local-first & prog crypto worlds

10.07.2025 17:03 โ€” ๐Ÿ‘ 13    ๐Ÿ” 5    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

๐Ÿ‘‹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

27.06.2025 13:41 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Homomorphically Encrypting CRDTs | jakelazaroff.com Homomorphic encryption allows a computer to run programs on encrypted data. Learn how homomorphic encryption works through interactive examples, build a homomorphically encrypted CRDT and see whether ...

๐Ÿ“ new blog post! i spent a while looking into homomorphically encrypted CRDTs. spoiler alert: they donโ€™t work super well!

(but you should still check it out โ€” i break down what homomorphic encryption is and how it works, and there are lots of explorable explanations along the way!)

17.06.2025 13:43 โ€” ๐Ÿ‘ 57    ๐Ÿ” 13    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 1
screenshot of our "Leaflet Lab Notes" publication homepage, with one post listed, at https://lab.leaflet.pub/

screenshot of our "Leaflet Lab Notes" publication homepage, with one post listed, at https://lab.leaflet.pub/

screenshot of a record from @leaflet.pub's PDS, showing the data for the Leaflet Lab Notes publication, at https://pdsls.dev/at://did:plc:btxrwcaeyodrap5mnjw2fvmz/pub.leaflet.publication

screenshot of a record from @leaflet.pub's PDS, showing the data for the Leaflet Lab Notes publication, at https://pdsls.dev/at://did:plc:btxrwcaeyodrap5mnjw2fvmz/pub.leaflet.publication

Leaflet Publications: blogging on Bluesky โ€” version 0.1 is here!

โœ… now: make publications, add posts, publish to Bluesky
๐Ÿ—“๏ธ soon: subscribing, commenting & other social features

Try it: leaflet.pub/home

We'd love your feedback & ideas for how we can make this great!

22.05.2025 15:16 โ€” ๐Ÿ‘ 220    ๐Ÿ” 60    ๐Ÿ’ฌ 18    ๐Ÿ“Œ 25
Preview
Beta Waitlist โ€” Germ Network Select \u201CAccept all\u201D to agree to our use of cookies and similar technologies to enhance your browsing experience, security, analytics and customization. Select \u201DManage cookies\u201D toโ€ฆ

We built the DMs we wish existed: a messenger that lets you share what you want people to know, and nothing else.

But what if you wanted them to knowโ€ฆyour ATProto handle? ๐Ÿคฏ

20.05.2025 14:41 โ€” ๐Ÿ‘ 51    ๐Ÿ” 12    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 3

I've been working on a network-local ATProtocol dev environment that gives me end-to-end production functionality for Smoke Signal, including handle resolution and repository access. Hereโ€™s how I put it together. ๐Ÿงต

14.05.2025 17:30 โ€” ๐Ÿ‘ 74    ๐Ÿ” 16    ๐Ÿ’ฌ 6    ๐Ÿ“Œ 2
Preview
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...

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...

14.05.2025 14:45 โ€” ๐Ÿ‘ 11    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 7    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 1

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.

14.05.2025 14:45 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

๐Ÿงต The AT Protocol shows the power of a personal data store. All of our public atproto data is easy to find and access. We can interact with it flexibly in myriad ways and combinations.

Wouldn't it be nice to do the same for our private and collaborative data? ๐Ÿ‘‡

14.05.2025 14:45 โ€” ๐Ÿ‘ 13    ๐Ÿ” 3    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
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...

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...

09.05.2025 09:17 โ€” ๐Ÿ‘ 3    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

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?

24.04.2025 16:19 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

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

24.04.2025 16:17 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Post image

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

24.04.2025 16:09 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
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...

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...

23.04.2025 19:25 โ€” ๐Ÿ‘ 8    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A more complex diagram of an interoperable system with multiple local-first apps that use the same lexicons and multiple atproto AppViews interoperating over the same public data and lexicons

A more complex diagram of an interoperable system with multiple local-first apps that use the same lexicons and multiple atproto AppViews interoperating over the same public data and lexicons

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.

23.04.2025 19:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A diagram of a simple interoperable system with a local-first app that can uses the same lexicon as an atproto AppView and can publish documents to the user's data repo for public display by the atproto AppView

A diagram of a simple interoperable system with a local-first app that can uses the same lexicon as an atproto AppView and can publish documents to the user's data repo for public display by the atproto AppView

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

23.04.2025 19:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A view of the local-first Groundmist Editor application for drafting and editing markdown documents before publishing them to atproto

A view of the local-first Groundmist Editor application for drafting and editing markdown documents before publishing them to atproto

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.

23.04.2025 19:25 โ€” ๐Ÿ‘ 3    ๐Ÿ” 2    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

5/ How can we enable interoperability for local-first software? We can use Lexicon as a global schema network _without publishing data to the protocol_. Our software will still be local-first, but we'll leverage atproto's structured legibility layer to manage interoperable data.

23.04.2025 19:25 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

4/ Local-first software champions user ownership and control.

โœ… Local & private by default
โœ… Works seamlessly offline
โœ… Instant interactionsโ€”no loading spinners

But each app lives in its own universe - there's no connectivity layer for easily reusing or composing data.

23.04.2025 19:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

3/ atproto enables interface flexibility through its global schema network called Lexicon. Lexicon is used so every AppView on the network can agree on semantics and behaviour. It defines a schema definition language, as well as specifying the data's collection.

23.04.2025 19:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Two different side-by-side views of the same Groundmist Library data from my atproto data repo

Two different side-by-side views of the same Groundmist Library data from my atproto data repo

2/ First, check out the flexibility of AppViews on the AT Protocol. Here are 2 different views of the data from my Groundmist Library collection, one on the Groundmist Library site and the other on my website. They both use the same underlying data from my atproto data repo.

23.04.2025 19:25 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

1/ Seph Gentle on @localfirst.fm put it like this: "_Some people like vim and some people like emacs and some people like something else, and why not have our documents able to be edited in all of those programs?_" Beyond code - why not for data across all disciplines?

23.04.2025 19:25 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

@grjte.sh is following 20 prominent accounts