Python

Top Content Management System (CMS) Based on Python

Content management systems (CMS) provide desktop or web-based software to manage your digital content. The term “digital content” here typically refers to public or private websites, web-applications or other digital / media content served over remote or local servers. Without having a proper CMS, it may become difficult to create, manage, and organize content for your web-based projects, especially if your project is very large, you publish a lot of content, and regularly collaborate with others.

In its most common form, a CMS provides graphical utilities that run in web browsers, though some command line and desktop applications exist as well. These graphical utilities may include an admin panel, page / post editors, gallery editors, tools for uploading and downloading media, tools for managing user accounts, comments, payments, forms, SEO tools, URL management tools, database management tools and interface for modifying almost every aspect of your website / web application. Many pre-made but highly extensible CMS exist that provide numerous tools to manage your digital content, e.g. WordPress (PHP based). Some enterprises develop their own private CMS from scratch meant to be used within organization only and these CMS are never made public. This article lists popular free and open source CMS software based on the Python programming language.

Django CMS

Django CMS is one of the most widely used and popular Python based CMS available today. Based on the Django web development framework, Django CMS provides comprehensive documentation and extensive support is available from the community. At its core, the main focus of Django CMS is to provide secure and fast content management tools that save your time.

Some of the main features of Django CMS include a variety of presets for different content management needs, custom branding and themes, integration with CRM applications, official and third party packages and plugins to extend functionality, frontend to edit and manage content, drag and drop support, multi-language support, and so on. Full detailed list of Django CMS features can be found here.

Installation instructions for Django CMS are available here. You can find documentation and other tutorials here. A list of Django CMS compatible plugins can be found here. Source code of Django CMS is available here.

Wagtail

Wagtail is another popular CMS based on the Django web development framework. It is relatively newer than Django CMS, actively developed and has an ever growing community. Like Django CMS, Wagtail also aims to provide secure tools that help in rapid development and easier content creation. Main features of Wagtail include tools for integrating with CRM applications, graphical interface for creating, editing and managing content, modern admin dashboard, integrated search tools, real time previews, built-in version control system, multi-site management tools, integration with other Django based apps, static site generator, third party plugins and modules, and so on. A full, detailed list of features is available here.

Installation instructions for Wagtail are available here. You can find documentation and other tutorials here. A list of Wagtail compatible plugins can be found here. Source code of Wagtail is available here.

Plone

Plone is an open source CMS based on Python and Zope web application server. It has been in development for more than two decades and is best suited for managing content for enterprise level websites / web applications. While as an individual, you can use Plone to manage simple blogs or hobby websites, its offering may not be as robust as other CMS mentioned in this article to manage content for personal blogs. Plone’s main focus is on providing an enterprise level CMS. Main features of Plone include a strong focus on enterprise grade security, media files management, accessibility tools, user management, permission controls, multi-language support and a REST API to manage content from your custom programs.

Installation instructions for Plone are available here. You can find documentation and other tutorials here. A list of Plone compatible plugins can be found here. Source code of Plone is available here.

Lektor

Lektor is a static site generator and CMS combined into one. It supports a “flat file” structure where every piece of data is stored in new or existing files in a tree-like layout. Lektor doesn’t use any sort of SQL database to manage content. It focuses a lot on proper layout and structure for all of its file based content, which helps in better organization of project files and improved version control. Lektor comes with a web-based, graphical admin dashboard to manage and edit your content. You can also use its API to integrate it in other programs.

Installation instructions for Lector are available here. You can find documentation and other tutorials here. A list of Lector compatible plugins can be found here. Source code of Lector is available here.

Superdesk

Superdesk is a “headless” Python based CMS that is specially tailored for journalists and organizations serving news in digital format. The term “headless” here refers to a special kind of CMS that provides backend frontend, APIs and command line tools to create and manage content of your web project, without actually giving you tools to render the data into a HTML website. To render a website, you have to fetch data through its API, write your own frontend from scratch or use a third party service that can provide a frontend to create new web pages by hooking into the API of your headless CMS. Superdesk is mainly focused on providing a backend that facilitates production and distribution of news. Note that Superdesk also offers paid support and services, but the open source version is completely free.

Installation instructions for Superdesk are available here. You can find documentation and other tutorials here. Source code of Superdesk is available here.

Conclusion

These are the only major free and open source Python based CMS that are regularly developed and provide good documentation and community support. Some other Python based CMS software that used to be in development have been archived or put in maintenance mode.

About the author

Nitesh Kumar

I am a freelancer software developer and content writer who loves Linux, open source software and the free software community.