{
"path": "/3md4qsktbms24",
"site": "at://did:plc:btxrwcaeyodrap5mnjw2fvmz/site.standard.publication/3lppk75kw7k26",
"tags": [
"leaflet",
"standard.site"
],
"$type": "site.standard.document",
"title": "Leaflet, standard.site, and open social publishing!",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019bb823-3cce-7aab-bcc2-3583cb058061",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 47,
"byteStart": 35
},
"features": [
{
"did": "did:plc:btxrwcaeyodrap5mnjw2fvmz",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 59,
"byteStart": 49
},
"features": [
{
"did": "did:plc:revjuqmkvrw6fnkxppqtszpv",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 78,
"byteStart": 65
},
"features": [
{
"did": "did:plc:pgjkomf37an4czloay5zeth6",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 92,
"byteStart": 83
},
"features": [
{
"uri": "https://bsky.app/profile/standard.site/post/3mbfoiwutps2r",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 107,
"byteStart": 93
},
"features": [
{
"did": "did:plc:re3ebnp5v7ffagz6rb6xfei4",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "This month, we — the creators of @leaflet.pub, @pckt.blog, and @offprint.app — announced @standard.site, a set of shared standards for longform publishing on the open social web:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://standard.site/",
"$type": "pub.leaflet.blocks.website",
"title": "Standard.site - One schema. Every platform.",
"description": "Standard.site provides shared lexicons for long-form publishing on AT Protocol. Making content easier to discover, index, and move across the ATmosphere.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidccmedpxkpe7eb7bngn7uyzoxq4mlzx2fowygvgb7lcncy7ohb6u"
},
"mimeType": "image/png",
"size": 16065
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 25,
"byteStart": 12
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "At its core standard.site is a set of AT Protocol lexicons for:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 20,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "publication metadata: what a publication is, like its name, description, and basic theme"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "document metadata: basics of what a given post contains, with content optional"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 13,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "subscriptions: records of who's following a given publication"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
},
{
"index": {
"byteEnd": 23,
"byteStart": 10
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
},
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 116,
"byteStart": 23
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"textSize": "large",
"plaintext": "TL;DR — standard.site makes it easier for platforms and publications to coordinate and build cool things together!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "The initial focus is facilitating interoperability around content discovery and social features like subscribing and commenting."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 52,
"byteStart": 45
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "Importantly, this is not a standard for site content."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "We each want to explore different things with our platforms, from block-based editors to unique theming. We also want to make it easy for existing sites to adopt without fully syndicating content."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 15,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "Publishing apps can implement to make content discoverable across platforms, so we can build a richer ecosystem together."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 16,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "Individual sites can publish records — WordPress, self-hosted, wherever, from indie blogs to big publishers — to give their content a presence on the open social web."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "See below for examples of what folks are doing with this already!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "⁂ ⁂ ⁂"
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignCenter"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [
{
"index": {
"byteEnd": 37,
"byteStart": 24
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Leaflet has migrated to standard.site!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 50,
"byteStart": 37
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "We've just finished our migration to standard.site lexicons! This was a big project, to our knowledge one of the largest schema migrations in the atmosphere so far."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 20,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "How it works, TL;DR:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "We're migrating relevant records for publications, documents, and subscriptions; Leaflet-specific records (e.g. for document content) remain the same"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 30,
"byteStart": 27
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "For now we're also keeping all existing Leaflet records around, so that other tools querying them won't break"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "We've run this migration proactively for folks with active sessions; otherwise it'll run the next time you log in"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
]
},
{
"index": {
"byteEnd": 36,
"byteStart": 17
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
},
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
},
{
"index": {
"byteEnd": 37,
"byteStart": 36
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
]
}
],
"plaintext": "What to know — readers and writers:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "No need for you to do anything special — just log into Leaflet! We'll handle the relevant migrations automatically."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
]
},
{
"index": {
"byteEnd": 34,
"byteStart": 17
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
},
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
},
{
"index": {
"byteEnd": 35,
"byteStart": 34
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
}
]
}
],
"plaintext": "What to know — Leaflet tinkerers:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 129,
"byteStart": 116
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "If you've built apps or custom integration apps that use Leaflet records, ping us if you need help migrating to use standard.site records. We'll figure it out together!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "⁂ ⁂ ⁂"
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignCenter"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "An ecosystem emerges…"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 58,
"byteStart": 43
},
"features": [
{
"uri": "https://bsky.app/profile/jimray.bsky.team/post/3mbhchxbfns2n",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "2026 is the year of atproto publishing — many are saying this!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 85,
"byteStart": 72
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "In just the first few weeks, we've seen a strong positive reception for standard.site and adoption by both platforms and individuals:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019be159-1102-7003-b49b-be8ec7a9c9ca",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019be159-523a-7003-b49f-fc3a440e10b5",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019be161-27f6-7003-b4ae-0b0a8601de52",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "What's more:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 35,
"byteStart": 10
},
"features": [
{
"uri": "https://bsky.app/profile/reckless.bsky.social/post/3mbs2kg6a522w",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "The Verge wants to leverage atproto for better social activity"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 61,
"byteStart": 25
},
"features": [
{
"uri": "https://bsky.app/profile/thoth.ptnote.dev/post/3mbowzs4his2r",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "People are excited about longform blogging + shortform social"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 32,
"byteStart": 13
},
"features": [
{
"uri": "https://bsky.app/profile/jaz.sh/post/3mc56q2zozc2f",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 47,
"byteStart": 34
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Many want to eighty-six Substack; standard.site can help!"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "⁂ ⁂ ⁂"
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignCenter"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Open social publishing — blogosphere to atmosphere!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 18,
"byteStart": 5
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 86,
"byteStart": 83
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "With standard.site we can make atproto publishing platforms more interoperable — and we can make it easier to bridge between atproto and the rest of the internet, both platforms and individual sites."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 158,
"byteStart": 152
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "For example, Leaflet and Pckt can both render previews of posts created on the other platform — and by Offprint, or anyone else — in our respective Reader pages. Others can make entirely separate readers, or search engines, or bookmarking tools (to name a few examples already emerging!) and all experiment with different features and ways to add value for readers and writers."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 50,
"byteStart": 37
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "We're particularly excited about how standard.site offers publishers a flexible way to bring existing publications onto atproto."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 152,
"byteStart": 140
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "We see this as complementing, not replacing, existing standards for the open web. You can still use RSS! This gives publications a standard social layer, wherever they may live."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "If you have a self-hosted static site or WordPress blog, you can publish these records to make your site discoverable on atproto, without having to migrate your content."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 81,
"byteStart": 68
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 192,
"byteStart": 142
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#highlight"
},
{
"$type": "pub.leaflet.richtext.facet#bold"
}
]
}
],
"plaintext": "We also want to make it easier for existing sites to both implement standard.site and layer on social pieces like comments and subscriptions. If that sounds interesting, reach out, let's chat!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "⁂ ⁂ ⁂"
},
"alignment": "lex:pub.leaflet.pages.linearDocument#textAlignCenter"
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Open questions and things to explore further"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 170,
"byteStart": 157
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "We intentionally started with a pretty minimal set of lexicons, and we're already seeing a lot of good questions and suggestions for extending and improving standard.site, like:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "How should platforms treat posts made elsewhere in discover / reader…render the full post? preview + link? something else?"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 56,
"byteStart": 37
},
"features": [
{
"uri": "https://bsky.app/profile/zicklag.dev/post/3mbh72ljgik2m",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 77,
"byteStart": 61
},
"features": [
{
"uri": "https://bsky.app/profile/aparker.io/post/3mbn4b55wms2p",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "What are best practices for handling lexicon namespacing and record migration?"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 99,
"byteStart": 92
},
"features": [
{
"uri": "https://bsky.app/profile/tylerjfisher.com/post/3mbtgkpxbhk2z",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 116,
"byteStart": 103
},
"features": [
{
"uri": "https://bsky.app/profile/awarm.space/post/3mbnfa4jids2f",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 134,
"byteStart": 120
},
"features": [
{
"uri": "https://bsky.app/profile/anil.recoil.org/post/3mcfqmscfzk2h",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "How should we go about collectively evolving these standards, e.g. adding new lexicons like authors or content types or alternate URLs or other social primitives like comments?"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 26,
"byteStart": 13
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "We developed standard.site collaboratively, and intend to evolve it collaboratively as well — what should governance look like?"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Can we get larger publishers and platforms onboard? What paths for adoption might make the most sense?"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 74,
"byteStart": 61
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 110,
"byteStart": 96
},
"features": [
{
"did": "did:plc:re3ebnp5v7ffagz6rb6xfei4",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Please let us know any thoughts on how we can make Leaflet + standard.site work better, and tag @standard.site on Bluesky for questions / ideas."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 33,
"byteStart": 16
},
"features": [
{
"uri": "https://bsky.app/profile/standard.site/post/3mcfnzybbck23",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "There's also an open Signal group for folks interested in more detailed discussion on lexicons, implementation, and so on."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 20,
"byteStart": 7
},
"features": [
{
"did": "did:plc:v46ojbiop5ebs5h7gaomixcc",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 33,
"byteStart": 25
},
"features": [
{
"did": "did:plc:eob75vcjtmbaef2tn4evc4sl",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Thanks @brookie.blog and @aka.dad for joining together to get this off the ground. Excited to see what everyone continues to build!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
}
]
},
{
"id": "019be159-1102-7003-b49b-be8ec7a9c9ca",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"facets": [],
"plaintext": "Publishing Platforms"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Several other publishing platforms have implemented, or have indicated they're working on it:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 4,
"byteStart": 0
},
"features": [
{
"uri": "https://devlog.pckt.blog/blogging-on-the-open-social-web-and-more-exciting-features-g9x55y6",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 15,
"byteStart": 5
},
"features": [
{
"did": "did:plc:revjuqmkvrw6fnkxppqtszpv",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Pckt @pckt.blog "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 6,
"byteStart": 0
},
"features": [
{
"uri": "https://bsky.app/profile/weaver.sh/post/3mc3psn7e622n",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 17,
"byteStart": 7
},
"features": [
{
"did": "did:plc:eklm2cl7ug4efdt5ywzuwyaq",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Weaver @weaver.sh "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 9,
"byteStart": 0
},
"features": [
{
"uri": "https://greengale.app/greengale.app/3mbiklmhghr2p",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 24,
"byteStart": 10
},
"features": [
{
"did": "did:plc:purpkfw7haimc4zu5a57slza",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Greengale @greengale.app "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 8,
"byteStart": 0
},
"features": [
{
"uri": "https://offprint.app/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 22,
"byteStart": 9
},
"features": [
{
"did": "did:plc:pgjkomf37an4czloay5zeth6",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 52,
"byteStart": 27
},
"features": [
{
"uri": "https://bsky.app/profile/offprint.app/post/3mc2gfvi66s2v",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Offprint @offprint.app — launching in private beta"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://micro.blog/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 22,
"byteStart": 11
},
"features": [
{
"did": "did:plc:wshwyrtacrpz3ybxv4it5stl",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 40,
"byteStart": 27
},
"features": [
{
"uri": "https://bsky.app/profile/manton.org/post/3mbhetwhyau2x",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Micro.blog @micro.blog — working on it"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://wisp.place/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 22,
"byteStart": 11
},
"features": [
{
"did": "did:plc:7puq73yz2hkvbcpdhnsze2qw",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 40,
"byteStart": 27
},
"features": [
{
"uri": "https://bsky.app/profile/wisp.place/post/3mbzaafmsd22b",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Wisp.place @wisp.place — working on it"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 28,
"byteStart": 10
},
"features": [
{
"did": "did:plc:vcq34cz2s3iicekpjob5vo2j",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 40,
"byteStart": 33
},
"features": [
{
"uri": "https://bsky.app/profile/aetheros.computer/post/3mbga3anygs2o",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Aether OS @aetheros.computer — planned"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 6,
"byteStart": 0
},
"features": [
{
"uri": "https://blento.app/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 18,
"byteStart": 7
},
"features": [
{
"did": "did:plc:4fdwezqvlw4mu2qwn7wqsmej",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Blento @blento.app — recent posts list"
},
"children": []
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
}
]
},
{
"id": "019be161-27f6-7003-b4ae-0b0a8601de52",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"facets": [],
"plaintext": "Community Tools / Apps"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Finally, we're seeing some awesome community tools emerge for things like discovery, search, and more, like:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 9,
"byteStart": 0
},
"features": [
{
"uri": "https://docs.surf/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 27,
"byteStart": 14
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 75,
"byteStart": 60
},
"features": [
{
"did": "did:plc:ia2zdnhjaokf5lazhxrmj6eu",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Docs.surf — standard.site aggregator with fun vibes, from @stevedylan.dev "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://pub-search.waow.tech/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 46,
"byteStart": 33
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 106,
"byteStart": 93
},
"features": [
{
"did": "did:plc:xbtmt2zjwlrfegqvch7fboei",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "pub search — search across all standard.site compatible atproto publishing platforms, from @zzstoatzz.io "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 19,
"byteStart": 0
},
"features": [
{
"uri": "https://impulsivestatic.leaflet.pub/3mbngcvusks2w",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 65,
"byteStart": 52
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 94,
"byteStart": 80
},
"features": [
{
"did": "did:plc:h3wpawnrlptr4534chevddo6",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "astro-standard-site — Astro plugin for publishing standard.site records, from @chaosgreml.in "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 23,
"byteStart": 0
},
"features": [
{
"uri": "https://site-validator.fly.dev/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 50,
"byteStart": 33
},
"features": [
{
"did": "did:plc:txurc6ueald5d7462bpvzdby",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "Standard.site Validator — from @octet-stream.net "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 13,
"byteStart": 0
},
"features": [
{
"uri": "https://potatonet.app",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 74,
"byteStart": 61
},
"features": [
{
"uri": "https://standard.site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 122,
"byteStart": 114
},
"features": [
{
"did": "did:plc:gotnvwkr56ibs33l4hwgfoet",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "potatonet.app — \"read-it-later social network\", working on standard.site search + subscription management, from @zeu.dev "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 8,
"byteStart": 0
},
"features": [
{
"uri": "https://sites.at.geomys.org/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 50,
"byteStart": 37
},
"features": [
{
"uri": "https://standard.site/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 98,
"byteStart": 71
},
"features": [
{
"did": "did:plc:x2nsupeeo52oznrmplwapppl",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "AT Sites — listings and feeds for standard.site publications, from @filippo.abyssdomain.expert "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 20,
"byteStart": 0
},
"features": [
{
"uri": "https://tangled.org/did:plc:ofrbh253gwicbkc5nktqepol/svelte-standard-site",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 81,
"byteStart": 68
},
"features": [
{
"did": "did:plc:ofrbh253gwicbkc5nktqepol",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
}
],
"plaintext": "svelte-standard-site — standard.site renderer for SvelteKit, from @ewancroft.uk "
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 60,
"byteStart": 43
},
"features": [
{
"did": "did:plc:2hgmrwevidwsxundvejdeam5",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 90,
"byteStart": 62
},
"features": [
{
"uri": "https://bsky.app/profile/tylerjfisher.com/post/3mbs4r5nez22a",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "…and more folks starting to tinker, e.g. @tylerjfisher.com exploring a WordPress plugin"
},
"children": []
}
]
}
}
]
},
{
"id": "019be159-523a-7003-b49f-fc3a440e10b5",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"facets": [],
"plaintext": "The Blogosphere"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Individual blogs are starting to adopt, too!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 17,
"byteStart": 0
},
"features": [
{
"did": "did:plc:txurc6ueald5d7462bpvzdby",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 45,
"byteStart": 22
},
"features": [
{
"uri": "https://octet-stream.net/b/scb/2026-01-05-this-blog-is-on-atproto.html",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "@octet-stream.net — This blog is on ATProto"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 16,
"byteStart": 0
},
"features": [
{
"did": "did:plc:55ctkgmxiatroidj673bjs2k",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 39,
"byteStart": 21
},
"features": [
{
"uri": "https://dkbhadeshiya.me/blog/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "@dkbhadeshiya.me — Dhruman Bhadeshiya"
},
"children": []
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 15,
"byteStart": 0
},
"features": [
{
"did": "did:plc:ia2zdnhjaokf5lazhxrmj6eu",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 57,
"byteStart": 20
},
"features": [
{
"uri": "https://stevedylan.dev/posts/standard-site-the-publishing-gateway/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "@stevedylan.dev — Standard.site: the Publishing Gateway"
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.blockquote",
"facets": [],
"plaintext": "\"At this point I started to question the value of all of this given the amount of work it took to get what I wanted, but in the end we had something special. Within a week, my site had actually turned ATProto into a CMS. I could make posts, update them, or delete them, and all the while these updates are broadcasted to a network that anyone could index. It was like an RSS feed that because it met a standard could be aggregated with a single tool. When I sign into my site using my own PDS and make posts, it’s totally independent. I have total control over everything. The hype of Standard.site was starting to click.\""
},
"children": []
}
]
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 27,
"byteStart": 0
},
"features": [
{
"did": "did:plc:x2nsupeeo52oznrmplwapppl",
"$type": "pub.leaflet.richtext.facet#didMention"
}
]
},
{
"index": {
"byteEnd": 42,
"byteStart": 33
},
"features": [
{
"uri": "https://bsky.app/profile/filippo.abyssdomain.expert/post/3mbz2p5wwmc2o",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "@filippo.abyssdomain.expert also tinkering!"
},
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.blockquote",
"facets": [],
"plaintext": "Once upon a time, I had a local mirror of medium.com, collected by scraping the sitemaps. Imagine the potential for interoperability, portability, accessibility, and archivism if @standard.site had been around. How safer all that knowledge would have been from disappearing behind a paywall."
},
"children": []
}
]
}
]
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreigzj5xyxi4b575baz2q375zzyuutzmi32tvzvzqhej4yf6knoxxjy",
"uri": "at://did:plc:btxrwcaeyodrap5mnjw2fvmz/app.bsky.feed.post/3md4qsqncqs24",
"commit": {
"cid": "bafyreia4amej4nkelzwjtomwwlgsscimtunq5hviv626672uslk7g4hq7a",
"rev": "3md4qsqpc6v2l"
},
"validationStatus": "valid"
},
"description": "Lab Notes 021: launching a set of shared standards for social publishing, migrating Leaflet to use these new lexicons, and how we plan to grow publishing × open social together!",
"publishedAt": "2026-01-23T22:29:32.240Z"
}