CMS

This page lists a few well-known reusable Content Management System applications for Django and tries to gather a comparison of essential features in those applications.

Features currently being evaluated

FeatureDescription
Documented Contains thorough documentation.
Page Depth Maximum depth of page hierarchy.
Tags Builtin tag support
Page Sorting Visual rearranging of page hierarchy (as opposed to entering index numbers)
Tests Contains a suite of unit tests.
Multisite Allows a single installation to serve multiple websites.
In-line Editing / Frontend-Editing Support for editing page content in-line (as opposed to only in the Django
admin)
Revision Builtin revision controlled content
SEO Builtin tools for SEO
WYSIWYG Editor Support for WYSIWYG editor(s) and/or markup formats.
South Support Allows south to be used to migrate the database.
Test coverage The current test coverage of the package in percent.
List of Sites Is there a list of sites online that use the CMS?
Main focus What is main target use case for the application (blogs, personal pages, web
magazines)?
App Integration Does the CMS support integration of any Django app which provides at least a
urls.py?
Granular Permissions Is a granular permission system provided?
Plugins The content of the pages can be easily extended by 3rd-party apps.
Media asset merging and compression Media assets JS/CSS are compressed in production mode, with a minimal effort
Demo Site If the application has a public demo site, a link and login/password are given.
Django Versions Which versions of Django are supported?
Multilingual Full builtin multilingual support.
Continuous Integration Does the project have a (public) continuous integration server showing the
community it's current build status?
Pypi Installable Can be automatically installed with dependency resolution via pip or setuptools.
508 compliant? See http://webaim.org/standards/508/checklist
Multi-device Can a single instance serve up different templates for different devices? (eg
mobile phones)
Python 3 compatibility
Multi-Tenant If the CMS supports multiple sites, can they all be hosted from a single running
instance of the application?
Moderation Workflow Allows for complex, enterprise-ready moderation workflows with hierarchical
permission levels and previews of unpublished changes.
Django 1.7 Support Whether the project also supports Django 1.7.
Reuse CMS for a custom content type Is it possible to reuse the CMS for a custom content types (different from the
Page model itself). Example of such would be a Document model tree having the
same management interface as the Page model.
Package Django CMS Wagtail Mezzanine feinCMS django-fiber ella django-categories django-widgy Opps Django page CMS Arkestra django-gitcms PyLucid CMS LFC - Lightning Fast CMS django-fluent-pages Philo Tango Djedi CMS djpcms django-stories ionyweb django-dockitcms gnocchi-cms zorna CMS-Image-Plugin swingcms django-simplepages Merengue django-addendum
Description The easy-to-use and
developer-friendly CMS
A Django content management
system focused on flexibility
and user experience
Content management for Django A Django-based CMS with a
focus on extensibility and
concise code
Django Fiber - a simple,
user-friendly CMS for all your
Django projects
Ella is a CMS based on Python
web framework Django with a
main focus on high-traffic
news websites and Internet ...
This app attempts to provide a
generic category system that
multiple apps could use. It
uses MPTT for the tree ...
A CMS framework for Django
built on a heterogenous tree
editor.
A Django-based CMS for the
magazines, newspappers
websites and portals with
high-traffic
Official Django page CMS git
repository
Arkestra extends Django CMS to
provide an intelligent
semantic web publishing system
for organisations and
institutions.
A git based cms for django PyLucid is a Open Source web
content management system
written in Python using the
Django Framework.
Lightning Fast CMS A flexible, scalable CMS with
custom node types, and
flexible block content.
Foundation for web content
management systems using
Django.
Faster, simpler Django content
management
Django content management as
it should be
DISCONTINUED An application for handling
newspaper-like stories on a
web site.
An API drived, javascript
modification UI CMS based on
django framework
CMS written using
django-dockit
A simple pages-and-templates
CMS with a bit more :)
Open source, Django based CMS
and collaborative web portal
Adapation of the Arkestra
image plugin, simply for
djangoCMS
SwingCMS is a Content
Management System focused on
three main goals: simplicity,
flexibility and solidity. It
is builted on top ...
Easily edit arbitrary text
snippets on a site without a
full-fledged CMS or issuing
another site release. Like a
mini-CMS ...
CategoryFrameworkFrameworkFrameworkFrameworkAppFrameworkAppAppFrameworkAppFrameworkFrameworkFrameworkFrameworkAppFrameworkFrameworkAppFrameworkFrameworkAppFrameworkAppFrameworkAppProjectFrameworkFrameworkApp
# Using This128116447197112132034220010101000041
Python 3?
Development Status Production/Stable Production/Stable Production/Stable Production/Stable Production/Stable Beta Unknown Beta Production/Stable Production/Stable n/a Beta Beta Beta Beta Unknown Beta Unknown Beta Unknown Planning Alpha n/a n/a n/a n/a n/a Unknown Beta
Last updated March 26, 2015, 3:09 p.m. March 29, 2015, 12:34 p.m. March 24, 2015, 11:49 p.m. March 10, 2015, 8:38 a.m. Feb. 10, 2015, 5:27 a.m. April 1, 2014, 8:45 p.m. Nov. 24, 2013, 5:41 p.m. March 25, 2015, 6:51 p.m. March 28, 2015, 12:16 a.m. March 7, 2015, 7:40 a.m. March 15, 2015, 2:45 p.m. Jan. 3, 2015, 8:13 a.m. March 29, 2015, 6:45 a.m. Oct. 16, 2011, 8:59 a.m. March 25, 2015, 2:45 p.m. Feb. 1, 2012, 10:08 a.m. Jan. 19, 2015, 10:13 a.m. March 25, 2015, 12:07 p.m. Feb. 19, 2014, 1:56 p.m. May 2, 2011, 8:54 a.m. April 7, 2013, 4:23 a.m. April 15, 2013, 2:42 p.m. March 10, 2015, 11:14 p.m. April 24, 2014, 2:41 a.m. Feb. 5, 2012, 2:12 a.m. March 30, 2012, 5:12 p.m. Nov. 8, 2014, 10:46 a.m.
Version3.1.0.b11.0b13.1.101.10.11.13.0.131.2.20.4.00.2.111.6.2n/a0.41.6.0.02121.2b30.9c10.9.20.7.11.0b80.9a11.0beta10.30.0.11n/an/an/an/an/a0.9.0-0.2.0-
RepoGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubBitbucketOtherOtherGithub
Commits
Repo Watchers33172363210559547925823420619719613868615954522727231413107742n/an/an/a
Repo Forks127132480120874638724617732131292010211214433n/an/an/an/an/a
Participantsdigi604
ojii
yakky
FinalAngel
mkoistinen
chrisglass
fivethreeo
piquadrat
evildmp
stefanfoulis
more...
kaedroho
gasman
davecranwell
spapas
nealtodd
tomdyson
nimasmi
zerolab
timheap
jeffrey-hearn
more...
stephenmcd
AlexHill
jerivas
invalid-email-address
wrwrwr
sebasmagri
joshcartme
kenbolton
dfalk
Kniyl
more...
matthiask
acdha
DrMeers
bmihelac
sbaechler
stephrdev
bjornpost
jphalip
mattd
schuerpf
more...
dbunskoek
markotibold
mbraak
mvdwaeter
bsimons
bheesink
jbovenschen
vdboor
cscheng
chrisclark
more...
HonzaKral
whit
kvbik
xaralis
iky
aleszoulek
czervenka
Almad
avelino
MichalMaM
more...
coordt
jsoa
justquick
tgecho
epicserve
yakky
iepathos
joshourisman
numerodix
winniehell
more...
gavinwahl
rockymeza
justinstollsteimer
acatton
zmetcalf
pipermerriam
chroto
agroth
davesque
joshk
more...
avelino
rochacbruno
ellisonleao
lerrua
hersonls
mauler
Londerson
DiegoYungh
jeanmask
semente
more...
batiste
wardi
jezdez
jbeaurain
cinghiale
facconi
nicksergeant
aaloy
a-iv
macropin
more...
evildmp
darbula
eclan
spacedman
KristianOellegaard
hejsan
foobacca
ojii
luispedrojedie
ckolumbus
diefenbachvdboor
vinnyrose
gannettchad
borgstrom
floppya
techdragon
maartendraijer
benkonrath
dekkers
huxley
melinath
jspiros
harrislapiroff
kgodey
derega
tBaxter
kennethlove
whatisjasongoldstein
lundberg
chrippa
andreif
hannseman
vtrrsl
lsbardelcoordt
josesoa
rlewko
toddstowell
twtwebdev
wavrin
justquick
Natim
mickaelperrier
zbyte64funkybobnouaya
zorna
crookseyfabiomichelinibennylope
Documentation N/A N/A N/A N/A N/A N/A N/A N/A N/A
Package Django CMS Wagtail Mezzanine feinCMS django-fiber ella django-categories django-widgy Opps Django page CMS Arkestra django-gitcms PyLucid CMS LFC - Lightning Fast CMS django-fluent-pages Philo Tango Djedi CMS djpcms django-stories ionyweb django-dockitcms gnocchi-cms zorna CMS-Image-Plugin swingcms django-simplepages Merengue django-addendum
Documented  http://wagtail.readthedocs.org/en/latest/index.html  http://docs.wid.gy
Page DepthDatabase limited using django-mpttUnlimitedUnlimited, using a single DB query.Database-limited using django-mpttDatabase limited using django-mpttUnlimited with custom implementationIf using the widgy-mezzanine plugin, please refer to Mezzanine.

