Is WordPress Always the Right Tool?

tl;dr readers: no, but yes 🙂 Read below for more brainstorming.

Last year most people around me who are not involved in the WordPress community kept saying: “WordPress is a simple blogging platform and wouldn’t work for large projects”. I gave a talk in April that shed some light on few of the largest platforms/sites available out there, based on WordPress. Now most folks are either still into the “simple blogging platform” thing, or “WordPress is too large for a simple site/blog”, which is kinda not what I expected – transition that would skip a whole phase/branch among various people.

Is WordPress a blogging platform?

Why yes, it is. Deep inside it’s core WordPress is still meant to serve blogging websites, based on it’s nature. You could definitely maintain a blog (just as I do here), support comments, categories and tags for the entries. There are social interactions with users and communication with some social networks, which facilitates the process and streamlines the visibility, commenting and so forth.

There are different products like Ghost, Medium or Tumblr that try to stress on their simplicity and (not directly) blame WordPress for being too heavy and complex lately. Eric wrote a great post on his blog as a reply to some random author with eccentric (for me) way of thinking. There are indeed other solutions that could be used for blogging, just as having a plain PHP script that supports login and posting a title and content in a simple form with a submit button, and a listing of all recent entries in another page. This would be a good fit for blogging too, well unless you want to support hundreds of other things and save time from writing from scratch or hiring other experts for that.

What about a CMS?

If you think about the abbreviation CMS – Content Management System, then it certainly is. Posts, comments, pages, terms – that’s some content out there, and all CRUD (Create, Read, Update, Delete) operations in the admin are the management process for handling all that data. User management is also in place, with several default roles (that could be more granular using the right capabilities), extensibility – checked, so WordPress surely is a CMS as well.

I had that meeting last week with a company owner who is looking for a development team for his news website. We have discussed that project over coffee and he shared some thoughts based on several meetings with web development agencies (8-40 people each, roughly). Around half of them told him that WordPress is not a good fit for a news website, it’s slow and the UX of the admin is terrible.

I liked that specific example of “posting a new article happens too slowly”, so I was hooked and we had the short convo:

Me: Have you used WordPress before?

Client: Yes, I was a corporate blog administrator two years ago.

Me: Was it too slow to create a new post?

Client: I can’t compare.

Me: Okay, how long did it take you to publish a new post?

Client: As much as posting a Facebook status.

Me: Is posting a Facebook status slow and annoying?

Client: Not at all.

My personal vision for a news website is pretty much a well-developed blog. Often with more authors, categories and more regular posting, but generally that’s pretty much all about it. There are bloggers who take blogging to the next level and enhance their simple blogs to blogging portals, that could easily be labeled as news websites. It’s just about the ownership or content type most of the time.

Does it make sense to bend WordPress into something that isn’t natural?

Well no, and yes. I would classify the non-standard projects (the ones that fall into the top 1% category) by verifying two different parameters: the site load/entries (like, user visits or amount of content in the database/s) and the variety of features and uniqueness of both the admin and the frontend.

So, taking the first example would be “scalability”. Can WordPress scale? Apparently it can. The platform is meant to be used with content in mind, and large heavily content oriented sites have been live for years, serving millions of entries to tens of millions of users monthly. There are also tools in place for larger teams to work professionally and safely.

The second argument, the uniqueness and flexibility, is creativeness in the design/UI aspect, usability of the admin (as a custom WordPress admin panel), and hundreds of fancy features for previewers, sliding Flash stuff, embedding exotic APIs and networks into the site, and much more. I.e. stuff that most people won’t need, and is not supported out of the box or as a plugin yet, but could be the best selling point a business could have.

There are numerous plugins for everything though, including for caching and distributing content over servers, and hundreds (or thousands) of articles for scaling WordPress; there are Managed WordPress Hosting solutions that would help you with this (security and speed-wise).

So, is WordPress the right tool for every job?

Well no, it’s not, but it’s a great tool for many jobs really. As long as you have enough experience with WordPress and a few other platforms and technologies, you could easily compare options and decide for yourself.

For example, in 2008 I had the plan to start a business selling a Java-driven CMS. 2 weeks after my R&D phase started, I threw the idea in the bin. Why? Well, a Java CMS would take over a year to build the essential features, it would be slow by default (compared to alternatives), new features would take forever to be built for new clients, and the hosting is 3 times more expensive than PHP’s (and less, much less popular). So having done that research (after developing in both Java and PHP for a while) I was able to conclude that my idea is dumb and non-practical.

One of our WordPress meetup members asked us to do a workshop for the next meetup building an online browser game. Even though projects such as Gamefroot have been built on WordPress, I would probably pick a different tool (or likely start from scratch) for a browser-based game since I don’t see myself utilizing enough of what WordPress provides, and I will generally have to use about 20% of it’s features and spend a few months to build the rest. There are certainly other options (and one could still build that if planned carefully), but that’s probably a scenario where I don’t find WordPress suitable.

For large enterprise projects (that deal with high end analysis, payments etc) I’ll probably pick a Java stack, a bit more restrictive and mature platform. It’s heavy and slow compared to WordPress, but I’d still consider it more reliable (experience-wise). Also, if speed is crucial, I’d lean to a solution from scratch in a lower-end platform (I wouldn’t rely on WordPress to handle my break engine of the latest SUV and probably prefer a perfectly well-tested asm/C solution for that).

However, almost every content-oriented project that relies on some content (whether be it posts/pages, or air conditioners, products, papers, anything owned by a user with a title and content area), then I’d most likely go for WordPress. Most projects actually use most of what’s built in WordPress – posts and post types, taxonomies, users, themes and some plugins, menus and sidebars… as concepts and implementation – so both time-wise and resource-wise it’s the smart way to go.

Your thoughts?