Revisiting Revisiting Webrings
Here it comes again: More thoughts on webrings since external forces keep putting the subject in front of me...now with potential options for making it happen.
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.
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.
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.
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?