Otherwise, there is a 64 level depth limit on the content of a page from the django-treebeard MP_Node implementation
Database limited using django-mpttDatabase limited using django-mpttDatabase limitedUnlimitedDatabase limited using django-mpttDatabase limited using django-mpttunlimitedDatabase limitedDatabase limitedUnlimited, using hierarchical menus
Tags , with something like django-taggit  with tagging plugin  flat text tag field for better performance  with django-taggit , with django-tagging  possible through custom page types , with django-taggit 
with translatable tags
Page Sorting  Drag'n'Drop  Via visual interface (uses a mobile device friendly paradigm instead of drag-and-drop)  Drag n drop  Drag'n'drop  Drag'n'Drop  not required for the target use case  not required  Drag'n'Drop and normal clickedit page and change parentCut'n Paste  Drag'n'DropDrag'n'drop 
Drag and drop
Tests 
Unit tests and selenium test suites
Multisiteprovided by Mezzanine if using the widgy-mezzanine plugin 
By microsites plugin
In-line Editing / Frontend-Editing  (In 2.1+)  not required for target use case  not required  planned
Revision , with django-reversion , see http://docs.wid.gy/en/latest/design/versioning.html , with django-reversionPlanned  planned, please contribute , with django-reversion 
with django-reversion
Planned
SEO
WYSIWYG Editor  with plugins , widgy provides a custom drag and drop editor, see http://docs.wid.gy/en/latest/design/javascript.html, it's extensible and can be used to create powerful things, like Forms and Maps.  OppsEditor
- TinyMCE
- Redactor
- Aloha
  any WYSIWYG editor supported 
