Python vs PHP for CMS - Drupal, Django CMS, Wagtail and Mezzanine Comparison
There are a lot of CMSs and they vary a lot, but most of them share the same idea of giving the user the ability to manage his website the easiest way possible. The most popular CMSs are created in PHP and one of them is Drupal, the third-most popular system. It is mostly used to create knowledge bases and business blogs. However, if we look at the recent popularity of programming languages, we can easily notice that Python is gaining more and more popularity and PHP is going the other way. In this case, we will take a look at three Python-based CMSs and compare them with Drupal and see what comes of it.
CMS requirements
In order to pick the best CMS you should first list all the requirements of your system. It is important that you also consider future development. The framework you choose not only should meet all the specifications you need at this moment, but also be suitable for your long-term goals. Pick the solution that you will not have to replace in 2-3 years when your requirements expand or shift. Here is a list of some things you should consider when picking a development language and framework for the CMS:
-
Core functionality,
-
Security,
-
Managing assets,
-
Search,
-
Customization,
-
User interaction,
-
Roles and permissions,
-
Versioning,
-
SEO,
-
Support,
-
Integrations with other systems.
Analysis of Python Django CMSs
We took into consideration 3 of the most popular CMS options for Python with the Django framework (Wagtail, Mezzanine, Django CMS) and listed their benefits and drawbacks.
Django is the most popular web framework for Python. It’s easy to learn, clear, and fast to write. It’s fast and fully loaded with dozens of out-of-the-box features like authentication, site-maps etc. It’s also secure and scalable. And it’s still gaining more and more popularity. Here are some key advantages and disadvantages of each.
Wagtail
Pros:
-
Quite extendable, but less than Django CMS
-
Very lightweight with basic functionalities
-
Can be extended by a programmer with good Django knowledge
-
Based on the Django framework
-
More friendly admin interface than Django CMS
- Big community
Cons:
-
Requires significant programming knowledge to extend
Mezzanine
Pros:
-
Out-of-the-box installation, so easy to set-up
-
Relatively popular and has an active community
-
Has an API so can be integrated with external services
Cons:
-
Cannot schedule “future publishings” - don’t know at this point if that’s relevant to the overall project and the future plans
Django CMS
Pros:
-
Popular Python CMS
-
Mature project, many core developers that deeply care about their community
-
Easy to extend
-
It's essentially a Django plugin and the Django framework has a lot of plugins and extensions and is easy to develop for
-
Easy internationalization
-
Relatively easy to edit by the end user
-
It’s a tried and proven system used by large international companies and organisations eg. Pinterest, Instagram, NASA.
Cons:
-
Main one is that it's a robust system and can be overkill for simple CMS functionality
-
Recommended to use Django CMS as a standalone project
-
Basic user interface for admin. However It is easily extendable and there are a lot of plugins available for free on the Django CMS marketplace
Analysis of PHP CMS
Out of all PHP’s solutions for CMS, Drupal is the most reliable solution and therefore it’s the only one we take into account in this comparison.
Drupal CMS
Pros:
-
Useful for producing highly advanced sites. Drupal adds features using tons of small modules.
-
Drupal is developed by a community spanning the entire world. Over 100,000 users actively develop the Drupal core and its modules.
-
Drupal Security Team is a special group of people who take care of the security of both Drupal and its modules.
-
Good choice for community platform sites
-
It’s a tried and proven system used by large international companies and organisations eg. Tesla or NBA.
Cons:
-
The power of Drupal modules means that the basic, "out of the box" core Drupal isn't exciting
-
Drupal is a CMS that was developed by developers for developers. Without the necessary expertise, it would be easy to feel lost among its modules
Python vs Drupal comparison
Technical Comparison
The named frameworks were compared taking into consideration the most important technical aspects.
Django CMS | Drupal | |
Pricing | Free | Free (some extensions $) |
Client types | Small Business; Large enterprises; Medium Business; freelancers | Small Business; Large enterprises; Medium Business; freelancers |
Devices supported | Mobile / Desktop | Mobile / Desktop |
Selected features | Multi-site capability Reusable Design Link Management Filterable table of contents Granular privileges Distinct Frontend + Backend Session management Open Source |
Multi-site capability Link Management Multilingual ready Online Community Features In-built Search Open Source |
Integrations | Open API allow us to integrate with an extensive number of external apps, including business software. On the Django CMS marketplace there are ready plugins to connect with Facebook, Linkedin, Google Analytics, Twitter, MailChimp and many more | Bitium, Zendesk, Zapbook, Zapier, MailChimp, Facebook, LinkedIn, HubSpot, Google Analytics, Magento, Salesforce, iPaper, Twitter, ShoutEm |
Business Comparison
In the second round of comparison we took the most important business issues into consideration
-
Django CMS
-
Talent availability and future-forward approach. Both languages are popular, but Python is more universal and future-proof. Python is on a growing trend, whereas PHP has been systematically losing market share over the last yearsSource: StackOverflow
-
Scalability - although it has fewer out-of-the-box solutions, it’s easy to add custom modules.
-
Drupal
-
A huge amount of modules - out of the box solutions that reduce initial implementation time.
Final recommendation
Talent and Custom Module Scalability makes Django a better bet in the long term. As both listed frameworks have different advantages and drawbacks, Django CMS has a better synergy effect. Considering the unknown future requirements and flexibility for adjustment, we believe that Django CMS is the best option.