Hacker News new | ask | show | jobs
by dubcanada 2095 days ago
I'm obviously in my own bubble, but I don't understand people complaining about WordPress.

WordPress is by far the worst CMS you could possibly use, every other single CMS is better in every capacity.

Let's go through why

- Uses PHP 5 spaghetti code with a handful of garbage event listeners and output buffering

- Has no integration with composer at all

- Doesn't have any form of content types without plugins

- Has no cache, no theming engine, no multi-language, etc etc

- Beyond a media library it has literally no aspects of a "content management system"

It's built for a simple blogging platform and for that purpose Gutenberg is amazing.

Why do people continue to try and shove weirdly hacked on garbage plugins on top of basically a glorified blogging platform is beyond me.

6 comments

Literally everything in your list is about developers.

Literally nothing in your list is about editors or end users.

Maybe take a look at the words "content management platform" and consider whether maybe developers aren't the most important people in this particular world.

Most people love WordPress because most people aren't nerds. They want to easily publish content using a familiar and intuitive interface. They couldn't give a monkey's about whether it's written in PHP, Django, Perl, some Jamstack fad or BBC basic.

Most of this plain isn't true - afraid it does feel very much like a bubble there!

> - Uses PHP 5 spaghetti code with a handful of garbage event listeners and output buffering

I mean it has listeners for almost every event you might want to interupt and trigger something on that are well documented and have been for decades.

The PHP 5 code is very much legacy so I will grant you this.

> - Has no integration with composer at all

Composer support is absolutely fine and there are well maintained ways of keeping plugins and themes under Composer and have been for many years.

> - Doesn't have any form of content types without plugins

Yes, but adding further content types at the level of code or these plugins is easy, trivially so.

> - Has no cache, no theming engine, no multi-language, etc etc

It has several caches that are very powerful indeed, including those included by default. PHP is a theming engine.

Internationalisation built into the core, I'll grant the multi-language support is not as good as it might be. Could be better.

> - Beyond a media library it has literally no aspects of a "content management system"

I mean, people use it to run newspapers, so not sure if this is true. It depends what you need.

The organisations behind WordPress decided to meet their user need and provide a really good, well understood platform for content management with an extensively tested UX experience of end users. They prioritised this over developer niceities.

If the purpose of software is to augment human capacity and be genuinely useful, this was the right decision. The rough edges from a developer experience perspective have been largely smoothed off by a well established ecosystem like Roots.

> Composer support is absolutely fine and there are well maintained ways of keeping plugins and themes under Composer and have been for many years.

You need to use a third party service or setup.

> Yes, but adding further content types at the level of code or these plugins is easy, trivially so.

Compared to what? Drupal? CraftCMS? Joomla? Where you go to a UI and do it all, versus installing a plugin with it's own quirks or using functions.php which ends up being the last place you want to touch after your done?

> It has several caches that are very powerful indeed, including those included by default. PHP is a theming engine.

No it doesn't, you need a plugin like W3 Total Cache. On their Cache page they tell you to use a plugin. https://wordpress.org/support/article/optimization-caching/

The other caching setups Opcache, Varnish are either integrated in PHP or a completely different service.

PHP is not a theming engine. Blade, twig, etc are theming engines.

> I mean, people use it to run newspapers, so not sure if this is true. It depends what you need.

Newspapers are glorified blogs, so yes that makes sense that they run on WordPress.

But the problem isn't random sites use WordPress, the problem is people build weird monstrosities on top of a really garbage system.

Fair enough. Probably at "agree to disagree" here.

I'll agree that its easier to do custom post types on other CMS. But sometimes at the cost of real overheads in terms of complexity for users to swallow to get there.

Caching is built into the core, which is what all caching plugins leverage, the interface to it is hidden.

PHP is a theming engine.

I've never got why people escape into Blade, Twig or so on. PHP was designed to have loops, logic, to take variables and so on and interpolate them within HTML. It has an alternative syntax to make this easier. It's one of the unique capabilities the language has over almost all other languages you'd use on the web. More often than not you end up escaping into pure PHP in any case in something like Blade.

