{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihgtyx75nybfkp5pm6hgyb2azu5lh5fckpwwwxa5yld3ochnamjx4",
"commit": {
"cid": "bafyreib2mmkaandxfayb2yb6y63qezka3fsy5fn6flkdze5xjmwhrmqhtm",
"rev": "3mnm53d637c2p"
},
"uri": "at://did:plc:ztjsajckkmfscs3tshez4ath/app.bsky.feed.post/3mnm53d2tes22",
"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/content/images/2026/04/TPF-Header-Image-2-1.jpg"
}
],
"index": {
"byteEnd": 44,
"byteStart": 33
}
}
],
"plaintext": "This post 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#italic"
}
],
"index": {
"byteEnd": 239,
"byteStart": 0
}
}
],
"plaintext": "The big news this week was obviously The European Commission's European Technological Sovereignty Package. So, there's much more on that below. It's ten years later than it should have occured, but it's a start. And starts can be directed."
}
},
{
"$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": 120,
"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": 20,
"byteStart": 0
}
}
],
"plaintext": "Violet Pixel writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Yes, the web has morphed our perception, but I disagree that, \"everything needs to generate money because everything is considered valuable.\" The web hasn't made everyone consider everything valuable, it's pushed people to monetize."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The pressure isn't to create valuable content, it's to create content that sells. Many things that sell have little or no value. Many things with immense value are things you can't put a price tag on (although some people will try)."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://violetpixel.com/blog/2026-05-29-worth-on-the-web/"
}
],
"index": {
"byteEnd": 16,
"byteStart": 0
}
}
],
"plaintext": "Worth on the Web"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 95,
"byteStart": 0
}
}
],
"plaintext": "So, join the Open Media Network and do your thing whatever it is. You can be sure it has worth!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "Lingua Celta writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "This essay is explicitly addressed to my fellow technologists: software developers, hobby coders, digital humanists, computer science theorists, and all the other members of this big family of people who do tech."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "I want to talk about our community, and why it’s important. I want to suggest that using LLMs to generate content to be included in technology projects, whether that’s code or text or images, or code reviews or proofreading, harms our shared community."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://linguacelta.com/blog/2026/05/LLMs.html"
}
],
"index": {
"byteEnd": 66,
"byteStart": 0
}
}
],
"plaintext": "The Community is the Achievement; the Achievement is the Community"
}
},
{
"$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
}
}
],
"plaintext": "This is similar to what we preach weekly."
}
},
{
"$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": "Speaking of communities, Ben Werdmuller writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The biggest exceptions (to journalistic decline) are local news startups, which are building trust, evolving business models for journalism, and building far more representative editorial rosters."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Most of all, they’re engaging with their local communities. Their constituents know them; that representation and those relationships are how trust is built. And their readers are more loyal because they know they can’t get the context and information they need from anywhere else."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://werd.io/the-community-first-software-era/"
}
],
"index": {
"byteEnd": 32,
"byteStart": 0
}
}
],
"plaintext": "The community-first software era"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 35,
"byteStart": 0
}
}
],
"plaintext": "Fantastic stuff from Ben as always."
}
},
{
"$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": "Amber Weinberg says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://amberweinberg.com/wordpress-7-0-is-out-lets-shut-off-that-pesky-ai/"
}
],
"index": {
"byteEnd": 53,
"byteStart": 0
}
}
],
"plaintext": "WordPress 7.0 is out, Let’s shut off that pesky AI!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 110,
"byteStart": 0
}
}
],
"plaintext": "Done. If WordPress had not gone all in on the Fediverse, I literally would have nothing to do with it anymore."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dries Buyaert explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://dri.es/contentful-and-the-limits-of-buy-european"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "Contentful and the limits of \"Buy European\""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 106,
"byteStart": 0
}
}
],
"plaintext": "AKA use open source or eventually get fucked by corporate software. And Germany should block the sale BTW."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Mastro lists:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mastrojs.github.io/blog/2026-05-26-component-scoped-css-without-build-step/"
}
],
"index": {
"byteEnd": 77,
"byteStart": 0
}
}
],
"plaintext": "Four ways to do component-scoped CSS (in Mastro) without a complex build step"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 48,
"byteStart": 0
}
}
],
"plaintext": "This looks to be a fairly KISS option for a CMS."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Simon Repp shares a:"
}
},
{
"$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/116687069790079199"
}
],
"index": {
"byteEnd": 62,
"byteStart": 0
}
}
],
"plaintext": "Quick recap of the last week or so in Faircamp 2.0 development"
}
},
{
"$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.text",
"plaintext": "Leaflet announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bsky.app/profile/leaflet.pub/post/3mnfzt7iffk2j"
}
],
"index": {
"byteEnd": 43,
"byteStart": 0
}
}
],
"plaintext": "New, for folks doing newsletters on Leaflet"
}
},
{
"$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 only be for Pro plans."
}
},
{
"$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 is:"
}
},
{
"$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/expanding-your-social-presence/"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "Expanding your social presence"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 144,
"byteStart": 0
}
}
],
"plaintext": "We migrated our Symfony Station Mastodon account into the one here with the new capabilities. So, welcome Symfonistas, Drupalers, and PHP peeps."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Synaps Media announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.synapsmedia.com/changelog/a-new-chapter-for-synaps-media/"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "A New Chapter for Synaps Media"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And 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/roadmap/llms-txt-for-ai-search-in-the-customer-portal/"
}
],
"index": {
"byteEnd": 45,
"byteStart": 0
}
}
],
"plaintext": "llms.txt for AI Search in the Customer Portal"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 359,
"byteStart": 0
}
}
],
"plaintext": "IMHO Jannis is slightly amoral (in a nice way) on this topic, so we recommend enabling blocking and disabling crawling. That way you may have a chance to be reincarnated as something other than a cockroach. And BTW we are a client of his company and will remain so (for now) because at least you get to choose (kudos). And sadly, that beats most alternatives."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "They also explain:"
}
},
{
"$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/blog/ghost-ghost-pro-magic-pages-whats-the-difference/"
}
],
"index": {
"byteEnd": 57,
"byteStart": 0
}
}
],
"plaintext": "Ghost, Ghost(Pro), Magic Pages − what's the difference?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Build Awesome"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Blades examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://11ty.blades.ninja/starters/"
}
],
"index": {
"byteEnd": 21,
"byteStart": 0
}
}
],
"plaintext": "Minimal 11ty starters"
}
},
{
"$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 has:"
}
},
{
"$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/30/standardsite-in-microblog.html"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "Standard.site in Micro.blog"
}
},
{
"$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/30/more-notes-on-standardsite.html"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "More notes on Standard.site"
}
},
{
"$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": "A Poor Player looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.apoorplayer.blog/2026/05/28/digital-feudalism-and-the-rise.html"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "Digital Feudalism and the Rise of Digital Serfs"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 49,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
},
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.thefulcrum.dev/techno-anarchist-manifesto/"
}
],
"index": {
"byteEnd": 79,
"byteStart": 49
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 80,
"byteStart": 79
}
}
],
"plaintext": "If you don't want to be a serf, explore and live the Techno Anarchist Manifesto."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Mullvad asks a discouraging question:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mullvad.net/en/blog/2026/6/1/age-verification-for-social-media-the-beginning-of-the-end-for-a-free-internet"
}
],
"index": {
"byteEnd": 83,
"byteStart": 0
}
}
],
"plaintext": "Age verification for social media – the beginning of the end for a free internet?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The Internet Exchange explains:"
}
},
{
"$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/stifling-speech-through-dns-infrastructure/"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "Stifling Speech Through DNS Infrastructure"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "In big news, the European Commission has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://commission.europa.eu/news-and-media/news/commission-boosts-open-and-interoperable-digital-ecosystems-public-administrations-2026-06-03_en"
}
],
"index": {
"byteEnd": 86,
"byteStart": 0
}
}
],
"plaintext": "Commission boosts open and interoperable digital ecosystems for public administrations"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 71,
"byteStart": 0
}
}
],
"plaintext": "Great. Now back it up with adequate funding and large-scale purchasing."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The European Digital Rights Initiative responds:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://edri.org/our-work/europes-digital-sovereignty-starts-with-open-source/"
}
],
"index": {
"byteEnd": 54,
"byteStart": 0
}
}
],
"plaintext": "Europe’s digital sovereignty starts with open source"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Free Software Foundation Europe has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://fsfe.org/news/2026/news-20260603-01.en.html"
}
],
"index": {
"byteEnd": 75,
"byteStart": 0
}
}
],
"plaintext": "EU Tech Sovereignty: A milestone for Public Code? Now implementation is key"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://fsfe.org/news/2026/news-20260528-01.html"
}
],
"index": {
"byteEnd": 55,
"byteStart": 0
}
}
],
"plaintext": "Restack: a new European consortium for a digital Europe"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dries Buyaert shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://dri.es/europe-turns-to-open-source-for-independence"
}
],
"index": {
"byteEnd": 44,
"byteStart": 0
}
}
],
"plaintext": "Europe turns to Open Source for independence"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Hamish Campbell has his usual spot on take:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hamishcampbell.com/the-eus-tech-sovereignty-plan/"
}
],
"index": {
"byteEnd": 28,
"byteStart": 0
}
}
],
"plaintext": "The EU tech sovereignty plan"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And finally Jos Poortvliet gets into the ambivalent fine details:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": ""
}
],
"index": {
"byteEnd": 55,
"byteStart": 0
}
}
],
"plaintext": "The Tech Sovereignty Package encourages and disappoints"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 92,
"byteStart": 0
}
}
],
"plaintext": "If you are an European Union citizen, start pressing your government to walk, not just talk."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Chat / Team 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-improves-notification-reliability-for-devices-without-google-play-services/"
}
],
"index": {
"byteEnd": 81,
"byteStart": 0
}
}
],
"plaintext": "Signal improves notification reliability for devices without Google Play services"
}
},
{
"$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-will-soon-automatically-delete-call-events-in-disappearing-chats/"
}
],
"index": {
"byteEnd": 71,
"byteStart": 0
}
}
],
"plaintext": "Signal will soon automatically delete call events in disappearing chats"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Tuta lists:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://tuta.com/blog/discord-alternatives"
}
],
"index": {
"byteEnd": 41,
"byteStart": 0
}
}
],
"plaintext": "Best private Discord alternatives in 2026"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Movim announces:"
}
},
{
"$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/116698592107155545"
}
],
"index": {
"byteEnd": 33,
"byteStart": 0
}
}
],
"plaintext": "The last few days have been wild!"
}
},
{
"$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": "Servo has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://servo.org/blog/2026/05/31/april-in-servo/"
}
],
"index": {
"byteEnd": 71,
"byteStart": 0
}
}
],
"plaintext": "April in Servo: new Android UI, focus, forms, security fixes, and more!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Waterfox announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.waterfox.com/releases/6.6.14/"
}
],
"index": {
"byteEnd": 53,
"byteStart": 0
}
}
],
"plaintext": "6.6.14 - Web compatibility and ad blocker refinements"
}
},
{
"$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": "Alternative To reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://alternativeto.net/news/2026/6/duckduckgo-s-no-ai-search-tool-reports-huge-traffic-growth-as-google-pushes-ai-results/"
}
],
"index": {
"byteEnd": 88,
"byteStart": 0
}
}
],
"plaintext": "DuckDuckGo’s No AI search tool reports huge traffic growth as Google pushes AI results"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Erin shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://kvuzet.net/blog/2026-05-28-tip-use-duckduckgo-no-ai/"
}
],
"index": {
"byteEnd": 63,
"byteStart": 0
}
}
],
"plaintext": "Tip: Use DuckDuckGo NoAI as your browsers default search engine"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 54,
"byteStart": 0
}
}
],
"plaintext": "Or better yet pay for Uruky. Or use Mojeek or SearXNG."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Euractiv reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.euractiv.com/news/european-parliament-to-ditch-google-for-european-alternative/"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "European Parliament to ditch Google for European alternative"
}
},
{
"$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": "Super."
}
},
{
"$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": "Jorijn Schrijvershof writes:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://jorijn.com/en/blog/nextcloud-not-google-workspace-clone/"
}
],
"index": {
"byteEnd": 74,
"byteStart": 0
}
}
],
"plaintext": "Nextcloud is not a Google Workspace clone. That is the point and the trap."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 93,
"byteStart": 0
}
}
],
"plaintext": "This article is aimed at team users. And I am not sure why it's a trap. Google is the prison."
}
},
{
"$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": "LibreOffice shares:"
}
},
{
"$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/06/05/tdf-releases-libreoffice-26-2-4/"
}
],
"index": {
"byteEnd": 51,
"byteStart": 0
}
}
],
"plaintext": "The Document Foundation Releases LibreOffice 26.2.4"
}
},
{
"$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/06/02/a-standard-in-name-only/"
}
],
"index": {
"byteEnd": 82,
"byteStart": 0
}
}
],
"plaintext": "A Standard in Name Only: What OOXML Transitional Tells Us About Format Sovereignty"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Tuta announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://tuta.com/blog/tuta-joins-euro-office"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "Tuta joins Euro-Office - one week before launch"
}
},
{
"$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": "Heisse Online 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/background/Linux-App-Summit-2026-Meeting-of-the-Linux-Desktop-Avant-garde-11316647.html"
}
],
"index": {
"byteEnd": 63,
"byteStart": 0
}
}
],
"plaintext": "Linux App Summit 2026: Meeting of the Linux Desktop Avant-garde"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 23,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
},
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://docs.projectbluefin.io/introduction/"
}
],
"index": {
"byteEnd": 30,
"byteStart": 23
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 97,
"byteStart": 30
}
}
],
"plaintext": "I wasn't familiar with Bluefin, but anything that makes Linux easier to install and use is great."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Gaming On Linux reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.gamingonlinux.com/2026/05/flathub-moves-to-ban-nearly-all-apps-and-submissions-made-with-generative-ai/"
}
],
"index": {
"byteEnd": 76,
"byteStart": 0
}
}
],
"plaintext": "Flathub moves to ban nearly all apps and submissions made with generative AI"
}
},
{
"$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": "Fantastic."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "KDE and Plasma Design asks:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://anditosan.wordpress.com/2026/05/31/what-even-is-ocean/"
}
],
"index": {
"byteEnd": 21,
"byteStart": 0
}
}
],
"plaintext": "What Even is Ocean???"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Postmarket OS announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://postmarketos.org/devel/2026/06/01/pmbootstrap-strict-builds/"
}
],
"index": {
"byteEnd": 46,
"byteStart": 0
}
}
],
"plaintext": "pmbootstrap: strict builds are now the default"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "MNT has an update:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://mntre.com/media/reform_md/2026-05-31-may-update.html"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "MNT May 2026 Update"
}
},
{
"$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": "Elena Rossini 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://blog.elenarossini.com/a-newbies-guide-to-self-hosting-with-yunohost-part-5-upgrades-maintenance/"
}
],
"index": {
"byteEnd": 78,
"byteStart": 0
}
}
],
"plaintext": "A newbie's guide to self-hosting with YunoHost. Part 5: Upgrades & Maintenance"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Jeremy Cherfas explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.jeremycherfas.net/blog/a-server-for-a-purpose"
}
],
"index": {
"byteEnd": 22,
"byteStart": 0
}
}
],
"plaintext": "A Server for a Purpose"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Zils Norvilis examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://norvilis.com/the-developer-s-way-to-track-traffic-self-hosting-ackee-or-plausible/"
}
],
"index": {
"byteEnd": 71,
"byteStart": 0
}
}
],
"plaintext": "The Developer’s Way to Track Traffic: Self-Hosting Ackee or Plausible"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 49,
"byteStart": 0
}
}
],
"plaintext": "Especially useful if you have a Rails background."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Siddhant Goel demonstrates:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://sgoel.dev/posts/self-hosting-static-sites-on-a-caddy-powered-vps/"
}
],
"index": {
"byteEnd": 48,
"byteStart": 0
}
}
],
"plaintext": "Self-hosting static sites on a Caddy-powered VPS"
}
},
{
"$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": "Decidim"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Decidim is a free/libre platform for opensource citizen participation."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://decidim.org/"
}
],
"index": {
"byteEnd": 7,
"byteStart": 0
}
}
],
"plaintext": "Decidim"
}
},
{
"$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": "Kevin Wagner asks:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://kpwags.com/posts/2026/is-ai-causing-a-repeat-of-frontends-lost-decade/"
}
],
"index": {
"byteEnd": 66,
"byteStart": 0
}
}
],
"plaintext": "Extended Note: Is AI causing a repeat of Frontend’s Lost Decade?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 135,
"byteStart": 0
}
}
],
"plaintext": "React was the worst thing to ever happen to web development. Until, AI came along. Both are anti-labor, de-skilling, fascist artifacts."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "On a similar note, DutchCelt opines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://dutchcelt.nl/posts/front-end-doesn-t-exist/"
}
],
"index": {
"byteEnd": 23,
"byteStart": 0
}
}
],
"plaintext": "Front-end doesn't exist"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Business Insider reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.businessinsider.com/zig-programming-language-ai-rules-2026-5"
}
],
"index": {
"byteEnd": 86,
"byteStart": 0
}
}
],
"plaintext": "Zig president says AI coding contributions are 'invariably garbage,' so he banned them"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Daring Fireball asks:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://daringfireball.net/2026/05/what_is_a_dickover"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "What Is a Dickover?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Tim Bray looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.tbray.org/ongoing/When/202x/2026/06/01/XML-and-JSON-in-2026"
}
],
"index": {
"byteEnd": 20,
"byteStart": 0
}
}
],
"plaintext": "XML and JSON in 2026"
}
},
{
"$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": "Henderson Reed Hummel demonstrates:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://henderson.lol/posts/202605-blocking-github-trending.html"
}
],
"index": {
"byteEnd": 59,
"byteStart": 0
}
}
],
"plaintext": "Blocking “recommended for you” items on the GitHub feed"
}
},
{
"$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": "Better yet, don't use ShitHub period."
}
},
{
"$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": "Olivier Forget shares:"
}
},
{
"$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/dom-patching-backflip-template/"
}
],
"index": {
"byteEnd": 41,
"byteStart": 0
}
}
],
"plaintext": "DOM Patching from a BackflipHTML Template"
}
},
{
"$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": "Frontend Masters has:"
}
},
{
"$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/the-fundamentals-and-dev-experience-of-css-function/"
}
],
"index": {
"byteEnd": 52,
"byteStart": 0
}
}
],
"plaintext": "The Fundamentals and Dev Experience of CSS @function"
}
},
{
"$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/in-n-out-animations-dialogs-part-1-3/"
}
],
"index": {
"byteEnd": 39,
"byteStart": 0
}
}
],
"plaintext": "In-N-Out Animations: Dialogs (Part 1/3)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "A neat but unnecessary effect."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Sam Hermes explains:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://samhermes.com/posts/why-i-do-not-like-utility-class-css-frameworks/"
}
],
"index": {
"byteEnd": 47,
"byteStart": 0
}
}
],
"plaintext": "Why I don’t like utility class CSS frameworks"
}
},
{
"$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": "Failwind is the third worst thing to ever happen to web development."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "That HTML Blog explores:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://thathtml.blog/2026/06/building-a-generated-color-scheme/"
}
],
"index": {
"byteEnd": 50,
"byteStart": 0
}
}
],
"plaintext": "Designing an Autogenerated Live Color Scale in CSS"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "JavaScript"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Zil Norvilis says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://norvilis.com/stop-using-js-for-everything-harnessing-the-power-of-pure-css-in-2026/"
}
],
"index": {
"byteEnd": 70,
"byteStart": 0
}
}
],
"plaintext": "Stop Using JS for Everything: Harnessing the Power of Pure CSS in 2026"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 11,
"byteStart": 0
}
}
],
"plaintext": "Absolutely."
}
},
{
"$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": "Jorijn Schrijvershof has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://jorijn.com/en/blog/claude-mythos-ai-vulnerability-discovery-explained/"
}
],
"index": {
"byteEnd": 78,
"byteStart": 0
}
}
],
"plaintext": "Claude Mythos: what Anthropic's cyber model means, and how to stay ahead of it"
}
},
{
"$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": "KISS is also a good security practice."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Emerald Pages reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://emeraldbook.org/news/may-3126-2/"
}
],
"index": {
"byteEnd": 95,
"byteStart": 0
}
}
],
"plaintext": "The Great AI Boomerang: Google, Meta, Klarna & More Are Quietly Rehiring the Workers They Fired"
}
},
{
"$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": "Let’s see if the c^nts learn any lessons."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "404 Media reports:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 18,
"byteStart": 0
}
}
],
"plaintext": "But, probably not."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.404media.co/satya-nadella-not-sure-who-said-microsoft-wanted-to-make-addictive-ai-is-looking-for-guy-who-did-this/"
}
],
"index": {
"byteEnd": 108,
"byteStart": 0
}
}
],
"plaintext": "Satya Nadella ‘Not Sure’ Who Said Microsoft Wanted to Make Addictive AI, Is Looking for Guy Who Did This"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.404media.co/google-employees-internally-share-memes-about-how-its-ai-sucks/"
}
],
"index": {
"byteEnd": 62,
"byteStart": 0
}
}
],
"plaintext": "Google Employees Internally Share Memes About How Its AI Sucks"
}
},
{
"$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": "HTML"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Structure your site with simple but essential HTML."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.htmlforpeople.com/"
}
],
"index": {
"byteEnd": 4,
"byteStart": 0
}
}
],
"plaintext": "HTML"
}
},
{
"$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": "Jeremy Herve says:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://herve.bzh/the-web-was-always-social/"
}
],
"index": {
"byteEnd": 25,
"byteStart": 0
}
}
],
"plaintext": "The web was always social"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "IT Notes shares a note:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://it-notes.dragas.net/2026/05/25/fedimeteo-timezones-and-the-art-of-not-breaking-what-already-works/"
}
],
"index": {
"byteEnd": 68,
"byteStart": 0
}
}
],
"plaintext": "FediMeteo, timezones, and the art of not breaking what already works"
}
},
{
"$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": "ActivityPub Rocks"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "This site is maintained by the current steward of the ActivityPub stack of standards."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://activitypub.rocks/"
}
],
"index": {
"byteEnd": 17,
"byteStart": 0
}
}
],
"plaintext": "ActivityPub Rocks"
}
},
{
"$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": "The Social Web Foundation has:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://socialwebfoundation.org/2026/06/05/european-social-sovereignty/"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "European Social Sovereignty"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Mastodon shares:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.joinmastodon.org/2026/06/europes-new-tech-strategy-puts-open-source-front-and-centre/"
}
],
"index": {
"byteEnd": 60,
"byteStart": 0
}
}
],
"plaintext": "Europe's New Tech Strategy Puts Open Source Front and Centre"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Following up a post feature here last week, Ecologia Digital asks:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://josemurilo.com/2026/05/30/fediverso-ou-web-social/"
}
],
"index": {
"byteEnd": 24,
"byteStart": 0
}
}
],
"plaintext": "Fediverso ou Web Social?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "VM Crawl announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://vmcrawl.com/"
}
],
"index": {
"byteEnd": 98,
"byteStart": 0
}
}
],
"plaintext": "The dashboard now shows a heat map of all detected ActivityPub platforms in comparison to Mastodon"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 130,
"byteStart": 0
}
}
],
"plaintext": "The largest number of Fediverse instances are Ghost websites, then Mastodon, and soon to surpass it WordPress sites. This is good."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Alexia's Space examines Fediverse:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://cyrneko.eu/posts/moderation.html"
}
],
"index": {
"byteEnd": 10,
"byteStart": 0
}
}
],
"plaintext": "Moderation"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "EnbySpacePerson looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://write.as/enbyspaceperson/fediverse-migration"
}
],
"index": {
"byteEnd": 19,
"byteStart": 0
}
}
],
"plaintext": "Fediverse migration"
}
},
{
"$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/116687407535124924"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "HolosSocial 1.8.1 is available"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Elk announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://elk.zone/m.webtoo.ls/@elk/116698292848441617"
}
],
"index": {
"byteEnd": 27,
"byteStart": 0
}
}
],
"plaintext": "Finally, Elk v1.0.0 is out!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And FediLab announces:"
}
},
{
"$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/116698420184041446"
}
],
"index": {
"byteEnd": 28,
"byteStart": 0
}
}
],
"plaintext": "Fedilab 3.41.0 is available."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Paths and Patches reports on:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.blog-pat.ch/connected-community-spaces/"
}
],
"index": {
"byteEnd": 26,
"byteStart": 0
}
}
],
"plaintext": "Connected community spaces"
}
},
{
"$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/fr165-fediverse-news-for-may-2026/"
}
],
"index": {
"byteEnd": 34,
"byteStart": 0
}
}
],
"plaintext": "FR 165 – Fediverse News May 2026"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "A New Social announces new:"
}
},
{
"$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/migrations-update-launch/"
}
],
"index": {
"byteEnd": 74,
"byteStart": 0
}
}
],
"plaintext": "Launches: Credible Exit, Bridged User Notifications, & Fediverse Re-Bridge"
}
},
{
"$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": "Our Manade project is rolling along. So, (as hinted at last week) we have set up an announcement account on the Fediverse via a self-hosted Starling server. It's PHP-based, which is in my wheelhouse."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://social.manade.org/@gardian"
}
],
"index": {
"byteEnd": 39,
"byteStart": 13
}
}
],
"plaintext": "Follow it at @gardian@social.manade.org."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://site.manade.org"
}
],
"index": {
"byteEnd": 63,
"byteStart": 40
}
}
],
"plaintext": "You can learn more about the project at https://site.manade.org."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Elixir announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://elixir-lang.org/blog/2026/06/03/elixir-v1-20-0-released/"
}
],
"index": {
"byteEnd": 53,
"byteStart": 0
}
}
],
"plaintext": "Elixir v1.20 released: now a gradually typed language"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 87,
"byteStart": 0
}
}
],
"plaintext": "Bonfire is written in Elixir which is not in my wheelhouse or even in the neighborhood."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "LAUTI announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://bonfire.cafe/pub/objects/01KTC1MGCEM554F5SGZ57TYP7E"
}
],
"index": {
"byteEnd": 56,
"byteStart": 0
}
}
],
"plaintext": "The next step in our ActivityPub implementation is ready"
}
},
{
"$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": "European.social announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://european.social/"
}
],
"index": {
"byteEnd": 25,
"byteStart": 0
}
}
],
"plaintext": "The European Social Stack"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Technology Adventures announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://tonym128.github.io/2026/05/25/sovereigns3nc-building-a-decentralized-network-without-a-backend.html"
}
],
"index": {
"byteEnd": 65,
"byteStart": 0
}
}
],
"plaintext": "SovereignS3nc: Building a Decentralized Network Without a Backend"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 33,
"byteStart": 0
}
}
],
"plaintext": "Very interesting KISS experiment."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Matrix"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Sky Schubert shows us:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://overengineer.dev/blog/2026/05/26/how-to-rename-yourself-on-matrix/"
}
],
"index": {
"byteEnd": 32,
"byteStart": 0
}
}
],
"plaintext": "How to rename yourself on Matrix"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 39,
"byteStart": 0
}
}
],
"plaintext": "Definitely a pain point in open social."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 3,
"plaintext": "Web Mentions"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Dale Mellor extends an:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://khleedril.org/blog/2026-05-29--webmentions-posse.html"
}
],
"index": {
"byteEnd": 90,
"byteStart": 0
}
}
],
"plaintext": "Invitation to Join a Posse of Webmention Scratch-Builders to Work Towards Interoperability"
}
},
{
"$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": "Standard.Horse is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://standard.horse/"
}
],
"index": {
"byteEnd": 37,
"byteStart": 0
}
}
],
"plaintext": "Your printing press for standard.site"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Mat Marquis is:"
}
},
{
"$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/standard-site/"
}
],
"index": {
"byteEnd": 26,
"byteStart": 0
}
}
],
"plaintext": "Implementing Standard.Site"
}
},
{
"$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": "And Rachel Andrew is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://rachelandrew.co.uk/archives/2026/05/31/joining-the-atmosphere/"
}
],
"index": {
"byteEnd": 22,
"byteStart": 0
}
}
],
"plaintext": "Joining the atmosphere"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "pckt answers:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://notes.pckt.blog/atmosphere-101-do-i-need-to-make-an-account-f9yvhyp"
}
],
"index": {
"byteEnd": 45,
"byteStart": 0
}
}
],
"plaintext": "Atmosphere 101: Do I need to make an account?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Hannah explains:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://hannahshelley.neocities.org/blog/2026_05_31_ATProto.html"
}
],
"index": {
"byteEnd": 36,
"byteStart": 0
}
}
],
"plaintext": "Putting my Neocities blog on ATProto"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Daniel's Leaflets explores:"
}
},
{
"$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/3mndhk7ihsc2g"
}
],
"index": {
"byteEnd": 41,
"byteStart": 0
}
}
],
"plaintext": "Modeling communities on permissioned data"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "VMX examines:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://vmx.cx/cgi-bin/blog/index.cgi/floats-on-atproto%3A2026-05-28%3Aen%2CATProto"
}
],
"index": {
"byteEnd": 17,
"byteStart": 0
}
}
],
"plaintext": "Floats on ATProto"
}
},
{
"$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": "Fedivariety looks at:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://www.fedivariety.org/blog/safeguarding-democratic-debate"
}
],
"index": {
"byteEnd": 30,
"byteStart": 0
}
}
],
"plaintext": "Safeguarding Democratic Debate"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Devin Thakker explains:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://devinthakker.com/blog/what-makes-civic-data-hard-to-structure"
}
],
"index": {
"byteEnd": 42,
"byteStart": 0
}
}
],
"plaintext": "What Makes Civic Data So Hard to Structure"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Tor is:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://blog.torproject.org/supporting-those-who-speak-out/"
}
],
"index": {
"byteEnd": 53,
"byteStart": 0
}
}
],
"plaintext": "Supporting those who speak out with Richochet Refresh"
}
},
{
"$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": "Buttondown announces:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://buttondown.com/blog/2026-06-03-notes-on-team-members"
}
],
"index": {
"byteEnd": 36,
"byteStart": 0
}
}
],
"plaintext": "(Private) Notes on your team members"
}
},
{
"$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": 59,
"byteStart": 0
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
},
{
"$type": "pub.leaflet.richtext.facet#link",
"uri": "https://site.manade.org/"
}
],
"index": {
"byteEnd": 65,
"byteStart": 59
}
},
{
"features": [
{
"$type": "pub.leaflet.richtext.facet#bold"
}
],
"index": {
"byteEnd": 66,
"byteStart": 65
}
}
],
"plaintext": "And please build something for a community! We're building Manade."
}
},
{
"$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": "019e9bd1-d5fd-755d-ad56-e4942ab323a7"
}
]
},
"description": "Welcome to 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": "/3mnm5342jnc22",
"publishedAt": "2026-06-06T07:30:52.542Z",
"site": "at://did:plc:ztjsajckkmfscs3tshez4ath/site.standard.publication/3mi4k4i7dns2o",
"tags": [
"fediverse",
"ActivityPub",
"ATProto",
"WebDev",
"programming",
"CMSs",
"matrix"
],
"title": "The Programmer's Fulcrum: 5 June, 2026"
}