AT Protocol uses Lexicons — app-defined JSON schemas — so different apps can define their own data types, which avoids the standardization bottleneck that killed earlier protocols like XMPP and RSS.
Dan explains that instead of mandating a universal data format (which led to the fragmentation of XMPP and RSS), AT Protocol lets each app define its own types via Lexicon schemas. Apps can voluntarily standardize grassroots-style, as multiple blogging platforms did with the 'Standard Site' format. ✦ AI generated
Dan Abramov · Syntax · 2026-07-29 · original ↗
starts at this moment · 21:37
“I'm thinking about like um Jabber or XMPPP. ... every single time we have one of these standards, we eventually just drift away from it because you want to do things that is past that. So the is there some sort of schema that can help morph what the actual data looks like?”
the product itself it's app agnostic. So it doesn't spec, you know, it doesn't try to spec what I think is like a mistake a lot of these things do is like try to specify what a post is or like what a comment is. ... it gives you like a language for schema definitions. So instead of specifying like you know trying to get everyone to agree like how many characters there should be in a post uh instead it lets every app developer define their own types. ... it's called lexicon ... It's also interesting like some apps decide actually to standardize on the same one. So there's like an example where multiple blogging apps in the atmosphere decided that they want to keep uh their social graph unified ... and they were like it would be cool if you could follow a blog from the other app right but that it still shows up for you in the reader. uh and so they kind of standardized on okay let's use the same lexicon ... it's kind of like a standard but it's grassroots it's just like three developers came together to like unify their data model
verbatim transcript · starts at 21:37
21:34like every single time we have one of these standards, >> we eventually just drift away from it because you want to do things that is past that. So the is there some sort of schema that can help morph what the actual data looks like? >> Yeah. So the product itself it's app agnostic. So it doesn't spec, you know, it doesn't try to spec what I think is
21:57like a mistake a lot of these things do is like try to specify what a post is or like what a comment is. >> And so like it proto doesn't try to do any of that. It gives you like a language for schema definitions. So instead of specifying like you know trying to get everyone to agree like how many characters there should be in a post uh instead it lets every app
22:21developer define their own types. Uh so you can say like you know my blue sky like blue sky says like a post is an object with like a text field that's at most 300 unic code like segments or whatever and like uh you know like a language field and created that date time field and it's kind of like TypeScript definitions. uh they're written in JSON so it's it's not exactly
22:47TypeScript but there's like you know there's tools for like LLMs are actually really good at writing this JSON now it's called lexicon like this this format >> uh but there's lexicon definitions there's like tooling that code gen uh typescript types plus uh parsing utilities so for any format that you define you get like a fully typed you know blue sky post or tangled repo or like leaflet blog or whatever you
23:17know object that that is like fully typed and can parse that JSON. Um yeah and so and all the like in the users folders or repositories as they're technically called all data is broken down into folders that are again like per type. So each application can define their own types and then uh that means that you know like blue sky post can be different from some other app post and
23:48you know they they can just keep using completely different data formats kind of like file formats right and extensions like you can just define your own for your app. >> It's also interesting like some apps decide actually to standardize on the same one. So there's like an example where multiple blogging apps in the atmosphere decided that they want to keep uh their social graph unified so that they're you know they have like a
24:13reader each of them has like a reader page kind of like Google reader >> and they were like it would be cool if you could follow >> a blog from the other app right that but it still shows up >> for you in the reader. uh and so they kind of standardized on okay let's use the same lexicon for uh the publication itself so that we can have like a brand
24:34color for example uh like a theme there the publication name the author and so on and let's also standardized for subscriptions so how you follow each other is the same data format and posts or like you know declarations like here's here's a post um and so this is like now they all kind of can show you know can show or like link to posts from each other like aggregate posts from