February 24, 2017
There are many options in terms of content management systems (CMS) to choose from when starting a web project. Drupal and WordPress have become two very popular choices for clients and developers. Here’s some basic applications for each:
Drupal is best suited for complex web projects that require a lot of custom functionality. The amount of features that are included in core and scalability of the CMS allow the developer or site admin to add just about any possible functionality they can think of. Some cases where Drupal would be a good fit:
WordPress’ highly user-friendly admin interface makes it a popular CMS for projects of varying scope and complexity. The ability to extend WordPress with plugins allows it to suit almost any web project while keeping the backend simple for the site administrator. Some projects that would be well suited to be built in WordPress are:
Read on to see a full comparison of the two CMS’ and which may be a better fit for your project!
Both CMS’ provide intuitive, user-friendly admin systems for clients and developers alike, but each have their strengths and downfalls.
Drupal offers a powerful UI allowing the admin to change not only content, but most – if not all – of the site functionality and structure. This means that the admin does not necessarily need to know how to code in order to create a highly performative and complex website. They will however need to learn how to work within the Drupal ecosystem, which can be quite a task in itself. The ability to customize and change many elements through the admin system makes it very powerful, but can also make the user experience a bit overwhelming for those new to using Drupal.
WordPress was originally created as a blog platform. Because of this, its UI was designed to be extremely user-friendly and simple. For basic websites with little to no custom functionality, WordPress provides a simple and clean interface which takes little time to get used to. The only downside to this is that any site configuration or functionality changes will need to be done with code, meaning a developer has to be involved. This is not necessarily a big issue for simple brochure websites, but other more custom integrations will need a developer on hand. This could also be avoided by using a number of plugins which extent WordPress for non-coders and allow them to add complex features.
Drupal well known for its security when comparing CMS’. A fresh installation includes features which protect against a wide range of common website attacks. Drupal is also the trusted platform for many large websites including those for the Prime Minister of Canada and the White House. There are additional security features which can be incorporated if need be, but Drupal provides a very good base level of security on its own.
WordPress is a bit more vulnerable given its high dependency on plugins in most cases. These plugins can be entryways for hackers or malicious software if there are any vulnerabilities in the code. There are still some additional steps that site admins can take in order to ensure their WordPress site is secure through the use of security plugins and protection at the server level.
Drupal is able to serve just about any purpose that one could dream up when planning a web project. The fact that most modules perform small focused tasks while integrating seamlessly with one another means that the developer or site admin is able to implement very specific or custom functionality without having to write custom code. The downside of this approach is that when certain modules don’t cover all of the user’s needs, they will need to write their own, which can be more difficult than coding for WordPress.
There are countless plugins available for WordPress which can generally add whatever functionality you need. Unlike Drupal, many of these plugins are behind a paywall, or offer a ‘pro’ subscription. This is manageable if you just have one or two paid plugins, but if you rely heavily on a large number of them you will have to bear a sizeable cost. This is just one approach to site building. Custom functionality can be written in php in theme files or custom plugins.
Drupal is a scalable platform, meaning that it allows developers to build new functionality on top of existing sites without having to reinvent the wheel. Module updates can be managed through the admin system, but core updates are a bit more involved and require the admin to replace files via sftp or drush. For security updates this is pretty straightforward, but when upgrading to a newer version of Drupal (ie. moving from Drupal 7 to Drupal 8), some tweaks to the code and site configuration will likely be required since the code structure and logic has changed. This is a consideration that applies to most content management systems when performing major system updates.
The update process for WordPress is pretty seamless and easy for the site administrator to perform. Both the code and database updates are performed with a single click from the admin system. This can be a risk if the developer has edited any code within core or plugin files (this is not good practice) because the client or site admin could update, and losing all of those changes and potentially breaking some site functionality. Luckily WordPress offers the option to perform site updates automatically, manually, or only for certain user roles. This is especially helpful for situations when the site has many content contributors with varying levels of experience with content management systems as it ensures that no user will update or delete something by mistake.
Drupal comes with quite a bit of functionality and configuration abilities out of the box. Some of note include:
WordPress comes with all basic tools required to create a blog, most of which are still applicable for the majority of websites:
The web is moving into an era where your content management system no longer dictates the way your front end looks and operates. Both Drupal and WordPress now come with REST API endpoints which allow developers to separate the back end from the front end. This means that site admins can use the platform they prefer or are most comfortable with while the front end developer can use newer frameworks like React or AngularJS.
There needs to be careful consideration when taking on a new project to see which CMS is the best fit. In the end both platforms are very flexible and can be adapted to suit the needs of any particular project, so clients are free to use whichever they are most comfortable with. It really comes down on what is right for you when considering all aspects of the project.