Wagtail vs Drupal
How to choose the right CMS for your project
Wagtail and Drupal are both great options for organisations that need a content management system with enterprise features. Let’s explore some things you should review as you decide which technology works best for your needs.
Overview
Deciding which content management system (CMS) to use for your organisation can be a really hard decision. Many governments, academic institutions, charities, and other not-for-profit organisations tend to prefer open source technologies because it provides them with more options when it comes to hiring their own teams and working with outside vendors. Wagtail and Drupal are both solid choices for organisations that need a highly customizable CMS. Here are some factors to consider as you try to decide which CMS you would like to invest in.
About Wagtail
Wagtail is a CMS that is written in Python, one of the most-used programming languages globally, and incorporates the open source Django web framework. Django has been around for almost two decades and is used by companies like Spotify and Instagram. Wagtail was created in 2014 and has since been adopted by organisations such as NASA, Google, and the National Health Service. The advantages of Wagtail include:
- Customisation: From the data structures to the frontend, Wagtail is very easy to customize to meet the specific needs of a project.
- Flexibility: Wagtail scales very well and can be scaled up to handle traffic from thousands and possibly millions of visitors every month.
- Enterprise features: Wagtail includes permissions, customisable workflows, live preview, reports, history tracking, and other features large teams need.
- User experience: Many content creators find Wagtail's content editor to be very intuitive and easy to learn.
About Drupal
Drupal is a CMS written in PHP that was launched in 2000. Currently, Drupal is powering around 1.8% of websites that are using a CMS. Some well-known organisations that use Drupal include the White House, Harvard, eBay, and Tesla. The advantages of Drupal include:
- Customisation: Drupal has thousands of modules, plugins, and themes that can help deliver a very customized experience for users.
- Vendor availability: Because Drupal has been around for so long, there are many vendors and freelancers who support Drupal projects.
- Large community: Drupal has a large, well-established open source community that provides a lot of support for new users and developers.
- Enterprise features: Drupal includes permissions, workflows, multi-lingual support, marketing tools, and other features useful for large teams.
Wagtail | Drupal | |
---|---|---|
Cost |
Wagtail is open source and has no licensing fees. Startup costs vary but will likely include paying a developer or agency for creating the website. |
Drupal is open source and has no licensing fees. Startup costs vary but likely include paying for a developer or agency to create the website. |
Language |
Python |
PHP |
Framework |
Incorporates Django, a modern web framework designed for efficiency and security. |
Drupal is a PHP-based framework that incorporates the Symfony framework. |
Customisation |
Wagtail is highly customisable and can be tailored to the needs of your project right away whether you're creating a blog, an app, or an online service. |
Drupal is a very customisable CMS that can be tailored to many different projects, whether you're publishing content or creating another type of service. |
Extendability |
Wagtail is very easy to extend. Functionality can be added with packages or custom Python code. Custom SQL or database code is typically not needed, which reduces security risks. |
Drupal is extendable. Functionality is added to Drupal through modules, plugins, and themes. Customised data structures and database code may be needed to support projects with particular needs. |
Scalability |
Wagtail is very scalable. Large amounts of content can be managed on most Wagtail websites without severely impacting performance. |
Drupal is scalable enough to support websites with millions of visitors a day, including the GRAMMY awards and NBC Olympics. |
Required technical skills |
Developer skills are needed to set up and maintain a Wagtail website. |
Setting up Drupal is relatively simply but many organisations find they need developers to support Drupal over the long-term, especially for upgrades. |
Enterprise-level features |
Includes workflows, permissions, commenting, reports, history tracking, and accessibility features typically required by large organisations. |
Includes permissions, workflows, multilingual support, accessibility features, marketing tools, and other features needed by large organisations. |
Security |
Includes Django's advanced security features and protection against many common attacks. Because Wagtail is open source, the code receives extra scrutiny from a community of Python developers. |
Includes user access control, database encryption, security reports, prevention of malicious data entry and mitigation of Denial of Service (DoS) attacks among other features. |
Support and services |
Free community support, paid support for organisations, and a worldwide network of agencies to collaborate with. |
Free community support as well as a worldwide network of paid vendors and services. |
How easy is it to get started?
Wagtail makes it very easy to get started with a new project. As long as Python is already installed on your machine, installation and setting up a new project takes around 10 minutes. Some operating systems come with Python already installed, which makes it even more convenient to get a Wagtail project up and going.
The Drupal set up process is a bit more involved. You'll need to create and configure a database as well as add some configuration for your development server. You'll also need to have PHP and some associated tools, like Composer, already installed. Again, some operating systems come with PHP installed by default, so that could save you a bit of time.
Both Wagtail and Drupal require technical skills to set them up properly and structure projects well for the users who will be publishing content on them. Whether you choose Wagtail or Drupal, you should strongly consider collaborating with at least one developer who can help give your project a good foundation that will be easier to upgrade and maintain over time.
How customisable are Wagtail and Drupal?
Both Wagtail and Drupal are very customisable technologies. They were both designed with extension in mind so every project can be tailored to very specific needs. If customisation is high on your list of needs then both Wagtail and Drupal have a lot to offer.
With Wagtail, you can customise your data structures and functions in code from the very beginning of a project using Django-style models. With Wagtail's models, you don't have to worry about trying to adapt functions that aren't made for what your project specifically needs. Wagtail can also be customised by a developer with Python packages and paired with any frontend technology you prefer. If you have a very particular design in mind or want to keep your options open for switching to a different frontend option in the future, Wagtail is a great choice.
Drupal can be customized through the use of modules, plugins, integrations, and themes. Drupal does come with a default frontend and a default theme for displaying content. There are lots of themes available for Drupal and there are plenty of options available if you don't want to start from scratch. If you want to create something completely custom though, you'll likely have to spend time removing and updating some of Drupal's code to get it to behave with your custom frontend design.
One key difference between Wagtail and Drupal is how customisations are made. Changes to Drupal's structure are made primarily through the user interface (UI), whereas changes to Wagtail are primarily made in code. Both approaches have upsides and downsides, so you should investigate whether your project team has specific preferences for working in the UI or with code.
How secure are Wagtail and Drupal?
Wagtail incorporates the advanced security features that are included in the Django web framework. These features protect against many common attacks, including cross site scripting, cross site request forgery, and SQL injection. The way Wagtail and packages that extend Wagtail interact with the database makes it a lot harder for malicious actors to target your website and steal data.
Drupal offers a lot of valuable security features, including database encryption, user permissions, malicious data entry prevention, and Denial of Service (DoS) protection. Customising Drupal can involve custom updates to the code that interacts with the database and vulnerabilities can be introduced by developers or plugin authors that aren't careful about validating data. This is counterbalanced by Drupal's large community though. You can probably trust that the more popular plugins have had a lot of eyes on their code.
One huge security advantage for both Drupal and Wagtail is their open source communities. Expanding the number of developers who can see and review the source code helps ensure that vulnerabilities are caught and patched before they become serious problems.
How extendable are Wagtail and Drupal?
Drupal uses modules and plugins. Wagtail uses packages. Packages and modules are essentially collections of code that can be used to add functionality to a project. In Drupal, plugins are smaller collections of code that are controlled by the module they are installed in.
Both Drupal and Wagtail were designed to be extended over the long term. Drupal is designed to be configured primarily through a user interface, whereas Wagtail is primarily designed to be configured through code. You can do a fair amount with Drupal without technical skills as long as the modules do what you want them to do, whereas for Wagtail you will need to know some Python.
Because Drupal has been around for over two decades, there's a large ecosystem of free and premium modules to extend Drupal. Wagtail's package ecosystem isn't as large, but it's definitely growing and also benefits from the fact that many Django packages also work well with Wagtail.
Unless you're running a very small and simple site, Drupal projects can become complex very quickly if you're managing a lot of third-party modules. As a result, many developers have noted that updating Drupal and adding new features can be a very time-consuming process for them, which can lead to higher maintenance bills for organisations using Drupal. In contrast, Wagtail offers a simpler developer experience that requires fewer steps to add features and make upgrades to the code. Even complex Wagtail projects can be extended relatively quickly.
What type of technical resources do I need to support Drupal and Wagtail?
Organisations with large budgets or the ability to quickly hire in-house talent would likely be equally happy with either technology. Organisations that are more price sensitive and have longer hiring cycles, like governments and not-for-profit organisations, will want to consider not only their budgets but also the developers they have access to as well as the developer experience each technology provides.
Drupal offers some enterprise features in the base version of Drupal. Organisations with Drupal projects and sizable budgets though will often pay for the enterprise platform and services offered by Acquia (one of the largest companies creating services and products for Drupal). Like many digital experience platforms, Acquia offers polished, ready-to-go services for a fee that can be added on to Drupal. Wagtail, on the other hand, offers all of its base enterprise features for free in the base version of Wagtail and provides a foundation for them to be developed into fully fleshed out features tailored to each project's needs.
If you have an in-house developer team, it is worth the time to review their skills and interests. If most of the developers you work with know PHP really well, Drupal might be the more logical choice. The number of programmers learning and adopting Python is vastly increasing though, so Wagtail might ultimately give you more options for hiring new talent in the future. Many developers who already know one language well also tend to pick up Python pretty quick, so some additional training might be all that's needed to get your team ready to work with Wagtail.
If you prefer to work with freelancers or outside vendors for your projects, there are currently many more agencies working with Drupal than there are agencies working with Wagtail. Yet because the number of newer developers learning Python is increasing, the number of options available to you will likely change over time.
Whether you work with an in-house team or an outside team, developer experience is a critical factor that needs to be considered. If a technology takes longer to work with, then you will be billed for that extra time and the costs for maintaining and upgrading your project will be higher. Many developers and agencies who have worked with Drupal for a long time have noted that Drupal has become more unwieldy over time and upgrades have become more difficult. Developers who switched from Drupal to Wagtail have generally been much happier with the coding and upgrade experience Wagtail provides.
Which is a better investment for my project?
Both Wagtail and Drupal are suitable for large, enterprise web projects. Determining which one is the better investment ultimately depends on your projects needs, the technology resources you have, and what your budget is. Here are some scenarios that work well for each CMS.
Wagtail is great for:
- Organisations that want a highly customised frontend but aren't ready to invest in a headless CMS just yet.
- Organisations with smaller in-house developer teams that have Python experience or a willingness to learn Python
- Organisations that value a streamlined and creator-focused editor experience for their content creators
- Organisations that value a strong focus on accessibility
Drupal is great for:
- Organisations looking for an open source enterprise CMS option that is well-established and won't tie them to a single vendor
- Organisations with larger budgets that can afford to pay for maintenance costs and an agency to manage their project
- Organisations with larger in-house developer teams or developers who have more experience with PHP than Python
- Organisations that can afford to provide Drupal training to their content creators
Can I migrate my content between Drupal and Wagtail?
You certainly can migrate content between Drupal and Wagtail projects. How long it will take and how many project hours that will be needed depends a lot on the size and complexity of your project as well as the export options you have set up. One of the professional agencies that work with Wagtail can provide you with a quote for a migration.