CKEditor for Pages
Codemirror for Templates and CSS
  (FCKEditor)
South Support  Full schema and data migrations for South are included  FeinCMS itself does not use South. Using South in your FeinCMS-using projects is fully supported though.  migrations are provided and maintainedProvides migration scripts based on South. 
All models created with south
Test coverage87%93% https://coveralls.io/r/torchbox/wagtail?branch=master70%83%75%85%31 %About 90%80 %94%
List of Sites 

Case Studies: https://www.django-cms.org/en/case-studies/

List of Sites: https://www.django-cms.org/en/case-studies/list/
 

List of sites:
https://github.com/torchbox/wagtail/wiki/Public-Wagtail-sites
  http://mezzanine.jupo.org/sites/  Almost everything here: http://www.feinheit.ch/portfolio/projekte/https://www.djangopackages.com/packages/p/django-fiber/See in the docs: http://ella.rtfd.org/http://www.oppsproject.org

# using

http://www.virgula.com.br
http://www.guiame.com.br
http://www.grupotroiano.com.br
http://www/jovempan.com.br
http://www.partidopirata.com.br
Multilingual and multisite:
https://www.moulin.nl/
http://www.waka-waka.com/
http://wakawakafoundation.org/
http://www.solarforsyria.org/
http://www.solarforphilippines.org/

