An open source content management platform built using the Django framework.
Project description
Created by Stephen McDonald
Overview
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 that provide 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 efficient platform.
Visit the Mezzanine project page to see some of the great sites people have built using Mezzanine.
Features
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:
Hierarchical page navigation
Save as draft and preview on site
Scheduled publishing
Drag-and-drop page ordering
WYSIWYG editing
Drag-and-drop HTML5 forms builder with CSV export
SEO friendly URLs and meta data
Shopping cart module (Cartridge)
Configurable dashboard widgets
Blog engine
Tagging
Free Themes, and a Premium Themes Marketplace
User accounts and profiles with email verification
Translated to over 35 languages
Sharing via Facebook or Twitter
Custom templates per page or blog post
Twitter Bootstrap integration
API for custom content types
Seamless integration with third-party Django apps
Multi-device detection and template handling
One step migration from other blogging engines
Automated production provisioning and deployments
Disqus integration, or built-in threaded comments
Gravatar integration
Google Analytics integration
Twitter feed integration
bit.ly integration
Akismet spam filtering
Built-in test suite
The Mezzanine admin dashboard:
Dependencies
Mezzanine makes use of as few libraries as possible (apart from a standard Django environment), with the following dependencies:
Python 2.6 / 2.7 / 3.3
Django 1.4 / 1.5 / 1.6
Pillow - for image resizing (Python Imaging Library fork)
grappelli-safe - admin skin (Grappelli fork)
filebrowser-safe - for managing file uploads (FileBrowser fork)
bleach and BeautifulSoup - for sanitizing markup in content
South - for database migrations (optional)
django-compressor - for merging JS/CSS assets (optional)
requests and requests_oauthlib - for interacting with external APIs
chardet - for supporting arbitrary encoding in file uploads
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:
$ brew install libjpeg
Themes
A handful of attractive Free Themes are available thanks to @abhinavsohani, while there is also a marketplace for buying and selling Premium Themes thanks to @joshcartme.
Browser Support
Mezzanine’s admin interface works with all modern browsers. Internet Explorer 7 and earlier are generally unsupported.
Installation
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:
$ pip install mezzanine
If you prefer, you can download Mezzanine and install it directly from source:
$ python setup.py install
Once installed, the command mezzanine-project can be used to create a new Mezzanine project in similar fashion to django-admin.py:
$ mezzanine-project project_name $ cd project_name $ python manage.py createdb --noinput $ python manage.py runserver
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.
Contributing
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.
Please note the following guidelines for contributing:
Contributed code must be written in the existing style. For Python (and to a decent extent, JavaScript as well), this is as simple as following the Django coding style and (most importantly) PEP 8. Front-end CSS should adhere to the Bootstrap CSS guidelines.
Contributions must be available on a separately named branch based on the latest version of the main branch.
Run the tests before committing your changes. If your changes cause the tests to break, they won’t be accepted.
If you are adding new functionality, you must include basic tests and documentation.
Here’s a quick start to hacking on Mezzanine after forking it on GitHub, by using the internal “project_template” as your current project:
$ git clone https://github.com/your-github-username/mezzanine/ $ cd mezzanine $ git checkout -b your-new-branch-name $ cp mezzanine/project_template/local_settings.py{.template,} $ python setup.py develop $ python mezzanine/project_template/manage.py createdb --noinput $ python mezzanine/project_template/manage.py runserver "hack hack hack" $ python setup.py test $ git commit -am "A message describing what you changed." $ git push origin your-new-branch-name
Language Translations
Mezzanine makes full use of translation strings, which allow Mezzanine to be translated into multiple languages using Django’s internationalization methodology. Translations are managed on the Transiflex website but can also be submitted via GitHub or Bitbucket. Consult the documentation for Django’s internationalization methodology for more information on creating translations and using them.
Third-party Modules
The following modules have been developed outside of Mezzanine. If you have developed a module to integrate with Mezzanine and would like to list it here, send an email to the mezzanine-users mailing list. You can also add modules 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 text editor.
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 django-flatblocks.
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 Google Calendar/Maps.
mezzanine-polls - Polls application for Mezzanine.
mezzanine-pagedown - Adds the Pagedown WYSIWYG editor to Mezzanine.
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 in templates.
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 Instagram images.
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.
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 for Mezzanine.
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 in Mezzanine.
mezzanine-protected-pages - Restrict access to pages by group membership.
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 subscription list.
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 platform.
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 invite codes.
ansible-mezzanine Full pipeline (dev, staging, production) deployment of Mezzanine using Ansible.
Donating
If you would like to make a donation to continue development of Mezzanine, you can do so via the Mezzanine Project website.
Support
To report a security issue, please send an email privately to security@jupo.org. 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, and all related discussions take place here amongst knowledgeable members of the community.
If you’re certain you’ve come across a bug, then please use the GitHub issue tracker. It’s crucial that enough information is provided to reproduce the bug. This 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, Python version, etc. 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!
Communications in all Mezzanine spaces are expected to conform to the Django Code of Conduct.
Sites Using Mezzanine
Quotes
“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 of Tabblo
“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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.