ME

Mezzanine

Lightweight content management framework for Django

Content Management Systems ★ 4.8k stars Medium setup BSD-2-Clause

Mezzanine is an open-source content management platform built on Django that provides a simple yet flexible CMS out of the box. It includes a blog engine, in-line editing, and rich content tools.

Key features

  • Built-in blog engine
  • In-line content editing
  • Hierarchical page tree
  • Django integration

Pros & cons

Strengths

  • Quick to get a Django site running
  • Includes blogging out of the box

Trade-offs

  • Development has slowed
  • Smaller community now

Mezzanine replaces

Last reviewed Sep 13, 2026 · 763 words

Mezzanine's best years were roughly 2012 to 2016, and I would only start a new site on it today if I already had one running or had a very specific reason to want its shape. The project is honest about its state: the commit history is quiet, releases are infrequent, and the community has largely moved to Wagtail. What remains is still a coherent, small Django CMS with 4,821 stars and a BSD-2 licence: a page tree, a blog, inline editing on the front end, and a plain Django admin behind it. Existing installs run fine, and for a Django developer who wants a site up in an afternoon it is still a legitimate choice if they go in with eyes open.

Check the Django version support before anything else

The one hard gate is compatibility. Mezzanine tracks Django slowly, and each Django LTS has historically arrived before the Mezzanine release that supports it. Before you pip install mezzanine, read the current release's Django requirement on PyPI and confirm it matches a Django version still receiving security fixes. If it does not, you are choosing between an unpatched framework and a patch-it-yourself fork, and neither is a place to build. Python version follows the same rule.

The install itself is the pleasant part:

pip install mezzanine
mezzanine-project mysite
cd mysite
python manage.py createdb --noinput
python manage.py runserver

createdb creates the schema and a demo site with a couple of pages and a blog post. From there it is any Django project: settings.py, urls.py, a SQLite database by default that you swap for PostgreSQL in production, gunicorn behind nginx, 512 MB of RAM comfortably.

What you get for the afternoon

Pages form a tree with drag-and-drop ordering in the admin and arbitrary content types (a rich text page, a form page, a gallery, a link). The blog is a full engine with categories, keywords, comments (built in or via Disqus), and feeds. Inline editing puts an edit pencil on every editable region when a staff user views the public site, which non-technical editors genuinely like. A Bootstrap-era default theme, a file browser for media, search across content types, SEO fields on every page, and a settings model editable from the admin round it out. Cartridge, the companion shop app, adds a cart, products, and orders on top if you need a small store.

Everything is a Django model, so extending it is plain Django: subclass Page, register it, write a template named after the model, done. That is the thing Mezzanine did earlier and more simply than its rivals, and it is why some long-running sites never left.

What you give up, in 2026 terms

The admin is Grappelli-flavoured Django admin, not a modern editing interface. There is no block-based content model, so a page is a title plus a rich text blob, which fights anyone trying to build structured layouts. No headless API worth mentioning; you would add Django REST Framework yourself. Third-party packages have thinned out and many of the ones on PyPI target Mezzanine 4.x, so expect to fork or patch. And there is the maintenance question already covered: a CMS that lags its framework is a security-update chore you inherit.

Wagtail and django CMS are the same idea, maintained

Wagtail is where a Django developer should start a new project. It has the StreamField block editor Mezzanine lacks, a headless API, image handling that is a generation ahead, a large maintained addon set, and releases that track Django LTS on schedule. django CMS is the other maintained option, with a placeholder-and-plugin editing model that suits agencies building many templated pages. Both cost more learning time than Mezzanine's afternoon. Neither will leave you stuck on an old Django. If a lighter alternative outside Python is fine, WordPress remains the thing most editors already know, for better and worse.

What I'd do

Existing Mezzanine site that works: keep it, pin the Django version it supports, watch for security releases, and plan a migration on your own timetable rather than under pressure. New site, Django shop: Wagtail, without much deliberation. New site, "I just want a blog in Django this afternoon": Mezzanine will do it, and you will probably be fine for a year or two, but write the migration plan the same day. The CMS category has the wider field; in Django specifically, the field has moved.

Compare Mezzanine

21 head-to-head comparisons.

Similar content management systems apps