How and why I built a geocities-themed website for my birthday
Why
When I had the idea to throw a birthday party that was also a high school prom night from 2003, I knew I would have some explaining to do. I figured I might need an event page like people do for weddings … and then I realized that if I was going to build a webpage, it should be on-theme. Suddenly my mind filled with visions of sparkly comic sans and pixelated gifs, and I became more excited by the idea of the website than I was by the party itself.
I have a deep enthusiasm for committing to a bit. Call it what you will: world building, embracing a theme, going off the deep end — I love fleshing out a dumb idea into its fullest glory, finding all its deepest nooks and crannies. A mentor once told me (of a pun halloween costume I spent too much time on), “It’s this kind of attention to meaningless detail that I’ve come to expect from you.”
How
The Vision
Around the same time I had this idea, I happened across a podcast episode about Geocities that mentioned Cameron’s World. I highly, highly recommend clicking that link because I don’t know how to describe it without showing you. It is magical, transportive, and a true treasure trove. This site provided the aesthetic inspiration for my prom page, as well as the background and almost all the gifs. 
The Host
When looking for an easy, free, lightweight way to make this site a reality, it occurred to me that Geocities would have been the simplest and most on-theme solution, were it not dearly departed from our mortal plane. I googled “modern Geocities” and found Neocities. A heavenly choir of MIDI-voiced cyber-angels sang and I knew I had the perfect home for my prom page.
The Code
I was afraid this was where I would lose steam: actually building the site. It looked so perfectly garish in my head, but my CSS and JavaScript skills are rusty and were never strong to begin with. Plus, there were so many different directions to take it in! Where would I even start?
I was saved by another podcast episode, this one on an unlikely subject: ChatGPT. Up until this point I had no interest in ChatGPT; I filed it in my head alongside NFTs and bitcoin as “hypey tech bullshit that might change the world but will bore me to death first.” It wasn’t until I heard the joyful and imaginative way the guests on that podcast talked about it that my cynical heart opened up to it.
I made an account and started messing around with seeing if it could help with the novel I’m working on and prompting it to help a friend write a break-up text (both with minimal success). I thought more about the podcast and tried to think of the tasks in my life I didn’t want to do, the things that were weighing on me. Then I gave it this prompt:
I pasted the stylesheet it generated into Neocities, alongside some perfunctory HTML, and refreshed the page. I was delighted by the result: florescent pink background with cyan text, drop shadows, blinking, hard to look at for very long. Perhaps most importantly, the CSS included styling for a marquee, which I had not considered but obviously must be included.
I liked it but it was a little more aggressive that what I really wanted, so I regenerated the ChatGPT response. Then I changed the prompt to “generate a css file for an ugly early-2000s geocities website for a high school prom” to get more specific, and then regenerated that response. I played around like this for several iterations, changing my prompts, saving the styling I liked and discarding the parts I didn’t. Every time I pasted new CSS into my stylesheet and refreshed the page, I was delighted. This felt as playful and fun as I always wanted web development to be, but in the past I had always found myself banging my head against a CSS wall. This was new and different and wonderful.
Once I had a basic look I liked, I began fleshing it out with more content and gifs. Along the way, I had ChatGPT spin up the styling for each new piece, such as centering and aligning elements, coming up with styling for the unordered list on the homepage, and my personal favorite prompt, used to create the RSVP button:
I had a long back-and-forth conversation with GPT about the sparkles that I wanted to trail after the cursor. I couldn’t get the code that GPT gave me to work, so I went back to my ex-best friend Google (GPT is my new best friend) and found a CodePen that looked amazing but had some weird buggy glitches. I gave the code to GPT to debug, but the file was too long and it got stuck. Finally I asked it to rewrite the file to be shorter and simpler, and it knocked it out of the park. From there our conversation became collaborative, tweaking it to look just the way I wanted.
In the end, ChatGPT wrote at least 90% of the code on this site — it turned my markdown files into HTML, spun up all the CSS that I then edited and refined, and wrote the JavaScript for the cursor trail, the validation on the prom queen form, and the form integration that allows people to see what refreshments are already claimed on the potluck sign-up page.
Conclusion?
There has never been a better time to make dumb shit on the internet. ChatGPT is making web development fun again. Next time you have an idiotic idea for something utterly useless that brings you joy, please, I am begging you, make it happen. Send it to me! And vote for me for prom queen ;)