I have written this specific post before, but this morning I read a post by Roger “Moderate Peril” Edwards which contained a segment about finding online communities and how it’s become more difficult despite the fact that we’re more connected to random people now than we ever have been. That put me back on the subject of webrings. I’m not an unsuperstitious man, and when a subject keeps throwing itself in front of me I feel that I need to at least entertain the notion that the Universe is trying to tell me something.

Oddly enough for a “web application developer”, I cannot fathom how to make webrings work in a modern context. First, there’s the technical side which, I suppose, can be achieved in a myriad of ways; don’t waffle, just pick one and run with it. Second and probably more important is the actual community aspect and how a chosen implementation would be received. I do believe, however, that there are site operators out there who would be gung-ho for a resurgence in webring technology as we’re constantly finding subjects to apply the “everything old is new again” tag to thanks to the enshitification of every once-promising technology we endure today.

Tech to the Rescue?

Despite having been interested in and attempting to work with the OG web technology in the early 90’s I am not very well versed in how some people pulled off the technology we lived with back then. I could do HTML without issue because that just needed a host, but something like CGI? That required more tech knowledge that I didn’t posses at the time, and when I finally found my way into the web app business we had platforms like PHP and ASP which rendered CGI and Perl kind of obsolete.

I did a quick spin around the Internet this morning in the hopes of finding a post-mortem on how webrings were constructed, but didn’t find any concrete info. Most results were navel-gazing about webrings themselves, their importance pre-social media, and how they were run out of business by the likes of Yahoo and the rise of Google.

I did find a quick, almost throw-away post at CSS-Tricks, however, which opined about how one might do webrings today and I was impressed. The post theorized that early webrings used <iframe> which allows a remote site to embed content into another site, like a browser-within-a-browser. That way, the serving and processing was entirely done on the central system, and the displaying site probably had to pass some identifier through the iframe to that host so it could display the appropriate navigation bar. I say this as if the Internet Archive doesn’t exist for me to look into, but finding an archived site with a webring implementation would no doubt be difficult.

Being a site that’s all about modern web development, though, the CSS-Tricks offers a thought-experiment on how we could do webrings today, and I like their thinking. While we could still use iframe (they aren’t depreciated quite yet), using a web component would be a much better option. Web components are a mix of HTML and JavaScript that can be used within any web rendering platform whether it’s ASP or PHP, or was built using React, Angular, or any other of the 12 million other platforms that exist today. Technically, the web component wouldn’t need to be remotely hosted, but if not, the site operator displaying the controls would need to add boilerplate to get the panel to connect to the central authority, and would have to make provisions for the data returned. This is a case where the number of possibilities can lead to “analysis paralysis” and even just typing this is giving me anxiety.

This is not the 1990s

Of course, then we run into a much thornier question: how can we enable web rings, managed by a central authority and displayed on an uncontrolled website, so that both the authority is “respected” and the remote sites aren’t compromised? I think before all else — before the questions of technology or the debate over whether webrings are even viable in the 21st century — people are going to want assurances that this system is safe, reliable, and as armored against “enshitification” as possible.

Obviously we would need to make the authority FOSS so everyone can see it, dissect it, and contribute to it. In fact, this is probably the best decision since it would allow individuals to set up their own authority for their own communities. Sure, we’d end up with dozens, hundreds, or thousands of video game, RC car, meme, and cat picture web rings that don’t really communicate, but I don’t think that’s a problem. One solution might be to federate these, but I don’t think I like that idea. Security through obfuscation can be real, so keeping someone’s celebrity gossip webring out of my 3D modeling webring is not an unwelcome side-effect of self-hosting.

More importantly is getting people to sign on. Thanks to the “move fast and break things” mantra that built Silicon Valley, we know that the one of the things that got broken was our trust in technology to keep our information safe, so convincing people who aren’t technical enough to review code that what we’re asking them to do — add a widget to their site that is almost black-box to them — is a hard sell…as well it should be! Back in the 1990s online banking wasn’t much of a thing. We didn’t have as many passworded accounts “out in the wild”. Hell, the Internet was barely widespread and the sophisticated means through which hackers and Bad Actors assault our private information was barely possible back then; everything was promise, nothing was off-limits. Embedding some stranger’s code into our site was more an act of community-building than a gross violation of basic security principles like it is today, so I have no idea how to overcome this hurdle in creating a modern webring platform.

