Replace Wordpress with Static Site Generation

Over the years, I’ve become more and more enamored with static assets. Don’t get me wrong, there’s a place for dynamically generated content. But after spending 15+ years building webapps and websites, I’ve reached the point where I truly think the majority of the web is overcomplicated. Wordpress should die in a fire.

Harsh? Yes, probably. But the primary benefit that Wordpress provides is that it enables users to produce their own content and publish it immediately, rather than relying on a developer of some flavor to make the changes in code and push it up to the server. 15 years ago, that was revolutionary and the explosion of cheap Wordpress hosting is the proof in the pudding. Realistically, cPanel exists almost completely because Wordpress shattered the website industry and took over.

Now, however, websites are huge and bloated, and Wordpress has become a development platform in and of itself. Setting aside my distaste for Wordpress itself, the underlying issue I want to address is that the web is, currently, overgrown with websites that could honestly just be a static site. Wordpress is just a symptom.

The majority of sites out there could easily be statically generated. With potential exceptions for fast-paced-content-creation sites like most social media or forums, most websites could just be a collection of static HTML pages, pre-compiled from a CMS database of content, with maybe a small API sitting on a server to handle some dynamic data where needed. Your business website doesn’t need Wordpress, it just needs a way to let your marketing person write articles in a nice, friendly interface, and then publish it so users can read it. That need? That’s for a CMS, not for a fully dynamic hosting framework.

Most websites are extremely static in their content. Even I, someone who enjoys writing, don’t publish as often as I’d like to, and even if I did, it’s not often enough that the site needs to be dynamically rendering my content. Running a full server with PHP or Python or Ruby and frameworks and a database just isn’t necessary, and would honestly be extremely wasteful.

My business website is running Django, and it’s rather embarassing how much of “never” I update it. I take advantage of pretty much none of the features that the framework gives me, because I simply don’t need it. I could (and eventually probably will) easily rip out the entire thing and replace it with Hugo, because like most businesses, it just needs to tell folks who I am, what I do, how to contact me, and give some social proof of my capabilities. I just don’t need the dynamic stuff, and I’d put money on your website not needing it either (or at least, nothing server-side dynamic; reactive frontends are still static sites).

What the industry needs, in my not so humble and ridiculously opinionated view, is a CMS that sits on top of a static site generator and provides the pretty user interface that the users want to write their content in, and then handles all the SSG nitty-gritty work behind the scenes.

“But Joe, what about plugins? How will the average non-dev be able to add nifty widgets and such to their site?”

The same way we do it everywhere else: plugins. If the admin UI needs to be modified, let a plugin do it. That’s how Wordpress and other systems do it, nothing changes here. It just isn’t running in PHP on a Wordpress server, it’s running in the CMS UI app, and at compile time. Because there’s a CMS UI and app of some sort still in the workflow, you’re not sacrificing any functionality or user convenience.

If the content being served up needs to be dynamic, that can be done either at compile-time via plugin, or client-side via some form of reactive code that was injected in and might make dynamic calls to an API. Honestly, how much of your site’s content really needs to be dynamically generated on page load? I’m willing to bet it’s a lot less than you think.

The result of this?

  • Faster websites
  • Less compute resources required and wasted to generate and serve up the same content over and over
  • Less bandwidth used

And most importantly, we can finally get rid of Wordpress, which will produce a disturbance in the Force as if a million developers all cheered at once and updated their resumes.