The Livid

Rock band website redesign and rebuild

Design and development

  • web
  • front-end
  • back-end
  • design
  • PHP
  • MySQL
  • Flash
  • CSS
  • PayPal
  • e-commerce
  • Dadabik
  • freelance

https://www.thelivid.com/

Oh boy, I designed and built this many many years ago.

It’s hard to believe the first version was 20 years ago as I write this, and this version 19 years.

I’m writing this little writeup now because I recently made some changes. But I’ll back up.

The first iteration I built of this band’s website was done in Flash in 2003. It wasn’t long before I wanted to abandon that – maybe to have elements of Flash, but for the bones of the site to be in HTML. Flash was already looking to be on the decline, too.

I had just started learning PHP. In fact, I think my first PHP experience was in installing and modifying the forums which I’d included alongside the 2003 Flash version of the website.

At some point I felt I knew enough to try to build a website with it, and this 2004 version was the result:

  • Clumsily-used functions to save code repetition.
  • Awful use of arrays as data structures, all over the place.
  • Ham-handed first-ever use of MySQL, and implementation of a CMS I found called Dadabik to make an admin panel. (Oh my goodness – it still exists!)
  • An… I’m going to say actually somewhat successful? attempt at early 2000s grunge-style design.
  • Entirely-misplaced early 2000s fan site vibes. Or maybe it was appropriate at the time?
  • A Flash header, because Flash was still cool and I thought it was neat to use it to enhance rather than for the entire UI.

Gradual improvements

As time went on I fumbled my way through adding some pretty neat features.

I built a merch store where fans could by shirts and CDs and stuff and pay through Paypal. That was a totally custom from-scratch integration with a very old version of the Paypal API. It remained active and working for many many years.

Later, a download store was added, so fans could buy digital downloads of music. Again, that was a totally custom solution.

One feature I was super proud of at the time was replacing the gif emojis in the forum software with Flash versions I drew and animated myself. It was pretty neat – the animations could be randomized and were very smooth. In fact, they were pretty similar to the animated emojis we see nowadays in modern IM apps like Telegram. However, each one was its own Flash VM, and there could be dozens and dozens on screen, all trying to animate at once! It was not great for performance!

It occurs to me that I owe a lot of my passion for programming and a lot of my initial skills to this project, since it gave me so much scope for experimenting on things which would actually end up being useful; seeing what I could build, what I could improve. And back in the early 2000s pretty much all websites were a mess anyway, so it wasn’t a big deal if things weren’t perfect.

Towards being more modern, but not really

Eventually, many years later, much closer to now than then, the online stores were replaced with just a link to a Bandcamp page.

And at some point I made some tweaks to very slightly modernize things too: I removed the Flash elements and made the no-Flash alternatives the default, and I cut down on the number of sidebars used in order to give the main content area more space for a larger text size – modern monitors are much bigger than what the site was designed for, and the original font size was tiny.

Away from shared servers

At some point I was in the process of getting all my old work off of shared servers.

There was a brief consideration of retiring the site, but nostalgia got the better of me, and I think of the owner too, and so it was decided it would keep running.

I moved the site to an AWS EC2 instance. The site was written in PHP 4 (or even 3?) and Amazon Linux didn’t support versions that old. So I went through and fixed up a bunch of areas of the code to make it compatible with PHP 5.x – PHP 7 or later was going to be much too much effort. That meant looking at some of my very earliest code years and years later, and… oof. There were a lot of issues in it! But eventually it was up and running on its own server.

This EC2 instance was running a MySQL server, PHP, Nginx, and an email server, it had scheduled tasks to make database backups and renew its TLS certificates, and it had a few other responsibilities. There wasn’t any redundancy, but for such a low traffic site (at least by that time), it wasn’t a major risk.

The problem was that once in a while the Amazon Linux version I was using would hit end-of-life, and I’d have to set all these things up again on a brand new server. It never seemed like it would be worth automating it with Ansible or similar, since it always seemed like “this’ll be the last time”, and so each time I had to remember exactly what the server was in charge of, how to configure it all. And by that time the software stack had probably had major version changes, and configuration might be different.

On top of that, it was hard to remember to remind the client to buy a new reserved instance, so he could continue to pay the minimial price to keep an EC2 running constantly.

Archival

All that effort seemed like a waste, and it was a nuisance every time it became necessary, and so the most recent time the server was in need of a rebuild, I decided to take things in a different direction.

The forums had already been locked for new registrations for many years, since the only new registrations were spam bots. New posts were perhaps one a year or less. Site content needed changing less than once a year too, when a few new songs were released.

So I decided this time to archive the site and go static.

That was a whole process of its own.

I went through the code and stripped out all interactivity and possibilities of duplicate content (which in the case of the forums was a big job), then I spidered the whole site with wget. Figuring out how to host it with each separate HTML file served separately, with the web server treating query strings as literal parts of the filenames, was an adventure I eventually solved with Netlify.

So there we have it – this 2004 website is preserved, forum threads and all, and served with exactly the same URLs it used to be. In fact, it still looks to the viewer like it’s running PHP.

I’ll manually go in and edit the HTML if I ever need to change some content.