The question whether “WordPress is a content management system?” has been answered affirmatively in my mind for quite some time. If you still have doubts, or want a recent sample of the chatter on the concept, check out Is WordPress a CMS or blogging platform on mbjwork.com. One comment from Stephen Cronin on it inspired me to write a response to further the conversation down a positive path. He suggests the distinction that, “WordPress is NOT an enterprise level CMS”,
I would use WordPress to run one of my personal sites. I would not use it to run the websites at work (I lead a government web team). I generally find that people saying it IS a CMS are people who deal mainly with small to medium websites, which WordPress is perfect for, and those saying it’s NOT are dealing with much larger and complex sites.
While this position is debate-able, it is mostly dependant on your definition of the term enterprise and what specific client requirements are involved in a given site. I will cede the point by saying that WordPress is not YET an enterprise-level CMS that can compete on a feature-by-feature comparison with such high cost platforms as Red Dot, Vignette, Interwoven LiveCycle, etc. These systems often require just as much configuration / customization to implement client-specific elements as a small business site built on WordPress – only the consultants for these platforms generally charge a higher premium for their specialized “niche” knowledge.
Don’t look a crazy horse in the mouth
It wasn’t that long ago that the answer of whether WordPress was a CMS was a harder position to defend. I gave a presentation in 2008 at Wordcamp Toronto – WordPress: Beyond a Blog – and mathematically proved that WordPress = CMS. The definitive deliniation came after the crazyhorse fiasco and, in my mind, co-incided with the 2.7 release (Dec 10, 2008) for a few reasons:
- The major UI improvements to the admin console gave it a more professional (read generic) colour palette.
- Usability improvements enabled access any content area / type or configuration element via a single click.
- Steady improvements on the well-defined plugin / theme / filters / hooks architecture and the 1-click update.
Overall these improvements have made the process to create, customize or update a WP-powered site into a task-scale work effort compared to a project-level one. This is an important distinction given the frequency of releases for WordPress (both a pro and con). I am quite excited about the upcoming killer features of WordPress 3.0 (menu management, custom post data types) that will further make any questions of its CMS capabilities that much harder, ney impossible, to refute.
To summarize: In a less than 18 months, WordPress has gone from being debateable as a CMS in general to being debateable as an enterprise-level CMS. Not bad for a open source project that has blogging as its core focus 😉 Especially when compared with other open source projects that often struggle to make in-roads into non-core areas (see Linux desktops in corporate environment). WordPress has grown into a viable COTS (customized off the shelf) product – it just happens to sit on a shelf with a price of $0 which is a big selling point when most other enterprise-level CMS platforms have quite a few more 0’s in their sticker price!
How could WordPress be considered an enterprise-level CMS?
This is the real question I wanted to address with this post. There are a number of features / areas of concern I see with the current state of WordPress that prevent it from being seriously pitched or deployed as a corporate business platform. In some cases there are plugins which fill the gaps reasonably well. In others there may be limitations that the blog-centric principles it was founded upon prevent it from solving. In all cases, I want to encourage discussion of these areas to see which are areas worth researching by those who have a passion for the platform or have plugin programming powers in need of a niche. If you think of functionality I have missed, or plugins which provide the gaps I have identified, please add a comment.
- Custom Data Types
Plugin of Choice: More Fields, PODS, WordPress 3.0!
Yes it is possible to train users to select a strangely titled custom field and populate it, but it is not an elegant solution compared to data entry directly into named fields. Soon,easily configurable custom data capture / presentation will be possible out-of-box with WordPress. This is probably the feature concept I have been most wishing WordPress would add since I started working with it as a CMS.
Plugin of Choice: WP-DB-Backup
It is critical to have a reliable, regularly scheduled backup process that is easily re-deployable. The newest line of business added to Automattic, VaultPress, offers such a service for those who aren’t comfortable with web server / database backups. It covers “your plugins, dashboard, themes, comments, and even your post revisions are all safeguarded and ready to be restored.” Perhaps someone could re-use the plugin code to create a version that enterprises could deploy within their own architecture to leverage their existing hardware spend.
Plugin of Choice: qTranslate
While the default language of the Internet is english, there are far more people who prefer non-english languages. The support for multiple languages of the admin console is excellent, but content capture and display of multi-language support is still suspect. qTranslate handles the core fields (title, content, excerpt) well, but not custom fields, meta boxes, etc. Hopefully with a robust 3.0 focused upgrade of qTranslate, we might come close to “fully multi-lingual support” across all data types.
- User / Role Management and Content Control
Plugin of Choice: Justin Tadlock’s Members Plugin
The default approval concept from contributor / author through editor / administrator fits reasonably well when you have ‘anyone can write anything’ environments and editors who have latitude across the entire site. But a corporate environment might have people who only handle specific types of content. 3.0 will greatly simplify the process of isolating such content areas and improve the associated “data entry screens”. Further capabilities to define roles, which users have access to them, what they can access becomes more important as the variety of workers who interact with the CMS scales up.
- Workflow Management
Closely related to the roles which users have is how the content approval process happens. Some content only requires single-level approval, others must be blessed by people very far up the corporate ladder before publishing. The addition of this feature should be configurable though off by default to avoid confusifying the “I write my own blog” default use case for WordPress. I haven’t tried or heard of any plugins that have tackled this concept yet, have you?
- Content Release Environments
Closest Conceptual Plugin: WP Hive
Workflows work when you are dealing with individual content updates, but how do you handle an entire new section, or re-writing a sizeable portion of an existing site? Incremental draft / publish just won’t cut it. Creating a new instance of a site on an internal server is easy enough (see backups), but merging the changes that occured between the time the copy of production environment was taken and the new section going live is not.
It would be interesting to see WordPress converted to a repository-driven approach where content gets “checked-in” to a central instance and staff can “cut releases” to different environments for testing. The low overhead of WP (php / mysql) deployment would make creating new environments a breeze compared to some of the large-scale CMS that have hefty hardware requirements to host.
- Lead Generation / Forms
Plugin of Choice: Gravity Forms
The simplicity with which you can use Gravity Forms UI interface to create forms is amazing. They are steadily adding features which, in the hands of great developers, convert WordPress into a complete swiss-army-knife of lead generation or crowd-sourcing content creation. As far as WordPress plugins go, their $199 price tag is steep, but it is well worth it compared to the value it provides. Multi-Step forms with configurable step-logic would be high on my feature request checklist to round out its already impressive functionality.
- 3rd Party Platform Integration
Closest Conceptual Plugin: Xavisys WordPress Plugin Framework or BackPress
How do you access and display pricing data from a legacy product database? Or information from a 3rd party supplier API? Can you syncronize customer info from an existing LDAP or Salesforce with WordPress? Each enterprise would have a unique set of requirements to consider the complexity of integrating during the concept initiation phase. Having shared knowledge resources that demonstrate best practices would be invaluable to know what is / is not possible. Or if you have something larger in scope to work with, you might consider BackPress which is starting to sound like a robust way to develop with the principles of WordPress as a framework to start from.
Where to draw the line?
I thought about including functionality most enterprise sites would leverage – event calendars, payment engines, product shopping carts, etc – but stopped as that was starting to blur the line between CMS and web application. It is a testament to the versatility of WordPress that it could just as easily convert into or add-on functionality of an eCommerce system, a forum or social network. With that in mind I ask you, Is enterprise-level CMS really that much more of an ambitious stretch?