The Over Prescription of WordPress as an Application Framework
WordPress is Great for Websites
It might seem a bit out of touch for a website and blog running WordPress to condemn the usage of the very system it is operating on. Make no mistake, WordPress is a great, flexible and powerful CMS, which is exactly the reason we chose it. It commands a ~20% market share on the web (as in, one fifth of all websites), and with good reason; it has seen a constant stream of updates and improvements over the past decade allowing it to remain not only relevant but preferable for many implementations. There are a lot of web based niches WordPress can cover in an acceptable if not exceptional manner. However, this broad spectrum often gets developers into trouble, as the notion of a CMS that can do a lot of things frequently mutates into the misconception that it is a framework that can do everything—this is the ‘over prescription’ we intend to address.
WordPress is Less Great for Applications
The trouble with the success and momentum of WordPress is that it sometimes becomes seen as a cure-all for any web based challenge. This has become particularly true in the eyes of businesses or clients who do not know their way around the finer details of web development but have some name recognition with WordPress brand. Less forgivable are developers who bend over backwards to these demands without offering more suitable alternatives, or whom suggest WordPress as a fix all on account of it being the only platform they know. We’ve recently encountered several clients whom are seeking large scale web applications where, at some point in the discovery meeting, the question of WordPress comes up. Mind you, we are talking about stuff that approaches the scale of larger social networks or service based eCommerce exchanges. Upon noticing this pattern, it became apparent to us that there are thousands of articles scattered across the web advising people on when they *should* use WordPress, but not very many that explain when or why they may need to look into a more abstract foundation.
There is a WordPress Theme for Everything
Compounding the problem is the otherwise well-meaning first and third party marketplaces for WordPress addons. Given the market share WordPress commands, there is a lot of money to be made in piggy backing off of its success. The result are for profit redistributable customizations that typically mean no harm to the end client, but often stretch and overburden the WordPress core beyond its intended use. This situation is especially precarious when it occurs at launch of the implementation. Quite honestly, nothing is perfect at launch; some unforeseen workflow or other complication always arises once theory is put into practice. As time goes on, solutions and features can be added to remedy this. However when a system’s foundation is encumbered from the onset, healthy growth of the solution it provides becomes impossible, effectively bottle necking the parts of your business that rely on this technology. As a rule of thumb; the more grandiose the theme/plugin you are building or installing onto your WordPress, the more likely you are to be snared by this trap.
WordPress is a CMS at Heart
For the reasons mentioned above, WordPress implementations are incredibly prone to falling victim to that old saying of “when the only tool you have is a hammer, all of your problems start to look like nails”. The important thing to remember is that, at its core, WordPress was built as a blogging platform that has evolved into a very reputable and flexible CMS. As such, its logic, database relations and workflows are all geared towards what it takes to efficiently and effectively run a blog/CMS. When a developer tries to append large scale application logic to this paradigm, the aforementioned pitfalls start to become a reality.
If you think of a WordPress installation as a house, it is a bit easier to comprehend that there are many customizations and additions that can be made while maintaining the integrity of said house. Naturally you cannot reasonably add every addition on the market as some would overlap and cause problems with one another but you can safley add quite a bit to make it your own. For instance, adding both a deck and a sun-room might not be an option given the layout of property, but you can select one or the other. And then, of course, there are other customizations that would be nice but just do not make sense. For example, it is entirely possible to build a house, with a pool on the roof; but an addition like this would likely overburden the foundation and support structure of most houses on the market; you would probably need to build something from scratch. Sure, it is probably possible to modify an existing home to support this load but consider the mess of additional support beams and plumbing that would likely complicate life and maintenance in the living room below. Similar complications can arise in the digital world. So to sum it up, yes remodel you bathroom and add a sun room to your prefab house, but build a building from the ground up if you need a pool on your roof.
For the Consumers
So maybe you’re not a Web Developer, you’ve just read this article and digested maybe 35% of it. You’ve got an idea for an online something or another, you were maybe thinking WordPress and now you are not so sure, how do you proceed in hiring out your job? Well, first of all, are you just making a brochure site, or some type of informational site on steroids? If so, WordPress will fit the bill. Do you need features outside of what WordPress offers out of the box? How many, what type, what scope? The more you have to explain in answering this question, the more you need to consider a web application built from a lower level (as in, more abstract, less defined) programming framework. For instance, are you envisioning a lot of user interaction, stuff like chat functionality or photo sharing? WordPress *can* be mangled into an implementation that supports this but you’ll be avoiding a lot of technical debt by building this through other means. So, if after reading this you feel uncertain as to whether WordPress is right for you, ask your prospective developers what other solutions and frameworks they are experienced in beyond WordPress. If they are knowledgeable in other, more abstract frameworks such as Laravel or Cake (or others) then you are probably dealing with a competent team. If WordPress is the only system your team can speak at length about, consider asking around (hey, ask us!) before pulling the trigger.