Single instances:
http://django-fluent.org/
http://studentbattle.nl/
http://www.edoburu.nl/
http://www.swingcms.net/view/folder/5  http://www.merengueproject.org/
http://spinoff.ugr.es/
http://ofertaimasd.ugr.es/
Main focusDjango CMS is built to be extended because every page has other requirements. Our focus is on the most flexibility for the developer AND the content manager.Wagtail was created to offer maximum flexibility for developers and the best possible experience for content editors and creators, with powerful best-in-class core functionality which ranges from integration of ElasticSearch to automatic feature detection for intelligent cropping of photos.

Wagtail's editing interface is entirely independent of Django Admin / Grappelli. It has been custom designed for optimal user experience, and it is lightweight, responsive, and fast.

Although it will happily power a blog or small website, Wagtail is a compelling choice for large-scale and enterprise projects. It can be used to implement websites of any size, scaling to cope with many thousands of pages (for example http://www.rca.ac.uk, which has over 10,000) and incorporating high end features like native support for automated cache invalidation for frontend caches such as Varnish, Squid, etc.
Grappelli based admin for managing a hierarchical page tree, with page types extendable via core API.

Included page types range from simple WYSIWYG pages, to advanced types such as admin user built forms, and shopping categories via Cartridge.

Many extras included such as blogging, user accounts, tagging, ratings, media library (via custom FileBrowser), thumbnailing, and threaded comments.

Content can also be edited inline on the site itself.
Being the most flexible CMS system by providing 1. a CMS for managing a tree of pages and 2. providing the basic building blocks to build your own modules such as blogs, articles etc. and being able to reuse CMS content types.

Short: Customization, reuse, reuse and reuse.
Django Fiber is a simple, open-source, user-friendly CMS for all your django projects. It complements your project, it doesn't take it over.

It allows you to create simple textual, template based pages, add simple content items in pages and views, and adds simple menus that always work.

All this can be maintained using a friendly frontend admin interface.
Content-rich news websites and magazines, blogs. Can be used for personal pages too though.django-widgy is a heterogeneous tree editor for Django that is well-suited for use as a CMS. A heterogeneous tree is a tree where each node can be a different type—just like HTML. Widgy provides the representation for heterogeneous trees as well as an interactive JavaScript editor for them. Widgy supports Django 1.4+.

Widgy was originally created for powerful content management, but it can have many different uses.

It provides optional integration with Mezzanine using widgy_mezzanine.
High traffic flexible content portals and magazines with API integrations and automated contentDjango page CMS focus on Page hierarchy with rich content. It aims to be a building block that integrate into the admin seamlessly and that you can complement with your own Django applications. Scalability and performance.

Starting from small and simple sites up to large content-rich sites.
Custom page types give developers the flexibility to create the best possible experience for content managers.
Djedi CMS is a lightweight but yet powerful Django content management system with plugins, inline editing and performance in mind.

Easily described as gettext on steroids with revisions and plugins.

Supports multilingual and local flavored translations accessible from views and templates.
App Integration  Django Fiber itself integrates with Django, so it's the other way around. This means the full power of Django can be used for apps, and Django Fiber will play along nicely. , django-widgy is just an app, additionally if you wanted to add apps into the Mezzanine page tree, check out widgy.contrib.urlconf_include.  yes yes yes

yes extendable with Opps-Apps

+20 apps already available in github repo
 ++
Is an app itself, and features easily utilised transparently by other apps
Granular PermissionsEasily buildable using request processors. , permissions down to the widget level  possible by integrating django-guardian
Plugins  Most enhancements are code reviewed and rolled into the core. 'Contrib' modules include static site generation, sitemap generation and frontend cache validation management.  Extendable content types and seamless no-config integration with external Django apps. Check out the Mezzanine grid on Django Packages: http://www.djangopackages.com/grids/g/mezzanine/Core design philosophyDjango Fiber itself can be considered a plugin for Django, which we believe is the right way to go.  core design philosophy  all widgets are just Django models + a template, all of the widgets are actually implemented as contrib apps. Here's how to write a widget: http://docs.wid.gy/en/latest/tutorials/first-widget.html  extendable with Opps-Apps  by subclassing a placeholder +

custom page type models
flexible content blocks (via django-fluent-contents)
 
Installed by webmaster, without change settings.INSTALLED_APPS
Media asset merging and compressionCan and should be handled by 3rd party apps  Built-in optional integration with django-compressorAsset collection from content types / plugins: Yes
Compression: No, should be done in 3rd party app
  using django-compressorshould be handled by 3rd party tool  with django-compressor , in django-compressor branch  in trunkCan and should be handled by 3rd party apps (e.g. django-compressor)
Demo Sitehttp://demo.django-cms.org/  A feature complete demo package is provided for easy local installation - https://github.com/torchbox/wagtaildemo/  http://mezzanine.jupo.org  https://github.com/ridethepony/django-fiber-examplehttp://demo.wid.gy/create-demo-site/http://demo.pylucid.net/http://demo.django-lfc.com/, http://trunk.django-lfc.com/http://djpcms.comhttp://dockitcmsdemo.herokuapp.com/http://demo.merengueproject.org/
admin/admin
Django Versions1.1 (2.0.x)
1.2 (2.1.x)
1.3 (2.2.x)
1.4 (2.3.x)
1.5 (2.4.x)
1.6 (3.0.x)
1.7 (3.0.6)
1.6
1.7
Mezzanine <= 0.12.5 supports Django 1.1 to 1.3

Mezzanine >= 1.0.0, <= 1.4.2 supports Django 1.3 to 1.4

Mezzanine >= 1.4.3, <= 1.4.16 supports Django 1.4 to 1.5

Mezzanine 3.0 supports Django 1.4 to 1.6
1.4.x
1.5.x
1.6.x
1.7.x
1.4, 1.5, 1.6, 1.71.1 (for version 1.2.*)
1.3 (for versions 2.* and 3.*)
1.4 - 1.6, 1.7 support is limited by Mezzanine1.31.4
1.5
1.6
1.4
1.5
1.1+ (1.0)
1.3 (1.1)
1.31.1 (0.7.X)
1.3 (0.8.X)
MultilingualNot specifically supported, but easily implemented with multi-tenant support.  not often used in target use case
Continuous Integrationhttps://travis-ci.org/divio/django-cms/  https://travis-ci.org/torchbox/wagtail  http://travis-ci.org/#!/stephenmcd/mezzanine  https://travis-ci.org/feincms/feincms  http://travis-ci.org/#!/ridethepony/django-fiberhttps://travis-ci.org/ella/ellahttps://travis-ci.org/fusionbox/django-widgy 
- https://drone.io/github.com/opps/opps/latest
- https://travis-ci.org/opps/opps

https://travis-ci.org/batiste/django-page-cms  https://travis-ci.org/edoburu/django-fluent-pageshttps://travis-ci.org/5monkeys/djedi-cms
Pypi Installable
508 compliant?
Multi-device  Editing UI is fully responsive
Python 3 compatibility  (In version 3.0 and higher Python 3.3 and higher are supported)  Currently supports 3.2, 3.3, 3.4  Python 3.3  Python 3.2
+ Python 3.3
Multi-Tenantdjango.contrib.sites is supported
Moderation Workflow  Currently supports single-stage moderation , see http://docs.wid.gy/en/latest/contrib/review-queue/index.html  in a very basic way  planned, please contribute
Django 1.7 Supportwaiting on Mezzanine for Django 1.7 support
Reuse CMS for a custom content typeAll widgets are implemented this way, see http://docs.wid.gy/en/latest/tutorials/first-widget.html and http://docs.wid.gy/en/latest/tutorials/proxy-widget.html

(for page types using widgy_mezzanine, please refer to Mezzanine docs)
Package Django CMS Wagtail Mezzanine feinCMS django-fiber ella django-categories django-widgy Opps Django page CMS Arkestra django-gitcms PyLucid CMS LFC - Lightning Fast CMS django-fluent-pages Philo Tango Djedi CMS djpcms django-stories ionyweb django-dockitcms gnocchi-cms zorna CMS-Image-Plugin swingcms django-simplepages Merengue django-addendum
Search WeightPackageDescriptionLast PyPI release:Repo ForksWatchers
{{item.weight / max_weight * 100 | number:0}}%{{item.title}}Grid: {{item.description}} {{item.last_released | date: 'mediumDate'}} N/A {{item.repo_forks}} N/A {{item.repo_watchers}} N/A