Open Source content management systems (CMS), such as Drupal, Joomla and WordPress, provide the opportunity to leverage an existing code base to tackle Web projects more quickly and with less expense than using proprietary code. Because the software is free, both in terms of cost as well as the ability to extend and modify, Open Source tools benefit from their respective communities of developers who work together to build and improve the software to the benefit of all.
How important is Open Source to website development? According to W3Techs, WordPress alone accounts for 64% of the market share of Web content management systems, and together with Joomla and Drupal, these top three projects account for almost 70% of the CMS market. Proprietary, Software as a Service (SAAS) providers, such as Wix, Squarespace, Shopify and BigCommerce are not as popular as one might think.
Inforest Communications works primarily with the WordPress and Drupal CMS frameworks. We’ve found that these tools are a good starting point for most of our projects, with each project having its own set of strengths that weigh the decision as to what software to use. We can divide these into several questions, including the complexity of content, number of users, and how far the site will be extended “outside the box” of functionality provided by existing plugins or modules.
WordPress is a good choice for many websites. Out of the box it provides the most likely combination of post types, with categories and tags one would need for a simple website with a blog, which is what WordPress was initially designed for. WordPress can be enhanced to include additional content types and taxonomies and there are numerous “plugins” to further extend its functionality into various areas, including eCommerce.
The case for starting with Drupal becomes more apparent as the requirements for a website increase and become more nuanced. This is because Drupal has evolved to be extremely flexible with how content content types are created and extended by additional fields, taxonomies and relationships to other content. In addition, Drupal provides a built-in module, “Views,” which allows one to quickly build dynamic pages based on just about any combination of content and taxonomy. All of which can be built entirely from its Web interface.
Speaking of Web interface, WordPress still more approachable to users in terms of adding and editing content. Some of this comes from familiarity, since it is more likely that someone has already worked with WordPress than any other software. However, a larger part of the appeal of WordPress is the relatively simple user interface and an obvious priority on making the writing experience and easy and painless as possible. The advent of Gutenberg, a sophisticated and flexible editor which allows for easy creation of complex markup as well as inclusion of dynamic blocks of content, further asserts WordPress as the premier, writer-focused content management tool.
WordPress uses an add-on software, called “plugins” to extend the software beyond it’s built-in functionality. As it stands, just about every WordPress website will have a collection of plugins for various functions; such as a contact form, search engine optimization settings or a slideshow builder. As the needs of the website grow, the number of plugins employed can become quite extensive; it seems that every incremental enhancement requires its own separate plugin and not many are designed to work together.
The WordPress plugin ecosystem has also evolved into a subscription-based business model where “pro” versions of various plugins are offered in place of under-powered free versions. Often these charges are modest, but require renewal every six to twelve months to keep receiving updates. This model is driven primarily by the fact that because plugins are considered derivative of WordPress, they inherit the same Open Source license. Thus, these “pro” plugins are also considered free software, their authors can only control and sell their distribution.
This can all lead to some frustration when building a site on WordPress because it can lead to a lot of time wasted trying to find the right set of plugins to deliver the combination of functionality one needs. Too often, one finds a promising plugin only to later find out that one small capability required is only offered in the “pro” version, which not only cost money but includes a lot of code that is not needed. Or, the site takes on a Frankensteinian turn; requiring so many plugins that one can’t remember exactly what each of them is for.
At Inforest Communications, our solution is often to write our own custom plugins or add additional functions to the website “theme.” Indeed, this is often preferred as we will often pull in third-party Javascript libraries and other code to program our own interactive elements, such as slideshows or animations. This way, we get exactly what we want without the added fluff.
With projects of greater complexity, or where the difficulty of integrating different aspects of site functionality is high, Inforest Communications will make the recommendation to use Drupal as a starting point. While many of the basic functions of Drupal and WordPress overlap, Drupal is more flexible in terms of defining fields and content types and has an overall architecture which enforces a higher degree of interoperability amongst different modules. Thus, Drupal projects can usually take more full advantage of contributed software without having to work around its deficiencies.
Starting with version 8, Drupal is based on the Symfony PHP framework, which provides a whole additional set of tools for Web development. This, in turn, makes programing in Drupal a lot easier because we have a whole additional code we can harness for basic (and not so basic) tasks. By moving to an object-oriented design pattern and providing tools such as Dependency Injection, Events and Routing, we can more easily customize and extend Drupal’s capabilities without being limited to how current software is designed. It also ensures our code is interoperable with what might be added in the future.
WordPress and Drupal are excellent content management systems, each with its own set of advantages when considering a new website development project. Both, however, share the key advantage of being Open Source software. In addition to being free, these projects have developed their own communities of developers who support and extend each software to serve a wide range of tasks. However, each tool has its own set of advantages which Inforest carefully weighs before making a recommendation for a particular website project.