(Well, sort of)
Let's call it The Big Blue Blob, and I've hated it for ever.
This isn't a new opinion. I'm not jumping on some current developer bandwagon. I've been quietly disapproving of it for a very long time, while watching it become increasingly difficult to avoid.
“But millions of websites use it.”
Yes - that's rather the problem.
Once upon a time, it was actually quite good.
It was a blogging platform. You wrote something. It stored it. It displayed it on a website.
If you wanted to write a blog without learning HTML, PHP, databases and how to make Apache stop throwing errors at you, it was a perfectly reasonable solution.
You could install it, choose a theme, write some words and publish them.
Job done.
Somewhere along the way, somebody decided that a blogging platform should also be a content management system, website builder, e-commerce platform, membership system, SEO platform, booking system, page builder, newsletter platform and probably a toaster if you install the right plugin.
And that's where things started to go wrong.
The Big Blue Blob's answer to almost everything is: Install a plugin.
Want a contact form..?
Plugin
SEO..?
Plugin
Security..?
Plugin
Caching..?
Plugin
Gallery..?
Plugin
Membership..?
Plugin
Make the plugin you just installed work properly..?
Probably another plugin.
Before you know it, your website has 47 plugins installed, three of which haven't been updated since 2019 and one of which nobody is entirely sure why it's there.
And that's before we get onto themes...
Or page builders...
Or plugins for page builders...
Or premium versions of plugins...
Or add-ons for premium versions of plugins...
At some point you're no longer building a website - you're assembling one.
This is the bit that really bothers me.
I like knowing what my application is doing.
If I write something, I generally know why it's there. If something breaks, I can follow the code, find the problem and fix it.
With The Big Blue Blob, you can end up with layers upon layers of somebody else's decisions.
And somewhere in the middle of all of this is the bit you actually wanted to build.
Good luck finding it.
And that's true.
Up to a point.
It's very easy to build something.
It's much harder to build something clean, maintainable and predictable when you've bolted together half a dozen third-party solutions and asked them all to play nicely together.
It's the difference between putting a shelf up and building a house.
Both involve screws - but that doesn't make them the same job.
This is where things get uncomfortable.
If you have a hugely popular platform powering a substantial chunk of the web, it's going to be a target.
That's just reality.
Add thousands of third-party plugins, themes, extensions and installations, all maintained by different people with different levels of competence, and you have an enormous attack surface.
You then get the familiar routine:
“Critical security update available.”
Excellent... Update it... Except that update has broken the theme... So restore the backup... Except the backup plugin hasn't run for six weeks.
And now the client is asking why their website has disappeared.
A popular ecosystem attracts attacks. That's inevitable. But when your entire website depends on a collection of independently maintained components, you have created a lot of moving parts.
And moving parts break.
This is probably my biggest objection.
The Big Blue Blob has become a solution looking for problems.
It can do almost anything.
And that's impressive.
But being capable of doing everything doesn't mean it's good at everything.
If I need a bespoke business application, I don't want to start with a generic website platform and spend three weeks persuading it to behave like the application I actually need.
I want to build the application.
If I need a simple blog, fine. Use a blogging platform.
If I need a brochure website with a few pages and a contact form, there are dozens of simpler ways of doing it.
But somehow we've arrived at a point where the default answer to almost any website question is:
“Have you tried The Big Blue Blob?”
Well, actually it is a little bit personal.
I've been building websites since the days when Notepad and a browser were considered a perfectly adequate development environment. I've built my own CMS. I've built applications from scratch. I've used frameworks. I've spent years working out how software fits together.
These days I use Laravel for a lot of my own development, and sometimes my own CMS where it makes sense.
That isn't because I think everyone should write everything from scratch. Quite the opposite.
I'm perfectly happy using the right tool for the job. That's the important bit.
The right tool for the job.
Not the tool everyone else happens to be using.
Just because you can... I think that's what annoys me most.
Yes. Obviously.
I hate the bloat.
I hate the plugin dependency.
I hate the endless updates.
I hate the way apparently simple websites can become frighteningly complicated underneath.
I hate that when something goes wrong, the first question is often “which plugin caused it?”
And I especially hate being handed an existing installation and being told: “It's quite simple really.”
But I will concede one thing. It made publishing on the web accessible to people who otherwise wouldn't have been able to do it. That's a good thing. It just got rather carried away.
What started as a reasonably good blogging platform became the Swiss Army knife of websites.
Except this Swiss Army knife has 137 blades, requires six subscriptions, occasionally locks itself, and needs a security update before you can use the corkscrew.
I'll stick to building the thing I actually need.
And The Big Blue Blob can carry on being The Big Blue Blob.
Just don't ask me to maintain it.
The best software isn't the software that can do everything.
It's the software that does what you need, and doesn't get in the way.
The Big Blue Blob can carry on being The Big Blue Blob.
Just don't ask me to maintain it.