With the percentage of websites that are built with WordPress now at an all-time high, it’s worth remembering that there are still plenty of alternative content management systems out there that may not be as well known, but are actually more appropriate for particular types of website.
In this series of articles, we will be considering other content management systems (CMSes), what they are best at, and when it makes sense to use them.
Here we consider Drupal – a relatively well-known CMS, which at its peak around 2015 was used in over a million websites. Numbers aren’t everything, and since then there have been some very interesting developments in terms of both who is using it and the types of websites for which it is being used.
Drupal version 7 was a well-suited CMS for building small and medium-sized websites, particularly where some custom business logic was wanted (perhaps you needed to integrate the site with a third-party data source, or add a log-in area for customers or members).
Its successors, Drupal 8 and 9, overhauled a lot of the underlying code, effectively renewing its foundations in a quite radical way. The use of more standard libraries and architecture, as implemented on the most recent versions of Drupal, will not tend to affect the owner of a website, but it makes a big difference to the ease of its operation for the developers who are working on it. This change meant that a lot of web agencies had to relearn their existing skillsets, and quite a few chose instead at this point to move away from Drupal -to alternatives such as WordPress or Joomla.
At GWS, we have become much more selective about which sites we build using Drupal. Since Drupal 8 was released, we no longer use this CMS for the majority of website builds. In a lot of cases – for example, with a relatively simple site, or one that outsources more complex functionality to third-party websites, WordPress is now more appropriate.
So here are the main reasons why you should use Drupal for your website if it meets certain criteria:
1. Limited Flexibility of WordPress Plug-ins
The plug-ins available for WordPress (or another CMS under consideration) don’t do enough of what you need out of the box, and can’t be configured to do one or more things that are essential for a website. This is a point on which your web developers can advise.
It is possible to write custom plug-ins for WordPress, but this is generally not a good idea – the need to do so is normally an indication that a website should have been built using a different system in the first place.
Modifying the way that WordPress plug-ins work is certainly possible, but it normally reduces site stability and longevity, and can lead to a situation where you can’t install necessary security updates to plug-ins because it’s no longer feasible to port changes you made to the original version of the plug-in.
The result of this can be a website stuck on an old version of Wordpress or of key plug-ins, which will be problematic for security.
2. Custom Business Logic
You need custom business logic – in other words, there are certain things the site needs to do which go beyond standard website features, and those functions are complex enough to need to be custom-coded to capture the way you want them to work.
For example, you might want a custom time-entry system for employees, an intranet that works in a different way from off-the-shelf systems, a customer log-in area with documents available based on what the customer has purchased and their access levels, or a member area that classifies people by membership level or national group and gives them access to different data accordingly.
If you want these all to tie together seamlessly, then having separate plug-ins generally won’t work, as they will behave differently and typically won’t ‘talk’ to each other or connect up the way you need them to, having been designed to be self-sufficient.
As a system, Drupal is designed to have custom logic and features added – it is a toolkit that allows you to build a system that does exactly what is wanted, rather than something that works the way the available plug-ins do.
3. Granular Administrative Permissions
You need atomic permissions levels, meaning that you want fine-grained control of which users can perform what operations on the website.
This may relate to type of content, what operations can be carried out on that content, or other custom combinations: for example, what can a visitor see, download or update, and are they only allowed to update or delete content they own themselves?
WordPress does offer a variety of permissions levels, but in general, where complex permissions or custom permissions logic are needed (or a workflow process for approval of documents) we have found Drupal to be a better choice.
4. Page Load Speed
You need speed – among CMSes, WordPress particularly tends to slow down as you add more plug-ins and features, and as a website increases in size, it typically comes to require caching systems to make it work at a sensible speed, and other mitigations.
Drupal features built-in caching, and you are less likely to have to exclude elements or sections of the site from caching to get things to work when you have enabled this.
5. Custom Software Integrations
You need to integrate (link) a website with third-party online services or data, and there is no off-the-shelf plug-in available to achieve this.
Whether you are using a website as a back-end for an app, or integrating with a membership management system or other CRM system, Drupal makes it relatively easy to create a custom integration.
This is particularly applicable if whatever you are integrating with is non-standard.
We have used Drupal for integration with membership systems, Office 365 calendars, and custom databases and authentication systems.
In the other direction, we have also used it to provide feeds which can be read by external websites.
6. Website Lifespan and Upgrade Path
You want a website with a longer lifespan.
Creating a website or web application with complex features involves quite a lot of work in specification, development and testing, so if this is your requirement, you will want a good lifespan to provide a decent return on your initial investment.
Drupal offers an excellent upgrade path between version 8 and version 9, and the same should be true when Drupal 10 is released.
Creating a website with a longer lifespan may potentially involve using a framework that has had an unusually long lifespan, but this is not normally appropriate for building websites where modern content management features are needed. We hope to add an article on website longevity in the future.
7. Security and Technical Support
You want to use a platform with a reputation for security, and one that is likely to be supported many years into the future.
Properly managed WordPress websites are reasonably secure, but if security is a key parameter for a website, then we recommend Drupal as a better option.
It is a smaller target and gets attacked less. More importantly, there have been fewer zero-day attacks on its equivalent of WordPress’s plug-in ecosystem.
Overall, we have found average code quality and compatibility to be higher in Drupal modules than in WordPress plug-ins, though there are plenty of exceptions to this rule.
8. Use as a Headless CMS
You want a website back-end that feeds a different type of front-end system.
Drupal is an excellent choice if you need a content management system with the ability to feed different interface layers.
This means you can build something with a replaceable ‘top’ layer, making it a more flexible solution for the future.
9. Stability in Delivering Complex Functionality
You have a reasonable budget for the right solution.
WordPress websites are generally cheaper, particularly when they are simpler and when there is no custom logic, or the features wanted match available plug-ins.
However, for more complex websites, it can be a false economy, potentially leading to a site that is unstable, less secure, and harder to update in future.
There is no hard and fast rule here – it depends on exactly what you want your website to do.
10. Unique Intellectual Property
You are looking to create some intellectual property in a website or web application.
Using custom code and logic in a Drupal website can not only help differentiate you from others (as well as ensuring that the site is closely matched to your requirements).
It can also provide you with something that adds value to your company in the eyes of a potential purchaser in the future.
We hope that this article has contained some interesting information.
If you think that other points should be added, please get in touch with us to share your thoughts.
There are other factors from both the developer point of view and that of the agency that can determine whether Drupal is an appropriate platform for a website.
We have tried to focus here only on reasons relevant to the client who commissions the website.