> But the problem isn't random sites use WordPress, the problem is people build weird monstrosities on top of a really garbage system.

Don't think its garbage for the reasons explained, but I think this true of all software projects. Seen plennty of Drupal, Laravel or Joomla projects end in this state.

I've been learning Laravel and Statamic this year. Both are a joy to use. I've been building WP sites for about 7 years. My goal is to never build another WP site again. Gutenberg is just one reason why.

I think one thing that's missing from the templating engine argument is WordPress' data model. While PHP may be a templating language WP's API to access data is a huge pain. A great example is wp_nav_menu. To modify it in any meaningful way you have to use the Walker Class. Seriously? It's an array. If WP's data model were better you could definitely 'foreach' your way through that thing... but you can't.

Antlers has a shorthand syntax to cycle through its navigation type. Laravel doesn't have a native navigation type but when I set one up it's pointing to table of pages. At this point I can use Blade to go through that table and pull out the appropriate title and url.

Why is this nice? No more "#" for placeholder menu items. More control over the Aria roles, etc.

This is just one win, in my experience, of using Laravel/Statamic.

Edit: for grammar

Massive fan of Laravel. If the relationship between Statamic and Laravel is similar to that between Wagtail and Python, plus the static storage, it seems like it would be very good indeed.
I don't know anything about Wagtail or Python so I can't speak to the comparison. However, I chose Statamic because it's a Laravel package and can be extended via Laravel. That adds a lot of flexibility to it. From what I understand Livewire is also compatible with Statamic.
> I've never got why people escape into Blade, Twig or so on. PHP was designed to have loops, logic, to take variables and so on and interpolate them within HTML.

Compare a Twig theme with a PHP based one. The former is much cleaner because views and controllers are separated, there's clean ways to reuse views, and the syntax is cleaner and more concise for common operations. The standard PHP approach in WordPress gets messy really quickly.

Related, but I can't believe how much responsibility WordPress theme writers have to manually make sure echoed strings are escaped properly (Twig has the same problem because it would be fighting against WordPress otherwise).

Mate, Wordpress does not even have a way to manage your images without using a plugin. People using Wordpress to run newspapers and magazine sites have to use a hacked together solution involving either more plugins or writing custom code. As someone who's had to run a magazine site with Wordpress, I can painfully recall all the issues I've faced and cursed the dev team.

