{
"path": "/3m5jl22iiic2b",
"site": "at://did:plc:mdjhvva6vlrswsj26cftjttd/site.standard.publication/3lwyzotjqu22i",
"$type": "site.standard.document",
"title": "ATmosphere Report #142 - more new apps",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreigjbk3uo2stbiyzpeoxbyoktq4pnhyokee6g4fxxb2mqjw6ssfczi"
},
"mimeType": "image/jpeg",
"size": 1014559
},
"aspectRatio": {
"width": 1500,
"height": 429
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "This is the second part of this week's news, you can find yesterday's report here, with news of Ganders fundraiser and how atproto governance is in the process of being housed at the IETF."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://connectedplaces.leaflet.pub/3m5gygipuxc2q",
"$type": "pub.leaflet.blocks.website",
"title": "ATmosphere Report #142 - Connected Places",
"description": "The Canadian atproto-powered platform Gander raises of 1.3M in fundraising, atproto at the IETF and Bluesky is the baseball app",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreid4krahgetnhyj34tj3p5w3le77oioemzsurfye4tbwoc4qa2o7v4"
},
"mimeType": "image/png",
"size": 40021
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Semble"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 9,
"byteStart": 0
},
"features": [
{
"uri": "https://Semble.so",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 90,
"byteStart": 71
},
"features": [
{
"uri": "https://cosmik.network/#projects",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 281,
"byteStart": 275
},
"features": [
{
"uri": "https://are.na",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Semble.so is a new knowledge sharing platform on atproto, build by the Cosmik Network team. It allows people to create collections of links, organise them into 'collections', and see what other people having been gathering. Semble takes clear inspiration from platforms like are.na or Sublime."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://notes.cosmik.network/3m52o6mcd6c2z",
"$type": "pub.leaflet.blocks.website",
"title": "Cosmik Lab Notes 001: Semble Alpha - Cosmik Labs",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreid5jb3cy63vekfanx226pf3xntkaaigiuqkny5eiyqcw6geojm4aa"
},
"mimeType": "image/png",
"size": 54214
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "The platform is launched in alpha, and in the Lab Notes the team give an overview of other planned features, including further integrations with other atproto platforms such as Bluesky and Leaflet, which they discuss in more detail here:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://weswalla.leaflet.pub/3m3au34v5ms2m",
"$type": "pub.leaflet.blocks.website",
"title": "Integrations as Plugins - Wesley's notes",
"description": "Takeaways from our Exploratory Leaflet <-> Semble Integration Call",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreic56d54ocqe4kjsz6b7jdvk5yfkyb7au7bdsf7o765mo26kbkco2y"
},
"mimeType": "image/png",
"size": 28896
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I've been using Semble quite a bit over the last few days, and I'm really enjoying it. Sharing interesting links and seeing what other people are sharing is a style of social networking that fits with my style more than microblogging, so its nice to have a place for that now."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I'm especially interested in how this space of interoperability between different platforms like Semble and Leaflet will evolve. There is a large amount of potential here, and the openness of atproto allows for rapid experimentation. "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Other people are excited to build on this too, and here are some 3p extensions for Semble"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreifbux4df2xli7gdcgzthxujtmavk2xtfgme2vctcbcb25acrahx74",
"uri": "at://did:plc:s2rczyxit2v5vzedxqs326ri/app.bsky.feed.post/3m5gdbjxb6c2q"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Some thoughts on moderation"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Bluesky suspended the writer Sarah Kendzior for three days, saying that she broke the rules last month by posting a death threat."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I don't hold a strong opinion on the case itself, but I do think two things are worth flagging here:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "First is head of T&S Aaron Rodericks stating that Bluesky making a public statement is part of a shift towards being more transparent:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreibhsxpnt4gwvhc37ufdnl5lts5rp2gc2yjuwsvm3qsbksie3254aq",
"uri": "at://did:plc:ksjfbda7262bbqmuoly54lww/app.bsky.feed.post/3m5hdb2ovuc2z"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Second is that Gizmodo thought this case to be worthwhile enough to write an entire article about it:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://gizmodo.com/bluesky-is-clearly-not-a-johnny-cash-fan-2000685082",
"$type": "pub.leaflet.blocks.website",
"title": "Bluesky Is Clearly Not a Johnny Cash Fan",
"description": "A user was banned for making a Johnny Cash reference. Where's the dividing line between serious threat and jokey pop culture reference?",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreic4sk2mhzwyovcvjewcjmkbfynmuj4scl3mzgi434wcjo7pqp2dcq"
},
"mimeType": "image/png",
"size": 51456
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I'm not particularly interested in litigating whether the suspension was justified. What interests me is that this made it into Gizmodo, specifically because Twitter's cultural relevance partly came from its role as an assignment board for journalists. If a writer getting a 3-day suspension on Bluesky can now generate enough feed chatter to prompt a full Gizmodo article, then that signals to me that Bluesky is starting to take over that function from X."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Bluesky COO Rose Wang also commented that they'll be more open and share more information about mod decisions going forward. But I think another part of why this is important is somewhat hinted at in this post by Wang:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreih776sphq4w3s4jlqgycv5bvbq2ppjvuujztx5gnet2qknscfw5bu",
"uri": "at://did:plc:qjeavhlw222ppsre4rscd3n2/app.bsky.feed.post/3m5jczvv4bc2l"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "One of the goals of atproto is to have multiple providers of moderation that people can choose between. This will inevitably result in provider A making a different decision than provider B. In such a context of plurality staying silent on decisions simply is not an option, especially when it is unclear if the difference in choice is because the TOS is different or the interpretation of the alleged violation is different."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "On a related note, Rodericks also wrote about Bluesky's moderation process this week:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.blockquote",
"facets": [],
"plaintext": "Every system we build—from Ozone to stackable moderation—is an attempt to improve one of those three axes: accuracy, speed, or alignment. But we'll never reach perfection on all three simultaneously. That's the trade-off every moderation team in the world faces. "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://aaron.leaflet.pub/3m52nqqmk322v",
"$type": "pub.leaflet.blocks.website",
"title": "Moderating With Humans, For Humans - Trust Issues",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreig5q5gk7ygduh5n4bnthlknqwgcs272kxgl77i4byh7mnyvjopnhu"
},
"mimeType": "image/png",
"size": 31903
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Sure why not, lets bite some people"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Wafrn and Red Dwarf are two projects/platforms that are interoperable with Bluesky, while being fully independent, as well as not following the protocol architecture that Bluesky follows. This gives them more flexibility to add their own features."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreihu4dzxwnukr65amaejt2744mjr6vzpcjymjixfxiknyllkpwe3bu",
"uri": "at://did:plc:mn45tewwnse5btfftvd3powc/app.bsky.feed.post/3m4pxu766xk2d"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "My main interest here is in seeing platforms develop that are both interoperable with Bluesky and Bluesky's lexicon, while also adding unique features. How interoperability works in such cases is not yet fully defined, and it is just developers experimenting and figuring out what works best."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 51,
"byteStart": 1
},
"features": [
{
"uri": "https://bsky.app/profile/whey.party/post/3m52l3nndvk2k",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "(another example of interoperability with Red Dwarf)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "And an interview with the developers of Wafrn:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://latenthomer.leaflet.pub/3m4yanmnv3k2i",
"$type": "pub.leaflet.blocks.website",
"title": "AT friends #4 & #5: @gabboman.at.app.wafrn.net and @djara.dev of Wafrn - Jake Simonds",
"description": "informal chats with people building cool stuff in the open social world",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibr3r6rc5sb6i3rkwriiiro3muac4ywszorelpn54bl7p6mvormeq"
},
"mimeType": "image/png",
"size": 32183
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "And an explanation of how Wafrn's integration with Bluesky works:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pub.jbc.lol/how-wafrn-bsky-integration-works",
"$type": "pub.leaflet.blocks.website",
"title": "How Wafrn's Bluesky Integration works",
"description": "I have seen some people that it is bridged, even me said it, but no, it is not a bridge.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidu7hv2wqxuh27fiorhg7wu43op6mdwwpq4o34f6yzrreeucfvbmq"
},
"mimeType": "image/png",
"size": 19916
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Music streaming with Plyr.fm"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 68,
"byteStart": 61
},
"features": [
{
"uri": "https://plyr.fm/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Another new atproto platform this week: music streaming with Plyr.fm. It has the basic functionality of a Soundcloud-clone, but executed well on the design and features."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Static sites on your PDS with wisp.place"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://Wisp.place",
"$type": "pub.leaflet.richtext.facet#link"
}
]
},
{
"index": {
"byteEnd": 124,
"byteStart": 114
},
"features": [
{
"uri": "https://wisp.place",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Wisp.place is a new platform that allows you to host a static site on your PDS. Your PDS contains the site, while wisp.place reads the site from your PDS and servers it through a CDN."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "I think using the PDS to host the data of a static site is a highly under-explored part of atproto, and I expect to see more experimentation in this field. Personally I hope to have some time in the next few weeks to hack together something similar for my own personal site as well."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 42,
"byteStart": 32
},
"features": [
{
"uri": "https://wisp.place",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "A more technical description of wisp.place here:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://nekomimi.leaflet.pub/3m4vjxrdvas2x",
"$type": "pub.leaflet.blocks.website",
"title": "A soft launch of wisp.place - Ana",
"description": "wisp place cli for site uploading :D (@nonbinary.computer jacquard really made this easy i love it ty)",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihor5rcqimedgyzsxo4oc7r2resyca6qonjqdcearkrnnazqsenga"
},
"mimeType": "image/png",
"size": 27427
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [],
"plaintext": "Some links"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "An excellent long-read interview with Bluesky engineer Bryan Newbold:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://protocol.ecologies.info/interviews/newbold-protocol_engineering/",
"$type": "pub.leaflet.blocks.website",
"title": "Bryan Newbold: Protocol engineering",
"description": "A protocol engineer at the social-media platform Bluesky describes building an open protocol around a fast-growing social media platform.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihd43qx7uioh2warcjq4txxhyhfh7mvbi3tjaveczaxhjb54yionu"
},
"mimeType": "image/png",
"size": 26042
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Lots of good insight in there, and one I'll highlight:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.blockquote",
"facets": [],
"plaintext": "But broadly, I can say that the AT Proto development community is just great vibes, and really smart, thoughtful people. I really like that."
}
},
{
"$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": "Bluesky CTO Paul Frazee has some thoughts on protocol design, and is looking for feedback. It is about a fairly technical part of atproto, but it does have meaningful consequences, as Frazee points out. Recommended for people who have opinions about protocols to take a look at this, there are some interesting tradeoffs involved here."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://pfrazee.leaflet.pub/3m5hwua4sh22v",
"$type": "pub.leaflet.blocks.website",
"title": "The politics of purely client-side apps - Paul's Leaflets",
"description": "There's a surprisingly nuanced discussion in development about the political economy of clients and servers in the Atmosphere",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibldlquwh3lqht6mrkfa6fsakvaeybzgdltruku5zh24nzje6xvd4"
},
"mimeType": "image/png",
"size": 26827
}
}
},
{
"$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": "Alex Benzer, head of product at Bluesky, wants to know if people are interested in a Twitter archive importer:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreiauzzlpzianqotd2zwjpg5y5ytob4d47j3bdd42bi5tvi6dvgz2tm",
"uri": "at://did:plc:gsbue2dtbtqzw5du5btlh7p2/app.bsky.feed.post/3m5f6yklvuk2s"
}
}
},
{
"$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": "To get a sense of what the wider culture's perception of Bluesky is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.bskyPost",
"postRef": {
"cid": "bafyreic6fqkkm6r24wtzkroi2z2tgv4aw7pigm3z47bvtqqtm7i2d72jcm",
"uri": "at://did:plc:b5ly66nko7iijwy2lktt3ctq/app.bsky.feed.post/3m4ycj5e7ak2x"
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://marvins-guide.leaflet.pub/3m4qzoj6ubc2h",
"$type": "pub.leaflet.blocks.website",
"title": "What the hell is a rotation key? - HItchhikers Guide to the Atmosphere",
"description": "Why it's important that YOU should have a rotation key and backups for your Bluesky/AT Protocol account that is hosted on a third party PDS",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihayn2xmpdkuwrst5bhraoty6k3qmaddafykcvsnhhr27x7ejowna"
},
"mimeType": "image/png",
"size": 97527
}
}
},
{
"$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": "New features and design for event planning app Smoke Signal:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://smokesignal.leaflet.pub/3m5buxomey22s",
"$type": "pub.leaflet.blocks.website",
"title": "Smoke Signal Gets a Major Upgrade: New Features for the ATmosphere - Smoke Signal",
"description": "Smoke Signal just got a major update featuring redesigned event pages, ATProtocol facets support, cryptographically verified RSVPs with attestations, private content controls, email notifications, rich profiles, and experimental AI agent integration through the Model Context Protocol.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihthui5sei6jizagfubnibvigwzd2gjq6vdkdvkpsrbholjzfd32a"
},
"mimeType": "image/png",
"size": 26524
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://matthieu.leaflet.pub/3m4pw7osrg22v",
"$type": "pub.leaflet.blocks.website",
"title": "Rethinking Lexicon Tooling for Third-Party Developers - Matthieu's Leaflet",
"description": "The official Lexicon code generation tooling hasn't evolved much since its initial release. While it serves the core atproto codebase well, third-party developers face significant challenges with bundle size, manual maintenance, and architectural constraints that make building production-ready applications unnecessarily difficult.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreih36h4zddjy3assjg6kfxddpvvgrkcjnc3kglp2iqwklkrv4otlrq"
},
"mimeType": "image/png",
"size": 36752
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://alex-bsky.leaflet.pub/3m4ycvrd3fk2i",
"$type": "pub.leaflet.blocks.website",
"title": "Week 3: It's important to have Standards - Alex's Blog",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreigkoc2eri6usuhemxo4v5ckkn66f226eqoxdp6ags2tvmszyjx2i4"
},
"mimeType": "image/png",
"size": 37986
}
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreibuzq5udke7aycwa4e6l2g6y6r34ozomv7fs2ifzj7rghrtkn34xq",
"uri": "at://did:plc:mdjhvva6vlrswsj26cftjttd/app.bsky.feed.post/3m5jl2dyd5c2b",
"commit": {
"cid": "bafyreieeia6fbb6vkldulkdqapjgjy22orschszmbw4eottvehqqmqo6by",
"rev": "3m5jl2e5dcc2l"
},
"validationStatus": "valid"
},
"description": "The launch of knowledge sharing platform Semble, some thoughts on the evolving dynamics around moderation, and a whole lot of links",
"publishedAt": "2025-11-13T16:19:49.484Z"
}