In order to create easily maintainable websites, a lot of companies decide to use content management systems (CMS). This way a lot of features like adding content, authorizing, and administration can be easily taken care of without a lot of programming knowledge. 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.
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 you 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.
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.
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
Cons:
Requires significant programming knowledge to extend
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
Pros:
The most 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
In our opinion, the best choice out of all the Python based CMSs would be Django CMS. It usually requires custom development, however in our opinion the possibilities for expanding functionalities in the future are high.
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.
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
The named frameworks were compared taking into consideration the most important technical aspects.
Django CMS | Drupal | |
Pricing | Free (some extensions $) | 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 allows 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 |
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 is 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.
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.