{
"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"
}