Version 64 (modified by sorin, 4 years ago) (diff)

added 2 additional todo items

Django CMS Apps Comparison

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 evaluated
Feature Description
demo If the application has a public demo site, a link and login/password are given.
editor Support for WYSIWYG editor(s) and/or markup formats
img Image uploading integrated to page editing
i18n Support for multi-lingual content (versions of pages in different languages)
depth Maximum depth of page hierarchy
i18n-URL URLs (page slugs) can be translated
prefix URL language prefix support (e.g. /de/page1/)
edit-in-place Support for editing page content in-line (as opposed to only in the Django admin)
rearr Visual rearranging of page hierarchy (as opposed to entering index numbers)
slug-dups Page slugs need not be unique unless pages are under the same parent and in the same language
scheduled Scheduled publishing and hiding of pages
extend-navigation The navigation can be extended by 3rd-party apps
plugins The content of the pages can be easily extended by 3rd-party apps
reversion Django-reversion integration or version control
hierarchy-permissions Users can be restricted to edit only some part of the tree
reorderable-blocks Page content consists of several blocks of (optionally) different types which can be visually reordered.
generic-admin Are the Django admin modifications usable only inside the CMS application itself, or can they be used for other models too?
roles Can users have roles? Admin, Editor, Publisher
publisher Can content be edited without being published to the live site immediately?
south Support for django-south or an other DB migration tool

Application django.contrib.flatpages django-simplepages django-page-cms django-cms django-cms-2.0 django-simplecms feincms PyLucid v0.9 Miramar Ella
Mature ? More that 80% test coverage ? 2.0.2 stable
2.1 alpha ? v1.1.0 stable v0.8.x stable
v0.9 alpha Pre-Alpha Production ready Author(s) Django authors James Punteney Batiste Bieler
Jannis Leidel
Antoni Aloy López
Benjamin Wohlwend
Brian Morgan Thomas Steinacher Patrick Lauber
django-page-cms authors (before forking) Eric Simorre Matthias Kestenholz, Martin J. Laubach, Chris Adams and others Jens Diemer and others The Cuba Libre Project / jag Centrum Holdings
Honza Král
Jakub Vysoký
& others demo no no yes yes tour only view no yes (v0.9 alpha) ? tutorial only editor no YUI jQuery-based
EditArea TinyMCE,
Markdown wymeditor / Semantic editor / django-tinymce / anything you want no TinyMCE / anything you want plain html code textarea / TinyMCE / Markup: creole, Textile, Markdown, ReStructuredText ? jQuery-based img no no? yes no? yes no yes ? ? yes i18n no no yes yes yes no yes yes ? no depth ∞ 2 ∞ ∞ ∞ ∞? ∞ ∞ ? ∞* i18n
URL no no yes* yes yes no yes no ? yes* prefix no no yes yes yes no yes yes ? no edit
in-place no yes? yes no yes no yes yes ? no rearr no no? yes yes yes no yes no ? no slug-dups yes (URL-based) yes (URL-based) yes yes yes ? yes yes (but not on the same level) ? yes scheduled no no yes yes yes no yes no ? yes* extend-navigation no no yes kind of yes no yes yes ? yes plugins no no kind of kind of yes no everything is yes ? yes reversion no no yes no yes no yes yes ? ? hierarchy-permissions no ? yes no yes ? yes yes ? yes reorderable-blocks no ? no no yes ? yes no ? no generic-admin-tools no / unmodified admin no no yes yes no yes no ? yes roles no no yes no yes no no no ? yes publisher no no yes no yes no yes no ? yes south no no yes no yes no no no ? yes Column headings and * symbols reveal verbose descriptions when the mouse pointer hovers over them.

This page was originally created by akaihola.

Most of my conclusions about supported features are based on reading the code, not on actually testing the apps. Please make corrections in case I missed something.


To do

Ideas for making this page better:

  • add column for supported Django versions/revisions/branches
  • add column for drag and drop based rearrange
  • django-blocks to be tested
  • add proper documentation to the list of evaluated features
  • add tree building method (eg. mptt / parent_id) for performance comparison
  • add column for the licence (BSD, GPL, ...)
  • add column regarding scaling - how easy is to use them on 500+ pages sites (ex: dropdowns)
  • add JS table filtering, something like (or other)