{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreibwkbt4gh45gi4bxw2lolv3xb4spz2dxnztv74pxaoktepq2tuihu",
"commit": {
"cid": "bafyreiftukkecubhmprzr3pfls3xcflumq5uyytfmm32makwzpoiosslsa",
"rev": "3mlyi6lplqp22"
},
"uri": "at://did:plc:ztjsajckkmfscs3tshez4ath/app.bsky.feed.post/3mlyi6lkgks2z",
"validationStatus": "valid"
},
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/the-programmers-fulcrum-15-may-2026/"
}
],
"index": {
"byteEnd": 47,
"byteStart": 36
}
}
],
"plaintext": "This article originally appeared on The Fulcrum."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "It's your weekly curation of the essential news in the Open Media Network and Fediverse development communities with a focus on devastating big tech via Techno Anarchism."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 97,
"byteStart": 0
}
}
],
"plaintext": "As usual, we aim to provide actionable content you can use to destroy Techno Feudalism each week. It has the additional benefit of weakening authoritarianism."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/techno-anarchist-manifesto/"
}
],
"index": {
"byteEnd": 81,
"byteStart": 55
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hamishcampbell.com/open-media-networking/"
}
],
"index": {
"byteEnd": 148,
"byteStart": 130
}
}
],
"plaintext": "IMHO, the best way to do that is to use tools from the Techno Anarchist Manifesto to build your own site(s) to participate in the Open Media Network. Then you should share it (them) via Real Simple Syndication (RSS), the Fediverse, and possibly a newsletter or podcast. This approach is similar to what some call the IndieWeb and its POSSE philosophy."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The second best strategy is to have accounts on the Fediverse and use the hell out of them. And do the same with a RSS feed reader."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "We publish TPF on Fridays so you can enjoy it over your weekend."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "There's good stuff in all of our categories, so please take the time to enjoy and bookmark the items most relevant to your goals. We hope you are inspired to create new ones."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Or you can jump straight to your favorite section."
}
},
{
"$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": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#cmss"
}
],
"index": {
"byteEnd": 16,
"byteStart": 0
}
}
],
"plaintext": "Sites/Blogs/CMSs"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#tools"
}
],
"index": {
"byteEnd": 28,
"byteStart": 0
}
}
],
"plaintext": "Techno Anarchist / OMN Tools"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#programming"
}
],
"index": {
"byteEnd": 15,
"byteStart": 0
}
}
],
"plaintext": "OMN Programming"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#activitypub"
}
],
"index": {
"byteEnd": 11,
"byteStart": 0
}
}
],
"plaintext": "ActivityPub"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#fediverse"
}
],
"index": {
"byteEnd": 9,
"byteStart": 0
}
}
],
"plaintext": "Fediverse"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#more"
}
],
"index": {
"byteEnd": 4,
"byteStart": 0
}
}
],
"plaintext": "More"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 121,
"byteStart": 0
}
}
],
"plaintext": "FYI, my opinions will be in bold. And may involve cursing. Because humans. Especially tech bros. And fascists. Fuck ´em."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Featured Item(s)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "Matt Duggan writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "I am, mostly, grateful for the bounty the internet has provided. But there is something wrong, deeply wrong, with what we built. The wrongness was there at the start. It was baked into the foundation by people who told themselves a story about freedom, and that story was a lie, and we are all, every one of us, paying their tab."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://matduggan.com/the-intolerable-hypocrisy-of-cyberlibertarianism/"
}
],
"index": {
"byteEnd": 49,
"byteStart": 0
}
}
],
"plaintext": "The Intolerable Hypocrisy of Cyber-libertarianism"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 118,
"byteStart": 0
}
}
],
"plaintext": "If you want to understand why 60 and up slightly anarchic punks like me feel, think, and act the way we do, read this."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 16,
"byteStart": 0
}
}
],
"plaintext": "Eirene Evripidou writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "A poem on your own site can sit quietly for years and still feel alive. The same poem posted to a social platform is usually swallowed in hours, buried under trends, adverts, and the anxious theatre of relevance."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "That is the real tension in open web vs social media. It is not only about where we publish. It is about who sets the conditions for attention, memory, authorship, and voice."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "For artists, writers, and independent thinkers, this distinction matters more than the usual platform debates admit."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://rosedreams.net/blog/2026/05/open-web-vs-social-media/"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"plaintext": "Open Web vs Social Media"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 86,
"byteStart": 0
}
}
],
"plaintext": "We also published an article this week. It’s in the Fediverse section under Bonfire."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "CMSs"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Josh Brody says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://josh.mn/posts/we-made-this-hard/"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "We made this hard: over-engineering the web"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 68,
"byteStart": 0
}
}
],
"plaintext": "A beautiful explanation of KISS. And as a 62 year old, I can relate."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Silex announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://fosstodon.org/@silex/116527892375216789"
}
],
"index": {
"byteEnd": 38,
"byteStart": 0
}
}
],
"plaintext": "Silex is now officially an ow2 project"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 31,
"byteStart": 0
}
}
],
"plaintext": "This may be worth checking out."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Pure Blog is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://pureblog.org/upgrading-to-v300-and-moving-to-codeberg"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "Upgrading to v3.0.0 and Moving to Codeberg"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 4,
"byteStart": 0
}
}
],
"plaintext": "Bon."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Grizzly Gazette shows us:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://grizzlygazette.bearblog.dev/how-to-make-your-blog-more-accessible-and-why-you-should-care/"
}
],
"index": {
"byteEnd": 62,
"byteStart": 0
}
}
],
"plaintext": "How to make your blog more accessible, and why you should care"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "pckt is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://devlog.pckt.blog/settling-in-and-looking-ahead-fq22hyp/0/2977"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "Settling in, and looking ahead"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Pica announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://pika.pika.page/posts/password-protected-posts-and-pages"
}
],
"index": {
"byteEnd": 34,
"byteStart": 0
}
}
],
"plaintext": "Password-protected Posts and Pages"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Musa Al-hassy explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://alhassy.com/AlBasmala"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "Blogging with Emacs & Org-mode"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Simon Reep announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://post.lurk.org/@freebliss/116544272272504035"
}
],
"index": {
"byteEnd": 76,
"byteStart": 0
}
}
],
"plaintext": "I wrapped up the initial, biggest part of the docs overhaul for Faircamp 2.0"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Terence Eden shows us how to:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://shkspr.mobi/blog/2026/05/find-blog-posts-with-missing-featured-images-and-missing-alt-text-without-a-plugin/"
}
],
"index": {
"byteEnd": 96,
"byteStart": 0
}
}
],
"plaintext": "Find WordPress blog posts with missing featured images - and missing alt text - without a plugin"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 7,
"byteStart": 0
}
}
],
"plaintext": "Useful."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Bear"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Leaflet"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "ClassicPress"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Backdrop CMS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Ghost"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Ghost announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://ghost.org/changelog/theme-editor/"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "Easy theme editing"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 56,
"byteStart": 0
}
}
],
"plaintext": "Great but unfortunately, this may only be for Pro plans."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Magic Pages announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.magicpages.co/help/features/ai-crawler-controls-on-magic-pages/"
}
],
"index": {
"byteEnd": 34,
"byteStart": 0
}
}
],
"plaintext": "AI Crawler Controls on Magic Pages"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 10,
"byteStart": 0
}
}
],
"plaintext": "Same here."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Grav CMS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Micro.blog"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Micro.blog announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://news.micro.blog/2026/05/11/microblog-for-mac-is-out.html"
}
],
"index": {
"byteEnd": 29,
"byteStart": 0
}
}
],
"plaintext": "Micro.blog 3.9 for Mac is out"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.manton.org/2026/05/13/retiring-microone.html"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "Retiring Micro.one"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#top"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Back to top 👆🏼"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Tools"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Ben Werdmuller states:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://werd.io/ai-may-be-the-new-gatekeepers-but-human-connection-is-more-needed-than-ever/"
}
],
"index": {
"byteEnd": 76,
"byteStart": 0
}
}
],
"plaintext": "AI may be the new gatekeepers, but human connection is more needed than ever"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 41,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
},
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/resources-and-tools/"
}
],
"index": {
"byteEnd": 51,
"byteStart": 41
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 81,
"byteStart": 51
}
}
],
"plaintext": "Yep. But, don't get discouraged. We have more tools to fight back with than ever."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Wladimir Wofty examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://social.edu.nl/@wlaatje/116549331664655884"
}
],
"index": {
"byteEnd": 88,
"byteStart": 0
}
}
],
"plaintext": "Non-paper by the Netherlands: an integrated approach for the EU tech sovereignty package"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "LibreOffice announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.documentfoundation.org/blog/2026/05/09/projects-selected-for-libreoffice-in-the-google-summer-of-code-2026/"
}
],
"index": {
"byteEnd": 67,
"byteStart": 0
}
}
],
"plaintext": "Projects selected for LibreOffice in the Google Summer of Code 2026"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Chat"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Signal announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://aboutsignal.com/news/signal-adds-extra-confirmations-and-education-to-help-prevent-phishing/"
}
],
"index": {
"byteEnd": 70,
"byteStart": 0
}
}
],
"plaintext": "Signal adds extra confirmations and education to help prevent phishing"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Browsers"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "LibreWolf announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://chaos.social/@librewolf/116540720677032789"
}
],
"index": {
"byteEnd": 37,
"byteStart": 0
}
}
],
"plaintext": "LibreWolf v150.0.2-1 is now available"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Search"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "TugaTech announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://tugatech.com.pt/t82936-xprivo-4-0-lanca-indice-de-pesquisa-europeu-totalmente-independente"
}
],
"index": {
"byteEnd": 69,
"byteStart": 0
}
}
],
"plaintext": "xPrivo 4.0 lança índice de pesquisa europeu totalmente independente"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Kagi shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.kagi.com/tips/academia"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "Tips to get precise, more relevant results for academic work"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Internet Exchange looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://internet.exchangepoint.tech/search-after-google/"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "Search After Google"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Cloud"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "It's FOSS shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://itsfoss.com/moving-from-onedrive-to-ente-photos/"
}
],
"index": {
"byteEnd": 70,
"byteStart": 0
}
}
],
"plaintext": "I Moved My Photos from OneDrive to Ente Photos, and I'm Not Going Back"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Nextcloud reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://nextcloud.com/blog/swiss-independence-on-american-terms-enterprise-day-in-bern-show-swiss-exploring-sovereignty/"
}
],
"index": {
"byteEnd": 110,
"byteStart": 0
}
}
],
"plaintext": "Swiss independence on American terms? Nextcloud Enterprise Day in Bern shows how the Swiss explore sovereignty"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Writing"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Joplin shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://joplinapp.org/news/20260505-release-3-6/"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"plaintext": "What's new in Joplin 3.6"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 75,
"byteStart": 0
}
}
],
"plaintext": "The improved markdown editor significantly improves the writing experience."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Creative"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Kdenlive announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://floss.social/@kdenlive/116573084678165935"
}
],
"index": {
"byteEnd": 23,
"byteStart": 0
}
}
],
"plaintext": "Kdenlive 26.04.1 is out"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Linux/Open Android"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "9to5Linux reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://9to5linux.com/tuxedo-bm-15-is-an-upgradable-business-linux-laptop-with-smartcard-and-4g-lte"
}
],
"index": {
"byteEnd": 77,
"byteStart": 0
}
}
],
"plaintext": "TUXEDO BM 15 Is an Upgradable Business Linux Laptop with Smartcard and 4G LTE"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://9to5linux.com/kde-receives-over-e1m-from-sovereign-tech-fund-for-software-development"
}
],
"index": {
"byteEnd": 73,
"byteStart": 0
}
}
],
"plaintext": "KDE Receives Over €1M from Sovereign Tech Fund for Software Development"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "This may have driven it to some degree:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://eupolicy.social/@eu_os/116569325461521418"
}
],
"index": {
"byteEnd": 98,
"byteStart": 0
}
}
],
"plaintext": "EU OS proposes to equip public sector computers with KDE and distribute software also via Flatpak."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "PostmarketOS has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://postmarketos.org/blog/2026/05/10/pmOS-update-2026-04/"
}
],
"index": {
"byteEnd": 40,
"byteStart": 0
}
}
],
"plaintext": "postmarketOS in 2026-04: new boot splash"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://postmarketos.org/blog/2026/05/08/q6voice-project/"
}
],
"index": {
"byteEnd": 45,
"byteStart": 0
}
}
],
"plaintext": "New financed postmarketOS project: q6voice(d)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://postmarketos.org/edge/2026/05/14/pinephone-dtmf-broken/"
}
],
"index": {
"byteEnd": 63,
"byteStart": 0
}
}
],
"plaintext": "DTMF tones are broken on the PinePhone with latest ModemManager"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Larvitz Blog explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.hofstede.it/freebsd-resource-monitoring-accounting-and-troubleshooting/"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "FreeBSD Resource Monitoring, Accounting, and Troubleshooting"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Juhani Lehtimäki notes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://snapp.social/@lehtimaeki/116555495297283455"
}
],
"index": {
"byteEnd": 72,
"byteStart": 0
}
}
],
"plaintext": "The upcoming F-Droid 2.0 (in alpha release) UI is modern and easy-to-use"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "F-Droid shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://f-droid.org/en/2026/05/08/twif.html"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "This Week in F-Droid"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 37,
"byteStart": 0
}
}
],
"plaintext": "Please check out Snowflake Volunteer."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Heise reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.heise.de/en/news/Google-s-new-reCAPTCHA-Potential-hurdle-for-Google-free-Android-variants-11288619.html"
}
],
"index": {
"byteEnd": 73,
"byteStart": 0
}
}
],
"plaintext": "Google's new reCAPTCHA: Potential hurdle for Google-free Android variants"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Golem has more:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.golem.de/news/android-neue-recaptcha-abfrage-fuer-google-freie-smartphones-problematisch-2605-208499.html"
}
],
"index": {
"byteEnd": 66,
"byteStart": 0
}
}
],
"plaintext": "Neue Recaptcha-Abfrage für Google-freie Smartphones problematisch"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 58,
"byteStart": 0
}
}
],
"plaintext": "Just more of Google's c^ntness in destroying the internet."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Hosting / Serving"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "MakefileFeld says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.feld.me/posts/2026/05/my-mail-hosting/"
}
],
"index": {
"byteEnd": 36,
"byteStart": 0
}
}
],
"plaintext": "My Mail Hosting Has Come Full Circle"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Probably Odyssey shows us how to:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.probableodyssey.blog/tech/secure-home-server-access-with-caddy-tailscale-and-cloudflare/"
}
],
"index": {
"byteEnd": 63,
"byteStart": 0
}
}
],
"plaintext": "Secure Home Server Access with Caddy, Tailscale, and Cloudflare"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Local First"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Prototype Fund examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.prototypefund.de/en/blog/the-road-to-a-local-first-app-ecosystem"
}
],
"index": {
"byteEnd": 39,
"byteStart": 0
}
}
],
"plaintext": "The Road to a Local-First App Ecosystem"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 29,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "This week's featured OMN tool"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 4,
"plaintext": "Bludit"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bludit lets you create your own website in seconds. It's a simple, fast, secure, flat-file CMS."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.bludit.com/"
}
],
"index": {
"byteEnd": 6,
"byteStart": 0
}
}
],
"plaintext": "Bludit"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#top"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Back to top 👆🏼"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Programming"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "LibreOffice looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.documentfoundation.org/blog/2026/05/13/digital-document-a-piece-of-software/"
}
],
"index": {
"byteEnd": 83,
"byteStart": 0
}
}
],
"plaintext": "Why a digital document is a piece of software, and what that means for your freedom"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 14,
"byteStart": 0
}
}
],
"plaintext": "Great article."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Anna Filina says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://phpc.social/@afilina/116550776442736252"
}
],
"index": {
"byteEnd": 83,
"byteStart": 0
}
}
],
"plaintext": "You heard of enshittification. I propose its spiritual successor: ensloppification."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And Mat Marquis says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://wil.to/posts/googles-prompt-api/"
}
],
"index": {
"byteEnd": 93,
"byteStart": 0
}
}
],
"plaintext": "No web standard should require you to agree to an advertising company’s “terms of use.”"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 28,
"byteStart": 0
}
}
],
"plaintext": "See my Google comment above."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Lucas Cantor has an Eleventy ( now Build Awesome) case study:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://lucascantor.com/blog/rebuilding-lucascantor-com/"
}
],
"index": {
"byteEnd": 26,
"byteStart": 0
}
}
],
"plaintext": "Rebuilding lucascantor.com"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "Great stuff, Lucas."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Kevin Boone shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://kevinboone.me/in_praise_of_http.html"
}
],
"index": {
"byteEnd": 17,
"byteStart": 0
}
}
],
"plaintext": "In praise of HTTP"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Git"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Tao Bojlén explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://btao.org/posts/2026-05-09-the-forge-we-deserve/"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "The forge we deserve"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Forgejo announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://floss.social/@forgejo/116561085128189530"
}
],
"index": {
"byteEnd": 45,
"byteStart": 0
}
}
],
"plaintext": "Forgejo 15.0.2 and 11.0.14 were just released"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Not to be outdone by GitHub's fiasco, GitLab announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://about.gitlab.com/blog/gitlab-act-2/"
}
],
"index": {
"byteEnd": 12,
"byteStart": 0
}
}
],
"plaintext": "GitLab Act 2"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 38,
"byteStart": 0
}
}
],
"plaintext": "GitLab is officially becoming ShitLab."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Markdown"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Rob Hoeijmakers examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hoeijmakers.net/markdown-the-wd-40-of-digital-information/"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "Markdown, the WD-40 of Digital Information"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 16,
"byteStart": 0
}
}
],
"plaintext": "An apt metaphor."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "HTML"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Frank Taylor says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.frankmtaylor.com/2026/05/13/you-dont-know-html-lists/"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "You don’t know HTML Lists"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 16,
"byteStart": 0
}
}
],
"plaintext": "One to bookmark."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Olivier Forget announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://olivierforget.net/blog/2026/hello-backflip-html/"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "Hello BackflipHTML"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 85,
"byteStart": 0
}
}
],
"plaintext": "Interesting side project. But, I think a Hotwire derivative is what he's looking for."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Jim Nielsen says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.jim-nielsen.com/2026/out-with-js-in-with-html/"
}
],
"index": {
"byteEnd": 33,
"byteStart": 0
}
}
],
"plaintext": "Out With the JS, In With the HTML"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 46,
"byteStart": 0
}
}
],
"plaintext": "Let's all out with the JS as much as possible."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "CSS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Speaking of, LLBBL looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://llbbl.blog/2026/05/12/three-css-features-that-finally.html"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "Three CSS Features That Finally Let Us Delete the JavaScript"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "vtbag explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://vtbag.dev/basics/pseudos/"
}
],
"index": {
"byteEnd": 51,
"byteStart": 0
}
}
],
"plaintext": "View Transition Names and Generated Pseudo-Elements"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "CSS Wizardry examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://csswizardry.com/2026/05/better-browser-caching-with-no-vary-search/"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "Better Browser Caching with No-Vary-Search"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Ahmad Shadeed looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://ishadeed.com/article/range-syntax/"
}
],
"index": {
"byteEnd": 26,
"byteStart": 0
}
}
],
"plaintext": "Media Queries Range Syntax"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Frontend Masters demonstrates:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://frontendmasters.com/blog/repeating-square-dots-backgrounds-in-css/"
}
],
"index": {
"byteEnd": 40,
"byteStart": 0
}
}
],
"plaintext": "Repeating Square Dots Backgrounds in CSS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "It's overkill, but still an interesting effect."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Web Components"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Xoron continues a series:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://positive-intentions.com/blog/async-state-management"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "Dim: Async State Management"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "AI"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Where's your Ed at? explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.wheresyoured.at/premium-ais-circular-psychosis/"
}
],
"index": {
"byteEnd": 32,
"byteStart": 0
}
}
],
"plaintext": "Premium: AI's Circular Psychosis"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 103,
"byteStart": 0
}
}
],
"plaintext": "By the gods, this horseshit can’t collapse soon enough. Thunor my Lord, strike them dead! 🌩️💀"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The Register reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.theregister.com/security/2026/05/11/anthropics-bug-hunting-mythos-was-greatest-marketing-stunt-ever-says-curl-creator/5238111"
}
],
"index": {
"byteEnd": 85,
"byteStart": 0
}
}
],
"plaintext": "Anthropic’s bug-hunting Mythos was greatest marketing stunt ever, says cURL creator"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 37,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "This week's featured programming tool"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 4,
"plaintext": "Zeroform"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Zeroform is a static and dynamic online form generator."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://simonrepp.com/zeroform/"
}
],
"index": {
"byteEnd": 8,
"byteStart": 0
}
}
],
"plaintext": "Zeroform"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#top"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Back to top 👆🏼"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "ActivityPub"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Rasterweb explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://rasterweb.net/raster/2026/05/01/auto-bookmark-posting/"
}
],
"index": {
"byteEnd": 21,
"byteStart": 0
}
}
],
"plaintext": "Auto-Bookmark Posting"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Fedify announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hollo.social/@fedify/019e123c-57eb-781d-aa51-ca7dfc190ce7"
}
],
"index": {
"byteEnd": 66,
"byteStart": 0
}
}
],
"plaintext": "Fedify security updates: 1.9.10, 1.10.9, 2.0.16, 2.1.12, and 2.2.1"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hollo.social/@botkit/019e17ba-ec13-7b5e-8026-eb6107225708"
}
],
"index": {
"byteEnd": 40,
"byteStart": 0
}
}
],
"plaintext": "BotKit security updates: 0.3.2 and 0.4.1"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
],
"index": {
"byteEnd": 46,
"byteStart": 0
}
}
],
"level": 3,
"plaintext": "This week's featured ActivityPub featured tool"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 4,
"plaintext": "Emissary"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Emissary is a Fedi server built for end users, developers, and admins."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://emissary.dev/"
}
],
"index": {
"byteEnd": 8,
"byteStart": 0
}
}
],
"plaintext": "Emissary"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#top"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Back to top 👆🏼"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Fediverse"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Connected Places has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://connectedplaces.online/reports/fr162-eu-regulation-wont-save-open-social-networks/"
}
],
"index": {
"byteEnd": 58,
"byteStart": 0
}
}
],
"plaintext": "FR 162 – EU Regulation Won’t Save Open Social Networks"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 13,
"byteStart": 0
}
}
],
"plaintext": "Well fuck. :("
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Jaz-Michael King continues a series:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://jaz.co.uk/2026/05/12/there-are-a-million-fediverses-some-of-them-are-louder-than-others/"
}
],
"index": {
"byteEnd": 68,
"byteStart": 0
}
}
],
"plaintext": "There Are a Million Fediverses. Some of Them Are Louder than Others."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 32,
"byteStart": 0
}
}
],
"plaintext": "There are some good points here."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Forge CMS announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://forge-cms.dev/devlog/forge-social-scheduling"
}
],
"index": {
"byteEnd": 57,
"byteStart": 0
}
}
],
"plaintext": "Forge-social: scheduling social posts from your Forge CMS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "FediForum announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mastodon.social/@fediforum/116540257215161107"
}
],
"index": {
"byteEnd": 71,
"byteStart": 0
}
}
],
"plaintext": "The Fediverse now has its own link-in-bio, with new project FediProfile"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Elefeed announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mastodon.social/@elefeed/116574703271335341"
}
],
"index": {
"byteEnd": 86,
"byteStart": 0
}
}
],
"plaintext": "Elefeed was created to experiment with new ways to manage and view content on Mastodon"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Fedilab Apps has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://toot.fedilab.app/@apps/116562487875307972"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "Fedilab 3.40.0 is available"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://toot.fedilab.app/@apps/116546188818869831"
}
],
"index": {
"byteEnd": 68,
"byteStart": 0
}
}
],
"plaintext": "CastLab supports FCast because it is an open source casting protocol"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Holos announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mastodon.social/@HolosSocial/116568359194209896"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"plaintext": "Holos 1.5.6 is available"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "MMMX has recommendations:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mmmx.cloud/instead-of-instagram/"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Instead of Instagram"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Vernissage announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mastodon.social/@vernissage/116549467778103821"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "We released #Vernissage 1.36.0"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Steve Mookie Kong shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://weredreaming.com/mookie/p/1778552874.657431"
}
],
"index": {
"byteEnd": 51,
"byteStart": 0
}
}
],
"plaintext": "After three months and 1.6k posts later on snac ..."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Engadget reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.engadget.com/2171113/threads-users-are-pissed-they-cant-block-metas-new-ai-chatbot/"
}
],
"index": {
"byteEnd": 63,
"byteStart": 0
}
}
],
"plaintext": "Threads users are pissed they can't block Meta's new AI chatbot"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 80,
"byteStart": 0
}
}
],
"plaintext": "Inevitable enshittification for people shitty enough to use or federate with it."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Stefan Bohacek shows us:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://stefanbohacek.com/blog/how-to-make-a-website-in-5-minutes-almost-no-code-version/"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "How to make a website in 5 minutes: (Almost) No code version"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 40,
"byteStart": 0
}
}
],
"plaintext": "For the few non-developers reading this."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Bonfire"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "We published:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/its-time-to-savor-the-flavours-of-bonfire/"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "It's Time to Savor the Flavours of Bonfire"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "#top"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Back to top 👆🏼"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "More"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Arstechnica has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://arstechnica.com/science/2026/05/rip-social-media-what-comes-next-is-messy/"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "RIP social media. What comes next is messy."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Prosocial Design promotes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.prosocialdesign.org/library/quality-scores"
}
],
"index": {
"byteEnd": 61,
"byteStart": 0
}
}
],
"plaintext": "Quality Scores: Increase engagement with high quality content"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "Great idea, if you could actually implement it."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "A New Social (the BridyFed, Bounce peeps) has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.anew.social/bridging-on-a-budget/"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Bridging on a budget"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Webrings"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "scientiac::syntropy shares a generic:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://scientiac.space/syndications/posse-2026-05-08/"
}
],
"index": {
"byteEnd": 23,
"byteStart": 0
}
}
],
"plaintext": "Indieweb Webring Button"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 6,
"byteStart": 0
}
}
],
"plaintext": "Merci!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "RSS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Rob Fahrni explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://rob.crabapples.net/2026/05/09/making-rss-and-blogs-better.html"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "Making RSS and Blogs Better"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Mijndert Stuij examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mijndertstuij.nl/posts/introducing-rss-fulltext/"
}
],
"index": {
"byteEnd": 48,
"byteStart": 0
}
}
],
"plaintext": "Fixing headline-only RSS feeds with rss-fulltext"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "WaspDev advises:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://waspdev.com/articles/2026-05-11/avoid-using-cdata-in-rss"
}
],
"index": {
"byteEnd": 38,
"byteStart": 0
}
}
],
"plaintext": "Avoid using < ![CDATA[ ... ]] > in RSS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "FreshRSS announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://github.com/FreshRSS/FreshRSS/releases/tag/1.29.0"
}
],
"index": {
"byteEnd": 15,
"byteStart": 0
}
}
],
"plaintext": "FreshRSS 1.29.0"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And Terry Godier announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.terrygodier.com/2026/05/05/current-v-is-rolling-out.html"
}
],
"index": {
"byteEnd": 34,
"byteStart": 0
}
}
],
"plaintext": "Current v1.0.14 is rolling out now"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "XMPP"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Movim shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://piaille.fr/@movim/116545170790616032"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "Our latest updates"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Other Federated Social Media"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Hamish Campbell shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hamishcampbell.com/a-fluff-view-of-current-tech-we-need-to-compost/"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "A fluff view of current tech we need to compost"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 38,
"byteStart": 0
}
}
],
"plaintext": "More on the bullshit that is W Social."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The Internet Review says it's:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://theinternet.review/2026/05/10/another-bluesky-vibe-check/"
}
],
"index": {
"byteEnd": 72,
"byteStart": 0
}
}
],
"plaintext": "Time for Another Bluesky Vibe Check (and Happy 10th Birthday, Mastodon!)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Stefan Bohacek shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://stefanbohacek.online/@stefan/116574703552426391"
}
],
"index": {
"byteEnd": 80,
"byteStart": 0
}
}
],
"plaintext": "Latinsky and Medsky, brought to you by Blacksky's Acorn system, coming VERY soon"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Daniel's Leaflets asks:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://dholms.leaflet.pub/3mlegohgtps2k"
}
],
"index": {
"byteEnd": 46,
"byteStart": 0
}
}
],
"plaintext": "Permissioned Data Diary 5: What’s in a Name?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Charlotte Som has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://char.lt/blog/2026/05/cerulea-plox/"
}
],
"index": {
"byteEnd": 67,
"byteStart": 0
}
}
],
"plaintext": "Plox: lazy-trust verifiable, on-PDS bulk did:plc operation archival"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Democracy Tech"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The Waving Cat announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://thewavingcat.com/2026/05/new-publication-the-little-book-of-public-interest-technology/"
}
],
"index": {
"byteEnd": 62,
"byteStart": 0
}
}
],
"plaintext": "New publication: The Little Book of Public Interest Technology"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Bert Hubert reviews:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://berthub.eu/articles/posts/democratic-tech-alliance-may-2026/"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "The First Democratic Tech Alliance Assembly"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "eMail / Newsletters"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The Verge reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://web.archive.org/web/20260510140207/https://www.theverge.com/tech/927294/substack-tax-ghost-beehiiv"
}
],
"index": {
"byteEnd": 36,
"byteStart": 0
}
}
],
"plaintext": "Writers are fleeing the Substack Tax"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 84,
"byteStart": 0
}
}
],
"plaintext": "Note it's not the Nazi bar aspect, it's the fees. 😱 Fuck Substack. And its users."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Applied Cartography looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://jmduke.com/posts/llm-born.html"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "LLMs and Buttondown"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "CTAs"
}
},
{
"$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",
"plaintext": "That’s it for this week. Please share The Programmer's Fulcrum."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://flipboard.com/@mobileatom/the-fulcrum-coding-for-democracy-and-the-omn-5g0jmckdz"
}
],
"index": {
"byteEnd": 23,
"byteStart": 11
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://surf.social/feed/surf%2Fcustom%2F01kpd8cajhcyvp7dax422z7hfq"
}
],
"index": {
"byteEnd": 31,
"byteStart": 27
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://ghostverse.link/@thefulcrum@thefulcrum.dev"
}
],
"index": {
"byteEnd": 65,
"byteStart": 39
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bsky.app/profile/thefulcrum.eurosky.social"
}
],
"index": {
"byteEnd": 114,
"byteStart": 89
}
}
],
"plaintext": "Follow us on Flipboard or Surf or at @thefulcrum@thefulcrum.dev on the Fediverse or at thefulcrum.eurosky.social for daily coverage."
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/techno-anarchist-manifesto/"
}
],
"index": {
"byteEnd": 52,
"byteStart": 22
}
}
],
"plaintext": "Read, live, and share The Techno Anarchist Manifesto!"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "And please build something for a community!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": " "
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Blasts from the past"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://battalion.mobileatom.net/?page_id=251"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"plaintext": "Previous Battalion Posts"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://symfonystation.mobileatom.net/weekly-communiques"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "Previous Symfony Station Posts"
}
}
],
"id": "019e3207-ca71-7cca-8ef8-dbcaadc5b23e"
}
]
},
"description": "TPF is your weekly curation of the essential news in the Open Media Network and Fediverse development communities with a focus on devastating big tech via Techno Anarchism.",
"path": "/3mlyi6d2am22b",
"publishedAt": "2026-05-16T18:30:42.763Z",
"site": "at://did:plc:ztjsajckkmfscs3tshez4ath/site.standard.publication/3mi4k4i7dns2o",
"tags": [
"fediverse",
"WebDev",
"ATProto",
"ActivityPub"
],
"title": "The Programmer's Fulcrum: 15 May, 2026"
}