In search of customizable CMS for Django

Wait… just use WordPress! This is often the answer you’ll get when asking for an open-source CMS framework. But what if you search for a tool that is:

  • Easy to customize.
  • Doesn’t take a control over your ideas, i.e. allows you to shape the whole thing.
  • Powered by a new and fast technology.
  • Allows the rest of your custom application code to run alongside.

And you also want it to be backed by Django (because we love it here at Tivix). Things can get quite complex from here because there are a lot of nice CMS frameworks for Django. I’ve taken a quick look at current top 3 players and here is a short comparison chart:

 

Django CMS

Wagtail

Mezzanine

Design

Complex; many features built-in, limited customizability; more like a standalone product.

Just base CMS functionality; good flexibility, easy to extend and customize.

Lighter than Django CMS but still more like a standalone product.

Main focus

All-in-one CMS product. Heavy but functional, “Wordpress made in Django”.

Flexibility and user experience (including content creators).

Similar to Django CMS but lighter and more flexible. But also more conservative and just feels a little archaic.

GitHub stars

~3100

~2100

~2000

Maturity

March 8, 2009

January 19, 2014

June 6, 2010

Test coverage

87%

93%

70%

Editing UI responsivity

No (standard Django admin page).

Yes, customized UI, mobile friendly.

No (standard Django admin page).

Search engine

Haystack integration but not officially supported.

Official support for Elasticsearch, live search, auto-complete

Custom, built-in solution.

Source: Django Packages grid (click for more details on each CMS), official pages of those apps and subjective conclusions. Data as of November 2014.

Who’s the winner? Given the initial postulates, I’m choosing Wagtail. It’s a simple, base CMS framework with just the basic set of features that you are in charge to extend. It has all the standard CMS features needed by 90% of sites. It’s not as heavyweight as Django CMS. Custom features can be easily integrated because Wagtail is developed to be a non invasive addition to your project (it can be integrated into current project easily just by enabling Django Wagtail apps, choosing only the features you want).

Wagtail is rapidly developing and has already overtaken Mezzaine by popularity in the GitHub community, regardless of being a much younger project. The main reasons behind this are:

  • Stays out of the way of developers allowing easy customizations.
  • Pretty and usable UI/UX for content creators (+ mobile devices friendly).
  • Integrates new technologies fast (i.e. Elasticsearch for live content search).
  • Modern and functional looks and internals.
  • Developed by editors for editors (initially built for Royal College of Art).
  • Vagrant setup provided for easy start (demo app).

Want to see it action? See the Wagtail site and check out this 3 minute video covering reader and content editor experience: RCA on Wagtail. At Tivix, we are already using it for a few of our projects and are are happy with it. I can’t wait to see how it’ll evolve and what Wagtail’s next release will bring to the world of CMS.