Migrating from Wordpress
I’ve been using Wordpress for my personal blog for over 10 years. I migrated to Wordpress from blogger and for the most part I’ve been happy with the tool. Wordpress currently runs about 40% of the web, 455 Million sites and it's by and large a mediocre tool.
How did we get to a 40% market share with a mediocre tool? Wordpress, run by the company Automatic, has generally embraced open-source and community in their tools and technology. The product was great for a long time and many people still enjoy it. The product has a long history of extensibility in themes, plug-ins and customizations. It's used by countless agencies, fortune 100 companies, major news publications and brands.
But over the last five years the platform has gotten worse. The issues around a good platform deteriorating are a great illustrations that can impact any company or product.
Beware, this is how good product become meh...
Complexity and Features over Simplicity
When a product is initially built, it is by definition simple. It's important for the product to serve a specific target user base and to provide the core and critical features for that base. As a product grows in size it will often grow in terms of complexity and features.
The problem happens when adding complexity at the cost of the core simplicity. When done correctly the added complexity is not observable from the core experience. The complex features can be enabled, the settings can be adjusted to enable the complexity. In user experience language this is called progressive disclosure. It's often experienced as an "advanced option," or occasionally an available "mode." The fact that the interface supports plug-ins, is an example of this. The core doesn't get more complex as the only people who experience the plug-ins are those who require those features.
Over the years, Wordpress has added features and complexity and that complexity has spilled into the core experiences. The worst offender is the new blocks editor, a well intentioned feature that has been years in development and causing problems for all core users. Beyond the editor, the plug-in management, the cache handling, the meta-data, Jetpack, the SEO, themes, categories, tags and more. You can't be an author focused on content, you need to become an administrator.
The core of the issue is the lack of definition of the intended core user of the product. As Wordpress has grown it is now serving a very broad user base. When the product was small, the intended user base was the blogging community but now the product competes across e-commerce, headless-CMS offerings, landing page sites, community forums, SEO optimized micro-sites, and much more. A product built for everyone, is optimized for no one.
Attraction Toward Abstract Models
Developers tend to like abstract models. Most engineering students are taught to use abstract models in their development of software. This makes software engineering easier as it allows flexibility and re-use of code. The mistake that engineers make is assuming that end-users/customers also like abstract models.
Unfortunately most users are often baffled by abstract models of interaction. Compare the two examples of trying to interact with an image. The first example is Wordpress's blocks editor, the second is Microsoft Word.
The Blocks editor creates a beautiful abstraction, a tight relationship between content, document and it's associated properties. Word on the other hand, let's the editor directly interact with their content.
Prioritize the infrastructure vs the writer (user)
As software gets more complex there starts to be more general maintenance features that are required to keep the software working and performing correctly. These include security updates, updates to themes, plugin-ins and the core Wordpress code itself.
For most users the cadence of infrastructure interruptions should be:
- Security Concerns - required updates a few times a year max
- Major Enhancments - optional once or twice a year
- Minor Enhancment - optional 3-4 times a year
Unfortunately the actual infrastructure interruptions are constant. Plug-in authors have updates on a regular basis and these are encouraged to be installed. Theme publishers also push updates, even if the respective themes aren't enabled or used. Minor updates seem to happen monthly. The result is that the system constantly feels out-of-date and fragile. If a plug-in is working well, there's no way to let the system know that you want to focus on writing.
Because the nature of Wordpress has become abstract, the product has trouble building comprehensive features. As an example, it's now common to link a blog, with a newsletter, with social-media. After all, your readers may forget to visit your site when you publish and the combination of email, blog & social keep audiences engaged across channels. Tools like Wordpress allow you to add plug-ins for MailChimp and other plug-ins for Twitter but the combinations always feel cobbeled together, because it is. Cohesive user-experiences need to be built and designed with a user-flow in-mind.
Great design is often opinionated, not neutral.
I'm hopeful that Wordpress does improve but for the time being I'm going to experiment with alternatives. This post was authored on Ghost.io but a number of other suggestions, tools and static generators were offered in response to my tweet:
Opinionated alternatives to Wordpress
- Ghost.io - you're reading this on Ghost
- Super.so - for turning Notion into sites
- Blot - turn a dropbox folder into a website
- Carrd - very simple one page sites
More flexible tools and no-code/low-code site tools
- Squarespace - for assorted sites including blogs and ecommerce
- Wix - simple to complex sites hosted
- WebFlow - more dynamic custom sites
Static Site Generators
An interesting option for developers who enjoy using tools to generate a static website.
Worth a mention... Hubspot, Drupal, Shopify, Joomla, Weebly, and vi.