{
  "path": "/3m5tpgs5uns2l",
  "site": "at://did:plc:vro3sykit2gjemuza2pwvxwy/site.standard.publication/3lzkrirqukc27",
  "tags": [],
  "$type": "site.standard.document",
  "title": "a decentralized approach to webrings",
  "content": {
    "$type": "pub.leaflet.content",
    "pages": [
      {
        "id": "019a92bb-8ddd-777d-a027-c62cd37f77d1",
        "$type": "pub.leaflet.pages.linearDocument",
        "blocks": [
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "in case you don't know, webrings are teeny tiny curated directories of websites sorted by topic, they have been around before search engines went into mainstream"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreicw34eg2bqn7p2mnuc2uvkdxgty6xco7ju3soakeinkubi3lq7zwa"
                },
                "mimeType": "image/png",
                "size": 16324
              },
              "aspectRatio": {
                "width": 1000,
                "height": 750
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "however, webrings are most likely centralized and once they shut down, you can lost connection with your online neighborhood"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreihang7kguwp7ctxiouxefv4cnxsrzpmvkxqv2k3m3ledo2i65j6rq"
                },
                "mimeType": "image/png",
                "size": 53619
              },
              "aspectRatio": {
                "width": 1000,
                "height": 750
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "webrings are meant to decentralize website discovery and we could improve that by creating a wide self-curated directory of personal websites"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreic5rzh3ntgx36wte2g4fhgvogujqpamommxokcr2r4m2kiqlztpb4"
                },
                "mimeType": "image/png",
                "size": 21987
              },
              "aspectRatio": {
                "width": 1000,
                "height": 750
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "and once the mainstream webring shuts down, one of the webmasters starts rehosting it and websites will stay connected"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreidonvr5zdra52eva4gvfxutqn3loo4mfpjourelbk5tbc45qhweta"
                },
                "mimeType": "image/png",
                "size": 73246
              },
              "aspectRatio": {
                "width": 1000,
                "height": 750
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "sound cool, but uhhh... how?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "we could use atproto repositories to place website data and/or webring data in their respective records"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 74,
                    "byteStart": 67
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                }
              ],
              "plaintext": "the webring data points to the active webring service with a valid did:web identifier, which is kinda identical to bluesky's feed generators"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "on the other hand, website data can hold as much more information about it or it's owner as possible! for example:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "social media links"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "last.fm/listenbrainz/teal.fm scrobbles"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "your neocities profile page (most webrings have neocities sites or use neocities as their host)"
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "gpg public key"
                  },
                  "children": []
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": ""
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "is there any chance that you will make a ref implementation of it?"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "maybe... i am not sure tho"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 18,
                    "byteStart": 13
                  },
                  "features": [
                    {
                      "uri": "https://codeberg.org/lime360/fling",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "i could fork fling and adapt it to atproto"
            }
          }
        ]
      }
    ]
  },
  "publishedAt": "2025-11-17T17:05:09.306Z"
}