With the recent release of the WordPress integration with Gatsby Cloud, many people have posted to their Twitter timeline and praised the two as the dream combo of any web developer. My response? Hell no!
While Gatsby is legitimately good, WordPress is a mess that hasn't been sorted out since its conception. Sure: they've made some progress. The Gutenberg editor has been a step in the right direction. However, the most important issues haven't been addressed yet.
The Developers' Point-of-View
WordPress doesn't have a backbone. No mandatory file structure for themes and plugins. Not a single namespace. Composer support has never been added because of the very nature of WordPress itself. In its current state, it's a developer nightmare.
The absence of a standard structure hinders the ability to write well-integrated, interoperable plugins. The low entry barrier is a godsend in the eyes of interns and junior developers, but it has also saturated the market with non-customizable and inextendible plugins.
Doctrine was released in September 2008. Twelve years went by, but WordPress still doesn't have any first-party ORM. Needless to say, assembling queries by hand is tedious and error-prone. Incentivizing developers to continue down this path is a terrible practice on their end.
You get it. I'm a developer, and I'm unhappy with the current state of things. But what about the actual content?
The Content Editors' Point-of-View
WordPress is a blogging platform, but many companies and web agencies seem to either forget it or not being aware of it. Hence, multilingual, page-heavy websites built with WordPress are not uncommon on the internet. However, localization is--and always has been--a second class citizen.
First, it's handled by third-party plugins instead of being built-in into WordPress. They're planning on eventually integrating it, but this goal is nowhere near completion.
Second, the page tree is confusing, and at times frustrating. If you need to write and translate a page for each branch of your company, it's going to be a bumpy ride.
There are ways to improve the page list view, though. Install a plugin. Easy right? Except that it's too much of a common occurrence. Need to cache your content? Install a plugin. Want to duplicate a page? Install a plugin. Want to do something that is ought to be in the core, but somehow still isn't? Install a plugin.
Am I asking for too much? Am I being finicky and unrealistic? I don't think so. Take Neos, for example. It checks all the boxes and even packs more features: authentication providers, programmatic content migrations, built-in advanced custom fields, and many more.
If Neos can do it, WordPress can do it too. I'm not finicky. It's WordPress that is bad.