Maybe…maybe not

I think at it’s most basic, a webring platform would need to have some kind of central authority; the CSS-Tricks article uses a basic fetch to get a JSON file hosted at GitHub, but then declines to add the code to the concept that would make it work, but in theory, that would work. It provides transparency and a way for people In The Know to add their sites to the ring. However, as Tipa mentioned in my previous article, knowing when a site goes offline would be difficult; not impossible, but difficult, and would be core to the operation of a successful platform.

In that case, I’d stump for a central server. Something simple using Node or Deno and maybe adding Redis or Mongo or some NoSQL platform to back it. Then we’re talking about being able to containerize it for distribution. The server could offer it’s own UI to allow people to self-register their site, and the server could occasionally so “some kind of check” on the remote site to ensure that it’s still responding (Mastodon allows for the use of a meta tag in a site’s header to “verify” a user via some publicly available presence, and that might also work here). At this point it might be easier to host a “template” that users could pull down in real time — maybe by iframe for that old-school feel, maybe through web components or some other means — which would maintain the visual unity of the ring and make it easier for non-technical people to integrate their site into a ring.

I have a piss-poor track record with projects, so I know if I said I’d try this out I’d be shooting myself in the foot before I even load the gun but again…the Universe has put this thought in front of me multiple times, so should I ignore it? Or should I at least maybe consider attempting to entertain the possibility?

7 Comments

  • Tipa

    August 26, 2024 - 8:43 am

    My idea was to have a server serve the next/previous/random website selection. I even implemented it and put it on my blog 🙂

    https://chasingdings.com/2023/11/17/remember-webrings/

    • Scopique

      August 26, 2024 - 9:06 am

      Obviously, that works, though it relies on data your site already has access to, and is serving up data you already have. The server part isn’t all that difficult conceptually; what is really frustrating me is how to centralize the serving of the ring presence for YOUR site for you to include, while also making sure people trust it (visibility, natch, but also coded to EARN that trust) and can include it in their site with the minimum amount of work on their part.

      • Tipa

        August 26, 2024 - 9:55 am

        Yeah, it does require me to add the blog to my list of blogs on the server. But, any webring requires administration — you can’t just let anyone in, and blogs do die.

        • Scopique

          August 26, 2024 - 10:52 am

          Absolutely. I’d expect any webring platform to have a server through which the data management can occur. It can even track “clicks” for how often a site comes up in rotation, which might be a good way to surface lesser-reached sites in the “random” option.

  • Roger Edwards

    August 26, 2024 - 11:53 am

    A few years ago, I set up an aggregation website called The Gaming Blog Nexus and it proved a more practical means of curating other people’s blog content. It was a popular and successful resource but like most online projects it was subject to increasing operational costs. After two and a half years I decided to close the site, which at the time listed over one hundred and twenty gaming related blogs.

    Although I do not regret my decision as I do not have unlimited funding for my online projects, I do miss its practical benefits. It was a straightforward and convenient way to keep abreast of websites and blogs that I enjoy. I was hoping after the closure of The Gaming Blog Nexus that someone else would create something similar. To date no one has.

  • Overbyte

    August 27, 2024 - 5:20 am

    For me maybe a more adaptable approach would follow a similar technology: rss. By creating a JSON (this is 2024 after all) spec that anyone can follow and hosting it at a pre defined path /ring(.json) or similar and then it would be reasonable for a webcomponent (yay lit) implementation to simply look where the data is expected on the site hosting it.

    It also allows backend templated implementations as well!

    • Scopique

      August 27, 2024 - 11:03 am

      That could work as a very loose implementation option. It would allow complete customization by the site operators to create the navigation widget of their choice. But it would also REQUIRE site operators to create the navigation widget of their choice. Providing a JSON-returning endpoint would be doable but I think it would still be beneficial to provide a more structured “out of the box” option for people who don’t want or cannot create their own widget.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.