
Maybe WordPress is kinda good, actually?
After spending the last year or so working with a terrible pseudo-ERP at work which includes the worst CMS you’ve never used before, I found myself sorely missing WordPress. I guess you don’t know what you’ve got until it’s gone.
Feels weird reflecting on how I used to think about this stuff. I remember the first time I launched a website to production using Gatsby 2.0, and I thought Gatsby was the greatest thing since sliced bread. I don’t think I’d be able to handle the ten second dev server updates these days, and I minimise my React (and JavaScript) authoring as much as possible.
Over multiple roles I found myself working with WordPress extensively, and I developed a strong negative opinion of it at the time. I think that was driven by the experience of using very poorly-managed installations with my marketing hat on, and cutting my web development teeth during the transition to Gutenberg. I was very vocal about my dislike for WordPress at the time.
Before I start singing praise, I will note that I think the main reason there are so many terrible WordPress installations out there is the huge number of foot-guns floating around the WordPress ecosystem. And maybe inheriting the management of a bunch of historically mismanaged sites as a full-time job might not be the path to a happy life.
Honestly, I think bad pagebuilders like Divi and Elementor are much bigger contributors to the prevalence of bad WordPress sites than WordPress core itself.
If you fire up a fresh installation of WordPress core without any fluff in late 2024, it’s actually a pretty good system to put together a website that can run with good performance on a very low-end VPS (almost always worth setting up page caching though!).
A vehicle for content and styles
Thinking back to my Gatsby days – all I was really looking for was a way to package up a bunch of HTML and CSS and put it on the internet. I don’t want for too much more than that today.
I think part of this is about choosing the right tool for the job. Any work I’ve done in the past, and likely will do in the future is for small-to-medium organisations in Australia – none of which have the technical or financial means to employ a dev team capable and fast enough to manage maintenance and feature development for something like a NextJS app.
Gutenberg
I like Gutenberg. It’s not perfect, but it’s pretty damn good, and I appreciate that it gives a lot of space for devs to bend it to their will.
My biggest criticism of vanilla Gutenberg is the inadequacy of the default approach to layouts, both at the template and content levels. My view is that the columns, groups, and block width settings available by default are too simplistic, and are far too prone to issues with different types of content displayed across different viewport and container sizes.
But I’m happy, because everything was there for me to build my own layout system. It took a lot of time and tears to get it to work, but now it’s amazing for both myself and others to use. Even though my custom layout blocks are complicated, the ability to copy/paste blocks and create patterns & templates makes it possible for anyone to manage complex layouts with very little training.
I’m willing to work with a few minor annoyances because Gutenberg allows me to work so quickly, and how empowering a properly-managed instance can be for non-technical users. You get a big thumbs up from me, Gutenberg!
For the devs out there – here’s a quick little post about removing default Gutenberg CSS and restricting what blocks are available for editors.
The server
One of the things that drives me up the wall about the pseudo-ERP in my current role is the hosting. It’s hyper-unreliable, and runs on a hyper-underspecced shared CPU for all tenants in Asia-Pacific. There’s at least ten minutes of downtime every day, usually more. And the price you pay for such poor service is an insult worthy of the Burn Book à la Mean Girls (2004).
So I have a new-found appreciation for the ability manage the server a site is running on. I just don’t think that it’s reasonable for server response times to move slower than my hands and synapses in 2024. When the computers keep up, I can get so much more work done.
The green web
As soon as I learned about the energy consumption of the internet via the Green Web Foundation, I’ve been interested in doing what I can to make sites that minimise harm to the planet.
I think it’s cool and kinda hopeful that this is one area in which environmental and business goals always align. Making an efficient website is always good for both business and the planet.
As far client-side energy usage is concerned, it’s pretty cut-and-dry as I understand. Serve optimised images, minimise network transfer, do all the good frontend dev stuff, and you’re doing good things for users and the planet.
Server-side, I don’t think it’s quite as simple. If you think of a completely static Eleventy site on a “serverless” system like Cloudflare Pages compared to a WordPress site without caching, it’s a clear win for Eleventy.
But how much of the internet’s traffic goes through fully static Eleventy sites? And how much energy gets used for each build and deployment? And how many previous deploys are saved somewhere?
So I think a WordPress site with a good caching setup versus something like a NextJS app that does a mix of static and on-demand generation on serverless functions is a better real-world comparison, and one that helps me to self-justify running WordPress with regards to energy consumption.
Wholegrain Digital are leaders in the green web space, and they do everything on WordPress, which gives me a feeling of confidence about the choice too.
I don’t know anything 100% conclusive, but this is now a WordPress site, and here’s the Website Carbon Calculator results for this page – take it all with a grain of salt, and please do get in touch if you have any thoughts or info to share on the matter!
Collaboration
I do love a good static site generator, and as happy as I would be managing my own business around an Eleventy site, it very quickly becomes less feasible when you add even one other person into the mix.
If you stick with the SSG, you’ll need to figure out some sort of CMS, and do a lot of work to get a lot of functionality that WordPress provides out of the box. None of which is perfect, but again I think about this with a view toward suitability for the kind of organisations I work with.
An example
Let’s say you’re building digital infrastructure for a small organisation in Australia that needs a good content editing experience for a non-technical team, provides user accounts, and maybe you want to throw in a CRM, email marketing, and form functionality too.
You can do that quick-smart on a shoestring budget with a great result on WordPress if you know what you’re doing.
Doing that serverless, you’re going to need a solution for accounts and auth, a headless CMS, a CRM that probably scales in price based on contacts, some way handle form submissions, and a bunch of dev time making everything play together nicely.
That just doesn’t add up to me.
I’ve got a bad feeling about this
Even writing that makes me feel a little uneasy though. I really need to stress how important the “if you know what you’re doing” part is with WordPress.
Using WordPress, one finds themselves surrounded by 20,000 pits of failure just waiting to consume them after one misstep.
Using a nice SSG like Eleventy, one finds themselves surrounded by pits of success. There’s a lot of implicit guidance towards a good end result.
Worse than either option is a painfully expensive, woefully inadequate something-else with thirty years of bad development and a fleet of slow servers behind it.
In conclusion
I feel pretty bullish about recommending WordPress for most of the use-cases I encounter these days. My confidence there is largely driven by prolonged exposure to a different monolith system that is somehow slower and less fit-for-purpose than the worst WordPress installations I’ve ever seen.
Even in the midst of all of the drama surrounding WordPress right now, I’m looking at it in comparison to the system I work with day-in and day-out, and I don’t feel any hesitation to say “go with WordPress”.
Just brush up on your CSS, JavaScript, React (for Gutenberg), and PHP, and don’t solve every problem you encounter with a sketchy plugin.