{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihgejakbafjg3sfzetwcvixevkhietfxbmbcs3pd6jv2r75zj5pii",
    "commit": {
      "cid": "bafyreiho7nzmctfkw5sa4pdsn4weeuryeof3764na6rrnlhwuvhn7u5soq",
      "rev": "3mn5padfxem2k"
    },
    "uri": "at://did:plc:ztjsajckkmfscs3tshez4ath/app.bsky.feed.post/3mn5padcjyc2u",
    "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",
              "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.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": 26,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Misaligned Markets writes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Governance determines the evolution of an innovation, giving society power over a technology’s ultimate form."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://misaligned.markets/gtr-internet-history-governance/"
                    }
                  ],
                  "index": {
                    "byteEnd": 52,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "To steer the future we must imagine a different past"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 24,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Defend Democracy writes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Europe is spending €300 billion to free itself from undemocratic control of its digital infrastructure. It has not yet considered what happens when the authoritarian is European."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://defenddemocracy.eu/eu-tech-democracy/"
                    }
                  ],
                  "index": {
                    "byteEnd": 56,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Europe’s big tech bet is only as safe as its democracy"
            }
          },
          {
            "$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": "Yep."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Code and Civilisation writes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Gradually, attention shifted away from the sheer accumulation of things toward the structures that made cooperation possible: the systems by which knowledge was recorded, exchanged, tested, and carried forward. Within these largely unseen arrangements, civilisation found new means of continuity."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://code-and-civilisation.vercel.app/posts/civ-new-episodes/civ-14-the-invisible-commons/"
                    }
                  ],
                  "index": {
                    "byteEnd": 39,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Civilisation XIV: The Invisible Commons"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 17,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Very informative."
            }
          },
          {
            "$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": "The Repository reports:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.therepository.email/patchstack-ceo-warns-wordpress-7-0-could-trigger-absolute-rush-to-steal-ai-api-keys"
                    }
                  ],
                  "index": {
                    "byteEnd": 89,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Patchstack CEO Warns WordPress 7.0 Could Trigger “Absolute Rush” To Steal AI API Keys"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Manual do Usuário shows us:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://manualdousuario.net/en/disable-ia-wordpress-7-0/"
                    }
                  ],
                  "index": {
                    "byteEnd": 48,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "How to disable WordPress 7.0’s new AI features"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 98,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Or you could just not be a c^nt and don't use non-local AI. Or be a saint and don't use AI period."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "PureBlog explores its:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://pureblog.org/post-scheduling"
                    }
                  ],
                  "index": {
                    "byteEnd": 15,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Post Scheduling"
            }
          },
          {
            "$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.text",
              "plaintext": "Wonders of Web Weaving has a nice interview:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://web-weaving.jamesg.blog/3"
                    }
                  ],
                  "index": {
                    "byteEnd": 31,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Wonders of Web Weaving Number 3"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 21,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Bear = Nice and KISS."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Robert Birming introduces a:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://robertbirming.com/bear-gallery-upload-plugin/"
                    }
                  ],
                  "index": {
                    "byteEnd": 26,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Bear gallery upload plugin"
            }
          },
          {
            "$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/comment-threads-votes-and-pins/"
                    }
                  ],
                  "index": {
                    "byteEnd": 31,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Comment threads, votes and pins"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Tech Times reports:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.techtimes.com/articles/317134/20260525/ghost-cms-sql-injection-hits-700-sites-harvard-duckduckgo-serve-fake-cloudflare-malware.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 89,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Ghost CMS SQL Injection Hits 700 Sites: Harvard, DuckDuckGo Serve Fake Cloudflare Malware"
            }
          },
          {
            "$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": "This is why I don't self-host non-static sites."
            }
          },
          {
            "$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": "Ste Grainer shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://stegrainer.com/journal/2026/friday-fave-11ty"
                    }
                  ],
                  "index": {
                    "byteEnd": 35,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Friday Fave: Build Awesome aka 11ty"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Mathia Wright shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://mathiaswright.gitlab.io/compendium/posts/how-i-made-this-website/"
                    }
                  ],
                  "index": {
                    "byteEnd": 23,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "How I Made This Website"
            }
          },
          {
            "$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": "The Art Of Not Asking Why says:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://taonaw.com/2026/05/20/its-official-prefer-inkwell-over.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 43,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "It's official: I prefer Inkwell over Elfeed"
            }
          },
          {
            "$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/26/weve-restarted-the-ios-beta.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 41,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "We’ve restarted the iOS beta for Strata"
            }
          },
          {
            "$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": "Joost de Valk opines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://joost.blog/open-source-first-not-enough/"
                    }
                  ],
                  "index": {
                    "byteEnd": 43,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Open Source First is right, but not enough."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Disconnect opines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://disconnect.blog/google-is-its-own-worst-enemy/"
                    }
                  ],
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Google is its own worst enemy"
            }
          },
          {
            "$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": "When this mountain range of shit collapses we need to have built a real and climbable mountain above the sea of decay."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Kevin Boone examines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://kevinboone.me/maps_after_google.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 17,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Maps after Google"
            }
          },
          {
            "$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": "I use Organic Maps and it's good enough."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "plaintext": "Small Web"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "17 year-old Frost says:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://frostecho.neocities.org/posts/the-small-web-still-lives-on-corporate-infrastructure/"
                    }
                  ],
                  "index": {
                    "byteEnd": 55,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The Small Web Still Depends on Corporate Infrastructure"
            }
          },
          {
            "$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": "Nice piece."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "plaintext": "VPN"
            }
          },
          {
            "$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 has:"
            }
          },
          {
            "$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-labs-are-starred-messages-and-these-six-other-features-coming-to-signal/"
                    }
                  ],
                  "index": {
                    "byteEnd": 86,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Signal Labs: are “Starred messages” and these six other features coming to Signal?"
            }
          },
          {
            "$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": "Slashdot shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://news.slashdot.org/story/26/05/24/209218/mozilla-brings-web-serial-workflows-to-firefox-collaborates-with-adafruit"
                    }
                  ],
                  "index": {
                    "byteEnd": 74,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Mozilla Brings Web Serial Workflows to Firefox, Collaborates With Adafruit"
            }
          },
          {
            "$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 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/left-google-workspace-for-nextcloud/"
                    }
                  ],
                  "index": {
                    "byteEnd": 53,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Why I left Google Workspace for self-hosted Nextcloud"
            }
          },
          {
            "$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/open-cloud-alliantie-dutch-sovereignty-procurement/"
                    }
                  ],
                  "index": {
                    "byteEnd": 105,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The Open Cloud Alliantie is real. Seven Dutch providers just made sovereignty a procurement conversation."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The Free Knowledge Institute shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://freeknowledge.eu/cooperative-clouds-in-practice-kollicloud-shows-how-affordable-sovereign-infra-is-already-here"
                    }
                  ],
                  "index": {
                    "byteEnd": 106,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Cooperative Clouds in Practice - KolliCloud Shows How Affordable, Sovereign Infrastructure Is Already Here"
            }
          },
          {
            "$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 has:"
            }
          },
          {
            "$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/27/new-web-and-mobile-strategy-for-libreoffice/"
                    }
                  ],
                  "index": {
                    "byteEnd": 43,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "New Web and Mobile Strategy for LibreOffice"
            }
          },
          {
            "$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/28/odf-vs-ooxml-an-issue-that-should-never-have-existed/"
                    }
                  ],
                  "index": {
                    "byteEnd": 53,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "ODF vs OOXML, an issue that should never have existed"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Nextcloud announces:"
            }
          },
          {
            "$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/euro-office-general-availability-set-for-june-9/"
                    }
                  ],
                  "index": {
                    "byteEnd": 48,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Euro-Office: General availability set for June 9"
            }
          },
          {
            "$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/linux-mint-23-getting-new-cinnamon-screenshots-tool-network-improvements"
                    }
                  ],
                  "index": {
                    "byteEnd": 73,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Linux Mint 23 Getting New Cinnamon Screenshots Tool, Network Improvements"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Phosh announces:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://phosh.mobi/releases/rel-0.55.0/"
                    }
                  ],
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Phosh 0.55.0"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Luigi311 reviews:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://blog.luigi311.com/furilabs-flx1s/"
                    }
                  ],
                  "index": {
                    "byteEnd": 14,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Furilabs FLX1s"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Clubic has an interview:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.clubic.com/dossier-613462-interview-jolla.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 112,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "\"Apple et Google sont prisonniers de leur propre écosystème, nous pouvons innover librement\" - Interview Jolla"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "F-Droid has:"
            }
          },
          {
            "$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/22/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#link",
                      "uri": "https://f-droid.org/en/2026/05/27/building-trust.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 53,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Building trust through software rather than giving it"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Gael Duval promotes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://gaelduval.com/joining-the-wave-murena-e-os-2026-roadmap/"
                    }
                  ],
                  "index": {
                    "byteEnd": 45,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Joining the Wave: Murena & /e/OS 2026 Roadmap"
            }
          },
          {
            "$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": "HubZilla"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The powerful open source privacy-respecting all-in-one home base for collaboration and social interactions."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://hubzilla.org/page/info/home"
                    }
                  ],
                  "index": {
                    "byteEnd": 8,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Hubzilla"
            }
          },
          {
            "$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": "Yancey Strickler 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.ystrickler.com/seven-years-in-the-forest/"
                    }
                  ],
                  "index": {
                    "byteEnd": 25,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Seven years in the forest"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 100,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "This in an in-browser light version of efforts like Newsmast Community, Acorn, and Bonfire / Manade."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Prasham H Trivedi notes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://prashamhtrivedi.in/mobile-lost-on-distribution/"
                    }
                  ],
                  "index": {
                    "byteEnd": 59,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Mobile won the platform war on distribution, not capability"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Interoperable Europe has:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://interoperable-europe.ec.europa.eu/collection/open-source-observatory-osor/news/frances-first-academic-ospo-suggests-model-national-network"
                    }
                  ],
                  "index": {
                    "byteEnd": 127,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Workshop report from Université Grenoble Alpes maps the missions, structures and services proper academic OSPOs should provide"
            }
          },
          {
            "$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": "Grenoble is a fantastic city BTW."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Curl's main man looks at:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://daniel.haxx.se/blog/2026/05/26/the-pressure/"
                    }
                  ],
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The pressure"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Daniel Beck asks:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://ddbeck.com/where-does-the-money-come-from/"
                    }
                  ],
                  "index": {
                    "byteEnd": 49,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Open source docs: where does the money come from?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Joan Westenberg proposes:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.joanwestenberg.com/the-costco-theory-of-the-internet/"
                    }
                  ],
                  "index": {
                    "byteEnd": 33,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The Costco Theory of the Internet"
            }
          },
          {
            "$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": "If you are a solopreneur or small business owner, you should read this."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Matthias Schaub shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://talfus-laddus.de/blog/web-image-gallery/"
                    }
                  ],
                  "index": {
                    "byteEnd": 43,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "I rebuilt my own web image feed and gallery"
            }
          },
          {
            "$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": "A great, little, fairly KISS project."
            }
          },
          {
            "$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": "Bruno Bernardino is:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://news.onbrn.com/migrating-from-github-actions-to-sourcehut-builds/"
                    }
                  ],
                  "index": {
                    "byteEnd": 49,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Migrating from GitHub Actions to SourceHut Builds"
            }
          },
          {
            "$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": "Frontend Masters explores:"
            }
          },
          {
            "$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/managing-anchor-associations-with-data-attributes-and-advanced-attr/"
                    }
                  ],
                  "index": {
                    "byteEnd": 69,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Managing Anchor Associations With Data Attributes and Advanced attr()"
            }
          },
          {
            "$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": "CSS Tricks examines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://css-tricks.com/the-state-of-css-centering-in-2026/"
                    }
                  ],
                  "index": {
                    "byteEnd": 35,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The State of CSS Centering in 2026."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Brian Kardell has:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://bkardell.com/blog/GetClamped.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 49,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Get Clamped: Unwinding Some Difficult CSS History"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Donnie D’Amato looks at the color:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://blog.damato.design/posts/eigengrau"
                    }
                  ],
                  "index": {
                    "byteEnd": 9,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Eigengrau"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 63,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Very interesting and the advice not to use pure black is solid."
            }
          },
          {
            "$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": "The Guardian reports:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.theguardian.com/world/2026/may/25/pope-leo-encyclical-ai-artificial-intelligence-slavery"
                    }
                  ],
                  "index": {
                    "byteEnd": 60,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Pope Leo denounces ‘culture of power’ driving rise of AI"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Where's Your Ed? finishes a series:"
            }
          },
          {
            "$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/the-revenge-of-the-business-idiot/"
                    }
                  ],
                  "index": {
                    "byteEnd": 29,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Revenge of The Business Idiot"
            }
          },
          {
            "$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": "Ed may be my brother from another mother."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "The University of Oxford explores:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://civic.ai/software-freedom-as-civic-care/"
                    }
                  ],
                  "index": {
                    "byteEnd": 30,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Software Freedom as Civic Care"
            }
          },
          {
            "$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": "Fantastic, though long. Even my our standards."
            }
          },
          {
            "$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": "Markdown"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Write for your website."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.markdownguide.org/"
                    }
                  ],
                  "index": {
                    "byteEnd": 8,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Markdown"
            }
          },
          {
            "$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": "IT Notes notes:"
            }
          },
          {
            "$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/18/fedimeteo-haproxy-and-the-art-of-not-wasting-snac-threads/"
                    }
                  ],
                  "index": {
                    "byteEnd": 59,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "FediMeteo, HAProxy, and the art of not wasting snac threads"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Jeremy Herve examines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://herve.bzh/radical-speed-month-and-a-new-reader/"
                    }
                  ],
                  "index": {
                    "byteEnd": 37,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Radical Speed Month, and a new Reader"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Pat is:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://mastodon.nz/@Pat/116643108485346393"
                    }
                  ],
                  "index": {
                    "byteEnd": 31,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Thinking more about ActivityPub"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Gyptazy announces:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://gyptazy.com/blog/starling-simple-fediverse-server/"
                    }
                  ],
                  "index": {
                    "byteEnd": 63,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Starling – A Lightweight ActivityPub Server for the Fediverse"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 63,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "I will definitely check this out. Maybe for the Manade website."
            }
          },
          {
            "$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": "Validate ActivityStreams Event"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://validate.event-federation.eu/"
                    }
                  ],
                  "index": {
                    "byteEnd": 64,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Verify your ActivityStreams Event object for FEP-8a8e compliance"
            }
          },
          {
            "$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": "&nbsp"
            }
          },
          {
            "$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/fr164-the-pope-on-defederation/"
                    }
                  ],
                  "index": {
                    "byteEnd": 35,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "FR 164 – The Pope on Defederation"
            }
          },
          {
            "$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
                  }
                },
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    },
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.thefulcrum.dev/techno-anarchist-manifesto/#distributism"
                    }
                  ],
                  "index": {
                    "byteEnd": 89,
                    "byteStart": 56
                  }
                },
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 90,
                    "byteStart": 89
                  }
                }
              ],
              "plaintext": "If you're interested in what the Pope is building upon, check this section of the TAM out."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "For Better looks at:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://forbetter.ghost.io/the-normal-response-to-the-social-web/"
                    }
                  ],
                  "index": {
                    "byteEnd": 39,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The 'normal' response to the Social Web"
            }
          },
          {
            "$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": "The better name might be Ad-Free Social Media."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "I ran across PeerSeek this week:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://peerseek.video/"
                    }
                  ],
                  "index": {
                    "byteEnd": 22,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Search PeerTube videos"
            }
          },
          {
            "$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": "If you watch videos (which I don't), give this a peak."
            }
          },
          {
            "$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/116624976318048240"
                    }
                  ],
                  "index": {
                    "byteEnd": 19,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "No app store needed"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Holos Social notes:"
            }
          },
          {
            "$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/116626082671227556"
                    }
                  ],
                  "index": {
                    "byteEnd": 57,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "HolosSocial isn't bringing something new to the Fediverse"
            }
          },
          {
            "$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/116642234827579106"
                    }
                  ],
                  "index": {
                    "byteEnd": 58,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Multi-device support is progressing well for Holos Social."
            }
          },
          {
            "$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": "There are three notes in this thread."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Zeitfresser says:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://ztfr.eu/stop-posting-to-platforms-turn-your-website-into-a-fediverse-node/"
                    }
                  ],
                  "index": {
                    "byteEnd": 81,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Stop Posting to Platforms — Turn Your (WordPress) Website into a Fediverse Node"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 149,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "A solid implementation. It's only drawback is its slightly wonky with some third party clients. Still, it's probably the best integration with a CMS."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Euractiv looks:"
            }
          },
          {
            "$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/interview-inside-the-commissions-favoured-european-social-network/"
                    }
                  ],
                  "index": {
                    "byteEnd": 58,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Inside the Commission’s favorite European social network"
            }
          },
          {
            "$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",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 88,
                    "byteStart": 0
                  }
                },
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    },
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://site.manade.org/about"
                    }
                  ],
                  "index": {
                    "byteEnd": 94,
                    "byteStart": 88
                  }
                },
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 118,
                    "byteStart": 94
                  }
                }
              ],
              "plaintext": "A quick aside - hosting, provisioning, implementation, and opinionated customization of Manade is moving along nicely."
            }
          },
          {
            "$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": "Daniel Prindii aks:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://danielprindii.com/blog/what-are-third-spaces"
                    }
                  ],
                  "index": {
                    "byteEnd": 46,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "What are third spaces and what makes them work"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Just a Simple App announces:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://justasimple.app/flat-is-now-available/"
                    }
                  ],
                  "index": {
                    "byteEnd": 21,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Flat is now available"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#bold"
                    }
                  ],
                  "index": {
                    "byteEnd": 42,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "This is similar to Flipboard’s Surf app."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Kevin Boone announces:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://kevinboone.me/keplerd.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 67,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "keplerd: a new Java-based server for the Gemini protocol and others"
            }
          },
          {
            "$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": "Alexia apologizes:"
            }
          },
          {
            "$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/that-post-sucked.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 35,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "My Matrix post? it f^?§%ng sucked."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Element reports:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://element.io/blog/sweden-goes-live-with-matrix-based-federation/"
                    }
                  ],
                  "index": {
                    "byteEnd": 46,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Sweden goes live with Matrix-based federation!"
            }
          },
          {
            "$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": "CybersecKyle shares:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://www.kylereddoch.me/blog/improving-my-rss-feed-and-making-it-more-human-readable/"
                    }
                  ],
                  "index": {
                    "byteEnd": 55,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Improving My RSS Feed and Making It More Human Readable"
            }
          },
          {
            "$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": "Mathieui announces:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://blog.mathieui.net/poezio-0-18.html"
                    }
                  ],
                  "index": {
                    "byteEnd": 11,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Poezio 0.18"
            }
          },
          {
            "$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": "TechCrunch reports:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://techcrunch.com/2026/05/04/as-x-shuts-down-communities-acorn-debuts-an-alternative-that-puts-creators-in-control/"
                    }
                  ],
                  "index": {
                    "byteEnd": 86,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "As X shuts down Communities, Acorn debuts an alternative that puts creators in control"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "pckt reports:"
            }
          },
          {
            "$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/standardsite-link-cards-are-coming-to-bluesky-zcv9dj6"
                    }
                  ],
                  "index": {
                    "byteEnd": 46,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Standard.site link cards are coming to Bluesky"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "plaintext": "Elena Rossini has an expose:"
            }
          },
          {
            "$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/the-untold-story-about-w-social-unconventional-beginnings-strategic-pitches-conflicting-signals/"
                    }
                  ],
                  "index": {
                    "byteEnd": 102,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "The Untold Story About W Social: Unconventional Beginnings, Strategic Pitches, and Conflicting Signals"
            }
          },
          {
            "$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": "Code and Civilisation explores:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://code-and-civilisation.vercel.app/posts/change-management-as-civic-infrastructure/"
                    }
                  ],
                  "index": {
                    "byteEnd": 41,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Change Management as Civic Infrastructure"
            }
          },
          {
            "$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": "Rewiring examines:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#link",
                      "uri": "https://rewiring.bearblog.dev/moving-from-fastmail-to-a-generic-host-own-domain/"
                    }
                  ],
                  "index": {
                    "byteEnd": 51,
                    "byteStart": 0
                  }
                }
              ],
              "plaintext": "Moving from Fastmail to a generic host + own domain"
            }
          },
          {
            "$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": "019e7e45-6f33-7884-a3fa-732ff45365c8"
      }
    ]
  },
  "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": "/3mn5pa5ad5c2u",
  "publishedAt": "2026-05-31T13:45:57.474Z",
  "site": "at://did:plc:ztjsajckkmfscs3tshez4ath/site.standard.publication/3mi4k4i7dns2o",
  "tags": [
    "activitypub",
    "atproto",
    "webdev",
    "fediverse",
    "OMN",
    "programming"
  ],
  "title": "The Programmer's Fulcrum: 29 May, 2026"
}