mastodon.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
The original server operated by the Mastodon gGmbH non-profit

Administered by:

Server stats:

323K
active users

One of the first things I posted on Cohost was this story about a social website with a high degree of user freedom that shut down all of a sudden, and it's messing with me that the post itself is on Cohost, a social website with a high degree of user freedom that is shutting down all of a sudden

"A one-person oral history of Geocities HTML Chat"

cohost.org/mcc/post/325362-a-o

andi on cohost · A one-person oral history of Geocities HTML ChatGeocities HTML Chat has been forgotten by the world. It is possible I am the only one who remembers it. I only half remember it. It was my first Internet community. Here is what I remember. Background 1. Geocities was a formative website for the older millennials who are just barely old enough to remember when the "web browser" was introduced, but not old enough to be adults when it happened. It wasn't a very good site. Geocities was the first, or at least biggest, of the "free web hosts" of the early Internet. Anyone could sign up for a pittance-small (5 megabytes? 10 megabytes?) web directory, and FTP up their HTML and GIF files and Geocities would host it raw and unaltered. Geocities sites had the ugliest URLs on the Internet. Each URL consisted of the user's "city", followed by a four-digit number Geocities assigned. The "cities" were broad categories indicating the type of content your site would contain, like "SiliconValley" for computers, "WestHollywood" for LGBT topics, or… "Tokyo"¹. The categories seemed ill-thought-out and lumpy. The existence of "NapaValley" seemed to indicate they believed there would be roughly as many sites about wine as about all computer-related subjects combined. These "cities" seem to have been part of a very vague desire to conceptualize Geocities' very basic service (HTTP file hosting) as in fact a collection of communities. The people who made Geocities had some kind of sense the social web would, or could, someday exist. They could smell it, they could feel the heat of the thing in the room with them. They just had no idea what it would look like. Leaping from flat file hosting to something that looks like "social" "media" requires interactivity, and that was just not really available in webtech at that early point. Cross-page communities were things stitched in by hand (like the "webrings" the Mastodon crowd loves so much; these littered Geocities and invariably consisted of 50% dead links). "CGI-BIN" existed, on some sites (not Geocities), but all it could do was generate new flat files, so people largely only used CGI for the most basic purposes: "Guestbooks" where you could leave your name and a bit of text which would be appended to the HTML of the guestbook page; mindlessly simple "counters" which would generate on each load a GIF containing a number one higher than the last one loaded, showing how many people had visited that page. If you're old enough to remember this time, you're kind of nodding off at this point in the post. You know all this. But you probably did not know about Geocities HTML Chat, and if you knew it existed and what it was you probably would be actually shocked. I'm not sure you're even going to believe me this was a real thing that existed. ---------------------------------------- The thing itself 2. Geocities HTML Chat was the only "community" feature I remember Geocities ever attempting other than the mere fact of the "city" names. Most Geocities users didn't seem to know the chat was there. The concept was simplicity itself. Geocities HTML Chat was, from a technical perspective, a guestbook with a small twist. There was a chat for each of the "cities" (my home was SiliconValley, I think?). Each chat used (of course) frames to display two smaller webpages. One frame above (I don't actually remember, but let's say it was above) was a thin band containing a CGI input form. The lower frame was larger, and scrolled freely. This frame used a server-side trick; the server would tell your web browser it was sending it an infinitely long web page (or maybe it just claimed it was some impossibly large size, a gigabyte or something). It would send it the opening <html>, and then it would hang. It would keep the socket open. When a user in the chat room submitted a line to their CGI box, every user would simultaneously receive a new line on the bottom-frame open socket (which their web browser sincerely believed an ordinary webpage was actually really loading into, just very slowly): > <br><br>Nickname: Chat Text And so, a chat room. Any user hits "submit", what they submitted appears on all our screens at once. Cute trick, you're thinking. They've just faked a dynamically loading chatroom without using any dynamic HTML features at all. But you've missed the important part. When a user submits text, it is forwarded to everyone's chatscroll frame unchanged. There was no input sanitization at all. 3. Think like a Cohost user. Imagine the most extreme way you could use, or abuse, a chat room in which anything you say may contain unsanitized HTML. Whatever you're thinking, we did it. On GeoCities HTML chat you could use raw HTML in your chat posts. You could use raw HTML in your nickname. Most people did. Most users' nicknames contained images. You could do anything. 4. goodmorning.gif [https://staging.cohostcdn.org/attachment/58e576ee-a104-40b0-8172-667de264db95/goodmorningX2.png] [https://staging.cohostcdn.org/attachment/e86a080e-777b-44d5-bb2c-92bc256e3b44/Dodongo.png]I had a particular trick I liked. I'd figured out I could align=right an <img> and it would "float" right and text would flow around it. So I had a little html block I'd occasionally begin my chats with that would float right a GIF I liked (hosted, of course, off my personal website; it was the System 7 "Finder icon" of a one-piece Macintosh, on a green hill, with a mushroom cloud erupting behind it) and that GIF would link to my personal webpage. It was normal (and acceptable) for people to post recurring, banner-like HTML adverts of their announcements and websites; Geocities HTML Chat had no history, there were no logs, so repetition was the only way to make something seen. This was my version of that, but it was subtle, and could fit right into whatever else I was saying at the time. I could have put the float-right GIF in my nickname, of course, if I'd wanted, but that would be overbearing. 5. Because inputs were unsanitized and HTML was allowed, a semi-common problem was that people would open HTML tags and forget to close them. A stray < would be no problem, that would only result in the rest of that person's chat being deleted up to the next <br>, but if someone said <i> but forgot to (or typoed) their </i> then the chat would simply be in italics, everyone's chats, until someone posted a </i>. Flubbing tag closure was seen as an embarrassing faux pas, no worse, and moderators and experienced users simply saw it as one of their community duties to notice left-open tags and post a corresponding close tag. This did, obviously, leave room for griefing, but less than you'd think, because this was the HTML 2.0 era and there simply wasn't enough in the HTML standard yet to allow for truly major abuses. CSS didn't exist yet. About the worst someone could do would be to use an "obscure" tag, <abbr> or something, which would result in a visible formatting difference but leave the high level users confused as they spammed various close tags without guessing the right one. I think occasionally it would occur to someone to post a <!-- comment open, which would entirely silence the chat until someone figured out what had happened. But such abuses were always easily identified and quickly dealt with, the user would be banned and that would be that. In a worst case scenario you could always just reload the page, erasing the history and any stray formatting, and in the normal case, you just got used to the idea that sometimes, the chat would simply be purple for a bit. 6. I was a regular on the chat for what I remember being years, and I made any number of friends there, but I actually only remember one specific user from that entire time, and that was "MC Skat Kat". MC Skat Kat, as you may know, was Paula Abdul's cartoon boyfriend from the music video for "Opposites Attract", not one of my favorite Paula Abdul songs. Animated GIF [https://staging.cohostcdn.org/attachment/170df98b-aeb7-4a2b-8dbc-34323840b5d2/500173_600.gif] MC Skat Kat (left) and Paula Abdul (right). Note that this animated GIF is modern, and could never possibly have existed in the Geocities HTML Chat era; it's simply too large. At 280 pixels tall it is over half the height of a 640x480 monitor, and the file itself clocks in at a simply unmanageable 995 kilobytes(!). MC Skat Kat is a literal cat, and also a rapper. Our MC Skat Kat posted from the persona of this fictional MC Skat Kat, regularly referring to Paula Abdul as his girlfriend. Everyone simply accepted this. I don't think this was a furry thing, or rather, the human behind MC Skat Kat probably didn't at that time have the language of "furry" or the "furry community" available to him. He had simply decided that he was MC Skat Kat, and everyone went along with it. His nickname contained, if my memory can be trusted, two images of MC Skat Kat, to the left and right of his specially-formatted name, taking up maybe a third of an average screen. MC Skat Kat was a community pillar, and the most active among the volunteer moderators. 7. I'm only just remembering this as I'm typing, and the memory is so vague I'm not entirely certain this part is real, but this is what my neurons are telling me: When a moderator kicked someone from the room I remember there being a big <h3> USER "NICKNAME" HAS BEEN KICKED FROM THE CHAT. announcement. There was of course nothing stopping you from simply, at any point, saying "User 'nickname' has been kicked from the chat." in h3 text. It wouldn't have any effect, but you could do it. I don't even think the mods cared. 8. Geocities HTML Chat puttered along in its gleeful, endless, rainbow-colored utter chaos until one day, all at once, the end came for it, without warning and very rapidly over a 48-hour period. You've probably already guessed the reason why. JavaScript. When Geocities HTML Chat was created, JavaScript did not exist. But then there came a time JavaScript existed, and then inevitably, there came a day that for the first time someone thought to use JavaScript in the chat room. My memories get a little fuzzy about exactly when this happened. What I think I remember was that there was a period that JavaScript had been introduced but lay dormant, and people only started to pay attention and learn it once Netscape 4 landed and "Dynamic HTML" got introduced. DHTML is now such a basic concept of the Internet you have to specifically explain there was a time it didn't exist; the concept of the DOM, and JavaScript being able to alter and rearrange a document structure after it has already been rendered as opposed to appending all at once as brutal one-off document.write()s. What I think I remember was that when the event happened I had some awareness I was partially immune to the consequences due to me staying for a time on Netscape 3 (due to Netscape 4 being slow and me liking a particular 3.0-exclusive mod I'd installed that transformed the browser into "Xena Navigator [https://xenafan.com/mac/]" and replaced the "loading" icon with a spinning Chakram). (I was literally twelve). DHTML, despite being practically useless in its early incarnation due to Netscape and IE offering mutually incompatible implementations, would have been really dangerous, not just because of its intended capabilities but because in those early DHTML browsers it was incredibly, unbelievably easy to find ways to use DHTML to make the browser crash. And as any modern programmer knows, if you can find a way to remotely crash a program, the chances are good you have a handle on a way to remotely execute code. I'm not sure though if Netscape 4 actually had been released when the event happened; that would have dated the event I'm about to describe to 1997, whereas honestly it might have been closer to 1995. But whether this was 1995 or 1997, and whether I was using Netscape Communicator 4 or Xena Navigator 3 at the time, doesn't really matter to the story. Even Netscape 3.0 supported alert(). And in those days, there was no way to escape a while (1) { alert() } loop except to force quit the browser. What I definitely remember is that one day, sitting in the chat, somebody posted a JavaScript alert(). This appeared once or twice more over the course of an evening. I don't specifically remember if I myself encountered someone putting alert() in a loop, but sometime that evening in one of the "cities" someone must have tried it. Within 24 hours of that first alert() being posted, Geocities HTML Chat was gone. Geocities simply removed it from the Internet. We had no indication what was happening, nowhere to go for news, it wasn't like there was a forum somewhere we could switch over to. The chat was our one way of reaching each other, and it was gone. About 48 hours after the takedown, the Geocities chat URL suddenly went back up, this time hosting a completely different, Java-based chat app that had clearly been set up in an incredible hurry. We were devastated. The Java applet was just not the same. It not only lacked the Godmode formatting capabilities of the old HTML Chat, it had no formatting at all. And it was slow, and clunky, and flickered constantly, because it was a Java applet. But Geocities was indifferent to our complaints. What is clear in retrospect is that Geocities probably literally did not have the ability to fix the HTML chat. Easy as it is to forget today, "internet companies" and websites in 1995-1997 were not by nature software developers. Many companies that ran websites probably had no software developers on staff at all. Whoever originally wrote the obviously tiny UNIX C program that must have powered the HTML chat— take in HTTP POST on socket A, push received bytes directly to sockets B through Q, do nothing else— probably no longer even worked at the company, and if they did, they probably lacked the technical skill to make the program any smarter than it was. Sanitizing HTML input is not trivial, and the best practices for it weren't developed yet then. Geocities did not actively maintain, and probably at an executive level did not even understand, this thing that they were hosting, until one day they suddenly discovered they were hosting a chat app where any griefer could at any time irrecoverably lock up every user's web browser. So they did the only thing they could do, which was to download or license as quickly as possible an off-the-shelf chat solution, which of course was not going to be anything like Geocities HTML Chat because nothing, before or since, has ever been like Geocities HTML Chat. No one would ever create something like Geocities HTML Chat on purpose. It's simply too bad an idea. I don't know how long the Java-based Geocities Chat endured, or what if any community it formed. My community was dead. The very few of us who could get the Java chat to run at all met up in the new SiliconValley room over the day or so after the relaunch, said our tearful goodbyes to each other, and departed. It was over. I took up IRC. 9. What, if anything, to take away from this? Geocities HTML Chat changed my life. I'd used BBS-like communities with message boards before, I had a web page (not on Geocities) before I found the chat. But this was the community I imprinted on. It was my first experience with the Web as something immediate, realtime, where a web page meant being in a place, with other people. It got me used to a mode of being online as an ever-flowing stream you dip in and out of, where you simply lay back and let a world wash over you. But more than that. As a community chat app, it gave me an entirely unrealistic expectation of user freedom that nothing that followed has ever lived up to. On Geocities HTML Chat, every user was a god. The powers an individual user had there were not verbs granted by the app, the power was ours, inherent, we could reach out and reshape the matter of the place itself without limitation. Other than kicking (terminating a connection) there was nothing the site administrators could do that we could not, in that place. There is some very small way that every website, or online community I've used since has been, a little bit, a disappointment. I tasted true freedom, once, and BBCode or even Cohost's security-boxed HTML passthrough, however generous, cannot live up to it. Someone once taught me that the proper form of the Internet is a thing where each individual person can do anything, up to and including eventually destroying the space itself. When I use, or design, online applications, I am dissatisfied with anything other than total scriptability. I dream of Twitter clones with LocalStorage-sandboxed user JavaScript and arbitrary server-side metadata storage that would let you design secondary apps attached to profiles, embed Twine games in individual posts. I look at VRChat or Second Life and all I see is the limitations in the sandboxed scripting, the points where a VRChat employee could write a tiny AI chatbot to follow you around but the end user with their tinkertoy primitives cannot. I develop anything at all for the modern Web and all I can think about is the variety of things a native application can do with ease but Apple denies me in my web-sandboxed jail. Within me rages a tiny, twelve-year-old god, now squashed into human shape, unable to comprehend where its powers have gone, and nothing less than everything is satisfying. ¹ "Tokyo" was the only Asia-related category; either they thought no one would be talking about Asia unless it was to talk about anime, or they assumed everyone talking about Asia-related subjects would be happy condensing under "Tokyo". Note of course there would be absolutely zero websites by actual Japanese users in the Tokyo community, since those users would be using geocities.jp, which had its own twenty "cities" and managed to survive a good nine years longer than geocities dot com, sunsetting in 2018 to .com's 2009.
gibwar

@mcc I had completely forgotten about that. I remember that and hanging out in the yahoo games rooms as well. Thanks for dusting off a memory I had long forgotten about!

@mcc same! I mainly played their pool game to all ends of the nights. I made many a few good friends there that eventually migrated to IRC. I also think there was an othello/reversi game on there too but I'm not finding screenshots of it so I may be merging game sites.