When you have a few hundred images (and that's just for a small site, let alone newspapers), do you really think having just a dropdown with media type and month for a filter (out of the box) suffices? Asset management is a core feature for any large-scale media outlet CMS.

You probably understand these points better than I do!

I just don't think it is truly as bad as has been made out by the initial comment.

> PHP was designed to have loops, logic, to take variables and so on and interpolate them within HTML. [...] one of the unique capabilities the language has

Totally agree, but unfortunately PHP's integration within a markup processor is quick and dirty, without consideration for context-dependent escaping and quoting etc. hence continues to give rise to a large number of HTML injection attacks.

This is true. I understand other languages (for example Go) have very nice features of this kind - contextual auto-escaping and so on. However a lot of other languages also have these footguns around escaping and security.
> I mean, people use it to run newspapers [...]

I wouldn't use that as an argument.

For me many maybe even most newspaper sites are just plain out bad designed.

They tend to be overloaded, slow to load, easy to overlook things easy to get accidental lost and hard to find things from lets say a week ago.

WordPress is more about the ecoystem than the CMS itself. If you just install WordPress without any plugins or themes, it's pretty useless.

WordPress is so popular because you will find a plugin or theme to fit almost any need.

The majority of the users are not developers that care about composer, WP source code or out-of-the-box potential. They are users who know that once they install this platform they can create whatever site they want in a few hours doing a few Google searches and maybe spending a few hundred bucks.

Wix, Weebly, Squarespace and Webflow all do this better than WordPress now.
Are those alternatives free or self-hosted?
Also, Statamic is free for personal use now. If you've got some time download a copy and play around with it a bit. It really is the most fun I have had building a site in years.

Anecdotally I have heard that many clients prefer Statamic's and CraftCMS' editing experience over WP.

Never heard of Statamic, but that's a really cool landing page!
Thanks!
Nope. But anyone that needs one probably isn't a position to self-host and is going to require the services of a developer negating the costs of the services anyway.

They also get free suppport. You don't get that with WordPress.

> But anyone that needs one probably isn't a position to self-host

From what I've seen, almost all hosting providers now offer one-click installs for WordPress.

Sure, but at that point the user is now paying for web hosting rendering the cost issue moot. And when they do run into issues who are they going to turn to? With the exception of WPEngine my, and my client's, experience with support from web hosts is garbage.

Aside from that, what's the UX like for a client spinning up a new WP site on GoDaddy or Bluehost vs. a new Wix, Weebly or Squarespace site?

In the end most of this is pretty subjective. If you like WordPress keep using it and recommending it. I used to love it and don't anymore. I think my clients get a better value using Statamic or one of the other options I've pointed to.

sure, but wordpress can cost much less to run
Honestly, I'd love to see some numbers these days. If you're a developer, sure. But I've seen very few non-tech types that manage their own WP sites. And the ones that do tend to put a a lot of time into tutorials of various kinds. Start throwing a price tag on that time and I suspect WP becomes more expensive.
Like PHP in general, it was easy to get started with and now there are tons of developers pushing it in the ecosystem. Now that so many people know it, it's self-perpetuating at this point.
"Why do people continue to try and shove weirdly hacked on garbage plugins on top of basically a glorified blogging platform is beyond me."

I've been critical about Gutenberg, but I'll respond to this by sticking up for WordPress a bit here.

Others have answered the technical questions, but on your point above, that's not what agencies like mine do. We write custom theme code from scratch (although we do have a base framework that we built as a starting point) for clients, and use WordPress as a base system. It deals very well with those kinds of things as long as you know what you're doing. We spend a lot of time with clients up front to understand their use case, and build something robust but user-friendly. The first site we built, for a cross-UK social enterprise with over 200 services, is still going strong. Just because some people (that is, a lot of people) think you can chuck some free hacky plugins at WordPress and get a website doesn't mean that's all it is. It's evolved to a point (well, had evolved to a point) where it was a great base CMS on top of which you could build quite complex websites.

There's a decent ecosystem of paid plugins, like Gravity Forms and SearchWP. If you know your stuff there are also some great open source ones, like CMB2.

Some other reasons why agencies in particular stick with WordPress:

1. People know it, are familiar with its conventions, and actively request it. It allows organisations who are growing to jump from their little Wordpress site to something more complex without having to relearn a CMS. If you're an organisation that's familiar with a CMS there's a significant time cost involved in your staff learning how to use a new one. That's not a good reason on its own for not picking a different CMS, but it's a barrier when the CMSes you're comparing a much of a muchness.

2. Because it's so ubiquitous, if you want to change agency, that's relatively easy, reduing organisational risk. (Choosing an agency that care about quality, however, is a different matter). If you use something that's not common, you risk having to rebuild a site from scratch because no-one else can take it over.

3. There are excellent WordPress hosting companies out there that take away the legwork of doing things like full page caching, CDNs, git, LetEncrypt etc. etc. We use one that for ~$500 a month offers exactly what one of the hosting companies listed on the CraftCMS site does, but we can have 35 separate sites, whereas the same money would get you just two on the Craft CMS host.

Honestly, I think you can do pretty much anything you want in WordPress and Drupal, and possibly CraftCMS too, although I haven't gone deep into Craft yet. What makes a huge difference is getting an agency that knows their stuff and actually cares about both build quality and high-quality hosting.

An Outlandish experiment.

Yes I know there is third-party plugins and services. I mean "core" wordpress. Not what a bunch of other's built.