Mezzanine is a powerful, consistent, and flexible content management
platform. Built using the Django framework, Mezzanine provides a
simple yet highly extensible architecture that encourages diving in
and hacking on the code. Mezzanine is BSD licensed and supported by
a diverse and active community.
In some ways, Mezzanine resembles tools such as Wordpress,
providing an intuitive interface for managing pages, blog posts, form
data, store products, and other types of content. But Mezzanine is
also different. Unlike many other platforms that make extensive use of
modules or reusable applications, Mezzanine provides most of its
functionality by default. This approach yields a more integrated and
Visit the Mezzanine project page to see some of the great sites
people have built using Mezzanine.
In addition to the usual features provided by Django such as MVC
architecture, ORM, templating, caching and an automatic admin
interface, Mezzanine provides the following:
The Mezzanine admin dashboard:
To report a security issue, please send an email privately to
email@example.com. This gives us a chance to fix the issue
and create an official release prior to the issue being made public.
For all other Mezzanine support, the primary channel is the
mezzanine-users mailing list. Questions, comments, issues, feature
requests, and all other related discussions should take place here.
If you’re certain you’ve come across a bug, then please use the
GitHub issue tracker, however it’s crucial that enough information
is provided to reproduce the bug, ideally with a small code sample repo
we can simply fork, run, and see the issue with. Other useful
information includes things such as the Python stack trace generated by
error pages, as well as other aspects of the development environment
used, such as operating system, database, and Python version. If
you’re not sure you’ve found a reproducible bug, then please try
the mailing list first.
Finally, feel free to drop by the #mezzanine IRC channel on
Freenode, for a chat! Lastly, communications in all Mezzanine spaces
are expected to conform to the Django Code of Conduct.
Mezzanine is an open source project managed using both the Git and
Mercurial version control systems. These repositories are hosted on
both GitHub and Bitbucket respectively, so contributing is as
easy as forking the project on either of these sites and committing
back your enhancements.
If you would like to make a donation to continue development of
Mezzanine, you can do so via the Mezzanine Project website.
- “I’m enjoying working with Mezzanine, it’s good work”
- Van Lindberg, Python Software Foundation chairman
- “Mezzanine looks like it may be Django’s killer app”
- Antonio Rodriguez, ex CTO of Hewlett Packard, founder
- “Mezzanine looks pretty interesting, tempting to get me off
Wordpress” - Jesse Noller, Python core contributor,
Python Software Foundation board member
- “I think I’m your newest fan. Love these frameworks”
- Emile Petrone, integrations engineer at Urban Airship
- “Mezzanine is amazing” - Audrey Roy, founder of PyLadies
and Django Packages
- “Mezzanine convinced me to switch from the Ruby world over
to Python” - Michael Delaney, developer
- “Like Linux and Python, Mezzanine just feels right” - Phil Hughes,
Linux For Dummies author, The Linux Journal columnist
- “Impressed with Mezzanine so far” - Brad Montgomery, founder
of Work For Pie
- “From the moment I installed Mezzanine, I have been delighted, both
with the initial experience and the community involved in its
development” - John Campbell, founder of Head3 Interactive
- “You need to check out the open source project Mezzanine. In one
word: Elegant” - Nick Hagianis, developer
The easiest method is to install directly from pypi using pip by
running the command below, which will also install the required
dependencies mentioned above:
If you prefer, you can download Mezzanine and install it directly from
$ python setup.py install
Once installed, the command mezzanine-project can be used to
create a new Mezzanine project in similar fashion to
$ mezzanine-project project_name
$ cd project_name
$ python manage.py createdb --noinput
$ python manage.py runserver
The createdb command is a shortcut for using Django’s
migrate command, which will also install some demo content,
such as a contact form, image gallery, and more. If you’d like to
omit this step, use the --nodata option with createdb.
You should then be able to browse to http://127.0.0.1:8000/admin/ and
log in using the default account (username: admin, password:
default). If you’d like to specify a different username and password
during set up, simply exclude the --noinput option included above
when running createdb.
For information on how to add Mezzanine to an existing Django project,
see the FAQ section of the documentation.
Mezzanine makes use of as few libraries as possible (apart from a
standard Django environment), with the following dependencies, which
unless noted as optional, should be installed automatically following
the above instructions:
Users on Debian or Ubuntu will require some system packages to support
the imaging library:
$ apt-get install libjpeg8 libjpeg8-dev
$ apt-get build-dep python-imaging
OSX users can do the same via Homebrew:
Mezzanine’s admin interface works with all modern browsers.
Internet Explorer 7 and earlier are generally unsupported.
The following plug-ins have been developed outside of Mezzanine. If you
have developed a plug-in to integrate with Mezzanine and would like to
list it here, send an email to the mezzanine-users mailing list, or
better yet, fork the project and create a pull request with your
plug-in added to the list below. We also ask that you add it to the
Mezzanine Grid on djangopackages.com.
- Cartridge - ecommerce for Mezzanine.
- Drum - A Hacker News / Reddit clone powered by Mezzanine.
- mezzanine-html5boilerplate - Integrates the
html5boilerplate project into Mezzanine.
- mezzanine-mdown - Adds Markdown support to Mezzanine’s rich
- mezzanine-openshift - Setup for running Mezzanine on
Redhat’s OpenShift cloud platform.
- mezzanine-stackato - Setup for running Mezzanine on
ActiveState’s Stackato cloud platform.
- mezzanine-blocks - A Mezzanine flavored fork of
- mezzanine-widgets - Widget system for Mezzanine.
- mezzanine-themes - A collection of Django/Mezzanine templates.
- mezzanine-twittertopic - Manage multiple Twitter topic feeds
from the Mezzanine admin interface.
- mezzanine-captcha - Adds CAPTCHA field types to Mezzanine’s
forms builder app.
- mezzanine-bookmarks - A multi-user bookmark app for Mezzanine.
- mezzanine-events - Events plugin for Mezzanine, with geocoding
via Google Maps, iCalendar files, webcal URLs and directions via
- mezzanine-polls - Polls application for Mezzanine.
- mezzanine-pagedown - Adds the Pagedown WYSIWYG editor to
- mezzanine-careers - Job posting application for Mezzanine.
- mezzanine-recipes - Recipes plugin with built-in REST API.
- mezzanine-slides - Responsive banner slides app for Mezzanine.
- mezzyblocks - Another app for adding blocks/modules to Mezzanine.
- mezzanine-flexipage - Allows designers to manage content areas
- mezzanine-instagram - A simple Instagram app for Mezzanine.
- mezzanine-wiki - Wiki app for Mezzanine.
- mezzanine-calendar - Calendar pages in Mezzanine
- mezzanine-facebook - Simple Facebook integration for Mezzanine.
- mezzanine-instagram-gallery - Create Mezzanine galleries using
- mezzanine-cli - Command-line interface for Mezzanine.
- mezzanine-categorylink - Integrates Mezzanine’s Link pages with
its blog categories.
- mezzanine-podcast - A simple podcast streamer and manager for
- mezzanine-linkcollection - Collect links. Feature them. Share
them over RSS.
- cash-generator - Generate GnuCash invoices with Mezzanine.
- mezzanine-foundation - Zurb Foundation theme for Mezzanine.
- mezzanine-file-collections - Simple file collection page type
- mezzanine-wymeditor - WYMeditor adapted as the rich text
editor for Mezzanine.
- mezzanine-meze - Adds support for reStructuredText,
Pygments and more, to Mezzanine’s rich text editing.
- mezzanine-pageimages - Add background and banner images per page
- mezzanine-protected-pages - Restrict access to pages by group
- mezzanine-page-auth - A Mezzanine module for add group-level
permission to pages.
- django-widgy - Widget-oriented content editing. Includes an
adapter for Mezzanine and a powerful form builder.
- mezzanine-admin-backup - Export your Mezzanine database and assets
directly from the admin.
- mezzanine-mailchimp - Integrate Mezzanine forms with a MailChimp
- mezzanine-grappelli - Integrates latest upstream
grappelli/filebrowser with Mezzanine.
- mezzanine-workout - Store and display FIT data in Mezzanine.
- mezzanine-agenda - Event functionality for your Mezzanine sites.
- mezzanine-dpaste - Integrate dpaste, a Django pastebin, into
your Mezzanine site.
- mezzanine-linkdump - Create, display and track links in Mezzanine.
- mezzanine-people - Categorize and list people in Mezzanine.
- mezzanine-webf - Fabfile for deploying Mezzanine to Webfaction.
- mezzanineopenshift Another setup for Redhat’s OpenShift cloud
- mezzanine-bsbanners - Add Twitter Bootstrap Carousels and
Jumbotrons to Mezzanine.
- mezzanine-business-theme - Starter business theme for Mezzanine.
- open-helpdesk - A helpdesk app built with Mezzanine.
- mezzanine-invites - Allow site registration via alphanumeric
- ansible-mezzanine - Full pipeline (dev, staging, production)
deployment of Mezzanine using Ansible.
- mezzanine-modal-announcements - Popup announcements for Mezzanine
websites via Bootstrap modals.
- mezzanine-buffer - Buffer integration for Mezzanine.
- mezzanine-slideshows - Allows placement of Mezzanine galleries
within other Mezzanine pages as slideshows.
- mezzanine-onepage - Design helper for single-page Mezzanine sites.
- mezzanine-api - RESTful web API for Mezzanine.
- mezzanine-smartling - Integrates Mezzanine content with
- mezzanine-shortcodes - Wordpress shortcodes for Mezzanine.
Sites Using Mezzanine
Got a site built with Mezzanine? You can add it to the gallery on
the Mezzanine project page by adding it to the list below - just
fork the project and create a pull request. Please omit the trailing
slash in the URL, as we manually add that ourselves to feature