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
Revision Builtin revision controlled content
Page Sorting Visual rearranging of page hierarchy (as opposed to entering index numbers)
Tags Builtin tag support
Page Depth Maximum depth of page hierarchy.
Documented Contains thorough documentation.
Tests Contains a suite of unit tests.
SEO Builtin tools for SEO
Multisite Allows a single installation to serve multiple websites.
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)?
Media asset merging and compression Media assets JS/CSS are compressed in production mode, with a minimal effort
Plugins The content of the pages can be easily extended by 3rd-party apps.
Granular Permissions Is a granular permission system provided?
App Integration Does the CMS support integration of any Django app which provides at least a
urls.py?
Multilingual Full builtin multilingual support.
Django Versions Which versions of Django are supported?
Demo Site If the application has a public demo site, a link and login/password are given.
Pypi Installable Can be automatically installed with dependency resolution via pip or setuptools.
Continuous Integration Does the project have a (public) continuous integration server showing the
community it's current build status?
508 compliant? See http://webaim.org/standards/508/checklist
Python 3 compatibility
Multi-device Can a single instance serve up different templates for different devices? (eg
mobile phones)
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.
In-line Editing / Frontend-Editing Support for editing page content in-line (as opposed to only in the Django
admin)
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 zorna gnocchi-cms CMS-Image-Plugin swingcms django-addendum django-simplepages Merengue
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
Open source, Django based CMS
and collaborative web portal
A simple pages-and-templates
CMS with a bit more :)
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 ...
CategoryFrameworkFrameworkFrameworkFrameworkAppFrameworkAppAppFrameworkAppFrameworkFrameworkFrameworkFrameworkAppFrameworkFrameworkAppFrameworkFrameworkAppFrameworkFrameworkAppAppProjectAppFrameworkFramework
# Using This131176647197112132034220010100100104
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 Beta n/a Unknown
Last updated May 1, 2015, 4:48 a.m. April 30, 2015, 6:42 a.m. April 25, 2015, 9:18 p.m. April 22, 2015, 10:01 a.m. Feb. 10, 2015, 5:27 a.m. April 1, 2014, 8:45 p.m. Nov. 24, 2013, 5:41 p.m. May 1, 2015, 6:36 p.m. April 28, 2015, 2:27 p.m. April 28, 2015, 9:54 a.m. May 2, 2015, 5:49 a.m. Jan. 3, 2015, 8:13 a.m. May 2, 2015, 6:07 a.m. Oct. 16, 2011, 8:59 a.m. April 30, 2015, 4:42 a.m. Feb. 1, 2012, 10:08 a.m. April 29, 2015, 10:06 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. April 13, 2015, 4:25 a.m. April 23, 2015, 2:03 a.m. Feb. 5, 2012, 2:12 a.m. March 30, 2012, 5:12 p.m. April 16, 2015, 1:33 p.m.
Version3.1.0rc21.0b13.1.101.11.01.13.0.131.3b10.6.10.2.111.8.0n/a0.41.6.0.02121.2b30.9c10.9.20.7.11.0b80.9a11.0beta10.30.0.11n/an/an/an/a-0.2.0-n/a0.9.0
RepoGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubBitbucketGithubOtherOther
Commits
Repo Watchers339125572142600485258235211202196139686159545228272314131087431n/an/a
Repo Forks130934982720876638829647732131292010210213433n/an/a1n/an/a
Participantsdigi604
ojii
yakky
FinalAngel
mkoistinen
chrisglass
fivethreeo
evildmp
piquadrat
stefanfoulis
more...
kaedroho
gasman
davecranwell
spapas
nealtodd
tomdyson
nimasmi
zerolab
timheap
jeffrey-hearn
more...
stephenmcd
AlexHill
jerivas
invalid-email-address
wrwrwr
sebasmagri
Kniyl
joshcartme
kenbolton
dfalk
more...
matthiask
acdha
DrMeers
bmihelac
sbaechler
stephrdev
bjornpost
jphalip
mattd
skyl
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
ervilis
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
benkonrath
maartendraijer
bashu
dekkers
more...
melinath
jspiros
harrislapiroff
kgodey
derega
tBaxter
kennethlove
whatisjasongoldstein
lundberg
chrippa
andreif
hannseman
vtrrsl
lsbardelcoordt
josesoa
rlewko
toddstowell
twtwebdev
wavrin
justquick
Natim
mickaelperrier
zbyte64nouaya
zorna
nam4dev
funkybobcrookseyfabiomichelinibennylope
jonashagstedt
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 zorna gnocchi-cms CMS-Image-Plugin swingcms django-addendum django-simplepages Merengue
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
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
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 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
Documented  http://wagtail.readthedocs.org/en/latest/index.html  http://docs.wid.gy
Tests 
Unit tests and selenium test suites
SEO
Multisiteprovided by Mezzanine if using the widgy-mezzanine plugin 
By microsites plugin
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.
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)
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
Granular PermissionsEasily buildable using request processors. , permissions down to the widget level  possible by integrating django-guardian
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
MultilingualNot specifically supported, but easily implemented with multi-tenant support.  not often used in target use case
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)
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
Pypi Installable
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
508 compliant?
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-device  Editing UI is fully responsive
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
In-line Editing / Frontend-Editing  (In 2.1+)  not required for target use case  not required  planned
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 zorna gnocchi-cms CMS-Image-Plugin swingcms django-addendum django-simplepages Merengue
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