Code


Version 63 (modified by guettli, 4 years ago) (diff)

to do: add column licence

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
Maturity
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
poweredbypenguins
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
wymeditor
markitup-Markdown
markitup-HTML
TinyMCE
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.

Comments

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, ...)