Every Stack Decays; Plan for It

By | November 19, 2024

This post is a postmortem and celebration of my old web server that was ten years old before it needed to be replaced instead of trying to update it. Every stack decays over time. If your thinking web development a stack might be LAMP or MEAN. Stack in this context is the web server operating system itself, the HTTP server and any other software layering that makes running a web server easier. My goal in using WordPress for my blog was to create a platform that would allow me to focus on writing without worrying about technical details. The choice of WordPress seemed like an ideal solution at the time—popular, secure, and easy to use. However, as the years have passed, I’ve come to realize that these abstractions often come with hidden costs. Only my lack of experience at the outset obscured the implicit agreement to update and maintain the software abstractions I chose to use.

The Ephemeral Nature of Web Development

Web development is inherently ephemeral. The tools we rely on, whether they’re platforms like WordPress or services such as Certbot, are not static entities. They require regular updates, patches, and maintenance to ensure continued functionality. Over time, these dependencies can become a significant burden, leading to unexpected downtime and increased complexity. Even pillars of modern web development like NPM might not always be available.

The Case of My Blog

My blog, which has been running for ten years, serves as a prime example. Initially, WordPress allowed me to create a website with minimal effort. However, the reliance on this platform meant that I was forced to continually update it. Some updates caused my site to break, leading me to disable auto-updates and lock down the system. This approach worked for a while until the operating system also needed regular updates. When these updates broke my WordPress installation, I had no choice but to freeze the entire stack to prevent further issues. The SSL certificate added another layer of complexity; it needed to be manually updated every three months, a process that became increasingly cumbersome as the support for my operating system waned. Yes the choices I made for my particular layered software abstractions caused many of my problems. Each time I attempt to maintain or improve the site, I find myself caught in the same web of dependencies and technical challenges. The decision to switch to a new server and operating system with long-term support was an attempt to break this cycle by choosing a more stable foundation. However, it’s clear that the reliance on software like WordPress, Certbot, and Virtualmin inevitably leads us down this path.

Considering Alternatives

There are alternative approaches to managing websites and web development that might offer more control and stability. For instance, using static site generators or hosting services for flat files could reduce the need for frequent updates and maintenance. However, these alternatives come with their own trade-offs, such as less flexibility in design and functionality. Almost two months went by where I contemplated using different options before throwing my hands in the air and re-creating my old stack. One of my own favorite, clever and dead end ideas was using HTML as XML to load itself into a Flash app. Flash didn’t last long did it? There are countless alternatives that I didn’t pick in setting up my own web server stack.

Still Worth the Work

While WordPress and other abstractions have made web development accessible to many, they also require ongoing effort to keep things running smoothly. While there is no perfect solution, it’s important to be aware of the hidden costs associated with these abstractions and to plan for regular maintenance and updates.

The inevitable decay of the stacks we choose also offers a chance to re-evaluate our choices. My blog may have been running on that server for ten years with minimal effort, but the ongoing process of updating and maintaining it serves as a reminder of the importance of staying current in the ever-evolving world of web development. Looking back, I’m grateful that my setup lasted that long.

Leave a Reply

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

Comment moderation is enabled. Your comment may take some time to appear.

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