ANN: Mezzanine 1.0 released

1,260 views
Skip to first unread message

Stephen McDonald

unread,
Mar 3, 2012, 6:51:02 PM3/3/12
to django...@googlegroups.com
Hi Djangonauts,

I'm happy to announce the release of Mezzanine 1.0. Mezzanine is simple yet powerful BSD licensed CMS for building Django powered sites. 

Development of Mezzanine and its sister project Cartridge (ecommerce for Mezzanine) began over two years ago, born from frustrations with the only options available at the time which were django-page-cms and Satchmo, and from a decade's experience in building proprietary CMSes and ecommerce solutions, prior to working with Django. Since then it has grown from real world requirements at a fast paced web development agency in Australia, and has received contributions from many dozens of developers on GitHub and Bitbucket, with a wider community of hundreds on the mailing list. Mezzanine and Cartridge have been used to power a long list of production sites, from personal blogs and agency sites, to some of the highest traffic content sites and ecommerce stores for some of the largest brands in Australia.

Here's an overview of Mezzanine's features:

- Hierarchical navigation tree, with page nodes extendable by Mezzanine's content type system. Content types are simply subclases of Mezzanine's Page model - subclass away and your new type is available. 
- Inline front-end site editing that can be applied to any models: Mezzanine's, third party apps, or your own.
- Blogging app (regular Django app).
- Gallery app (a Mezzanine content type).
- Mobile device handling. Build separate mobile versions of templates where required to run a mobile version of the site - no separate URLs or views required.
- Form builder app (a Mezzanine content type). Admin users create their own forms, and view form submissions via the admin, or export them via CSV.
- Mezzanine projects are standard Django projects - admin, urlpatterns, views, models. Third party Django apps plug straight in without special handling.
- Built-in search engine.
- South migrations.
- Admin editable settings.
- Full test suite, continuously integrated (with Travis CI) including automated pep8/pyflakes integration. The code base is painstakingly clean.
- Fully documented, available on the Mezzanine project site as well as on Read The Docs.
- Translated into around a dozen languages, managed via Transifex.
- Grappelli/Filebrowser based admin. Third party Django admin classes plug straight in.
- Full featured ecommerce via Cartridge - a separate ecommerce app built for Mezzanine.
- All functionality comes with default templates to get you started, integrated with Bootstrap 2.0.
- Integrated with Django's sites app.
- A set of generic foreignkey types and models: tagging, threaded comments and ratings. All denormalised with counts, averages, etc.

To be honest, you could almost implement everything Mezzanine does by combining dozens of different open source Django apps that are out there. What you get from Mezzanine though, is everything integrated seamlessly out of the box, leaving you free to focus on building your site.

In conjunction with the Mezzanine 1.0 release, I've also released Cartridge 0.4. As I mentioned, Cartridge provides a full ecommerce package for Mezzanine. While Mezzanine is more of a framework for building sites with any type of content you need to, Cartridge is much more opinionated in its function, namely how a store should be set up, and is more of a standard Django app that implements the most common features you'd find in an online store. Like Mezzanine, Cartridge has been under development for a couple of years now. Since I haven't posted to django-users about either Mezzanine or Cartridge before, here's an overview of Cartridge's features as well:

- Hierarchical shop categories. These are just Mezzanine content types and hook into your site's navigation.
- Single interface for setting up a product, with 0 to N variations.
- Arbitrary product options (colours, sizes, etc).
- Hooks for shipping calculations and payment gateway.
- Sale pricing.
- Promotional discount codes.
- PDF invoice generation (for packing slips).
- Stock control.
- Dynamic categories (by price range, colour, etc).
- Registered or anonymous checkout.
- Configurable nunber of checkout steps.

So if you have a CMS or ecommerce Django project coming up, please check out Mezzanine and Cartridge. If you have any questions or comments, please let us know via the mailing list. Myself and other members of the community are quick to reply on there, and always open to suggestions and feedback.

Mezzanine project homepage: http://mezzanine.jupo.org (includes a gallery of sites powered by Mezzanine, as well as a live Mezzanine/Cartridge demo. User: demo / pass: demo)
Mezzanine/Cartridge mailing list: http://groups.google.com/group/mezzanine-users




Cheers,
Steve


--
Stephen McDonald
http://jupo.org

arshaver

unread,
Mar 3, 2012, 8:55:33 PM3/3/12
to Django users
Looks great. One thing... looks like http://mezzanine.jupo.org/ is
running with Debug = True (try http://mezzanine.jupo.org/asdf). Maybe
you're aware, just FYI.
> Mezzanine project homepage:http://mezzanine.jupo.org(includes a gallery
> of sites powered by Mezzanine, as well as a live Mezzanine/Cartridge demo.
> User: demo / pass: demo)
> Mezzanine/Cartridge mailing list:http://groups.google.com/group/mezzanine-users
>
> Mezzanine docs:http://mezzanine.jupo.org/docs/orhttp://mezzanine.rtfd.org/
> Cartridge docs:http://cartridge.jupo.orgorhttp://cartridge.rtfd.org/

uno...@gmail.com

unread,
Mar 3, 2012, 10:16:30 PM3/3/12
to Django users
Stephen,

Amazing work with Mezzanine and Cartridge. One question I had for you
- have you considered separating Cartridge from the dependency on
Mezzanine. I think Cartridge adoption will increase quite a lot if the
interdependency is removed. I realize though, that this means more
issues with managing both projects and added work to maintain both of
them. But just a thought.

On Mar 3, 3:51 pm, Stephen McDonald <st...@jupo.org> wrote:
> Mezzanine project homepage:http://mezzanine.jupo.org(includes a gallery
> of sites powered by Mezzanine, as well as a live Mezzanine/Cartridge demo.
> User: demo / pass: demo)
> Mezzanine/Cartridge mailing list:http://groups.google.com/group/mezzanine-users
>
> Mezzanine docs:http://mezzanine.jupo.org/docs/orhttp://mezzanine.rtfd.org/
> Cartridge docs:http://cartridge.jupo.orgorhttp://cartridge.rtfd.org/

Stephen McDonald

unread,
Mar 3, 2012, 10:24:08 PM3/3/12
to Django users
Yes - behind the project homepage is the entire demo site where anyone
can log in and try it out. I've left debug on so that when people find
errors on it they can submit the traceback easily. It's been really
helpful on the few occasions it has happened.

On Mar 4, 12:55 pm, arshaver <anthony.r.sha...@gmail.com> wrote:
> Looks great. One thing... looks likehttp://mezzanine.jupo.org/is
> running with Debug = True (tryhttp://mezzanine.jupo.org/asdf). Maybe
> > Mezzanine project homepage:http://mezzanine.jupo.org(includesa gallery

Stephen McDonald

unread,
Mar 3, 2012, 10:26:46 PM3/3/12
to Django users
Thank you.

I don't think the dependency will ever go away. It would be like
trying to remove Django as a dependency of Mezzanine. Cartridge
heavily leverages many aspects of Mezzanine.
> > Mezzanine project homepage:http://mezzanine.jupo.org(includesa gallery

Bolang

unread,
Mar 3, 2012, 11:05:45 PM3/3/12
to django...@googlegroups.com
On 03/04/2012 06:51 AM, Stephen McDonald wrote:

> In conjunction with the Mezzanine 1.0 release, I've also released
> Cartridge 0.4. As I mentioned, Cartridge provides a full ecommerce
> package for Mezzanine. While Mezzanine is more of a framework for
> building sites with any type of content you need to, Cartridge is much
> more opinionated in its function, namely how a store should be set up,
> and is more of a standard Django app that implements the most common
> features you'd find in an online store. Like Mezzanine, Cartridge has
> been under development for a couple of years now. Since I haven't posted
> to django-users about either Mezzanine or Cartridge before, here's an
> overview of Cartridge's features as well:
>
> - Hierarchical shop categories. These are just Mezzanine content types
> and hook into your site's navigation.
> - Single interface for setting up a product, with 0 to N variations.
> - Arbitrary product options (colours, sizes, etc).
> - Hooks for shipping calculations and payment gateway.
> - Sale pricing.
> - Promotional discount codes.
> - PDF invoice generation (for packing slips).
> - Stock control.
> - Dynamic categories (by price range, colour, etc).
> - Registered or anonymous checkout.
> - Configurable nunber of checkout steps.
>

Very interesting.
Can you share pros & cons between cartridge & satchmo?

Can it support multishop? (i.e. one cartrdge installation for multiple
shops)

Stephen McDonald

unread,
Mar 3, 2012, 11:35:19 PM3/3/12
to Django users
This is going back a few years, so things could be a lot different
now, but here are the areas we addressed:

- Database performance. We had some Satchmo sites that would spin up
several hundred queries when rendering out a category. Cartridge goes
to great lengths to ensure this never happens. There are never any n+1
query scenarios, and we have unit tests in place that ensure this.

- Product management interface. We handed Django's admin with Satchmo
over to clients, and they just didn't get it. Neither did we at first.
In some case you had to go through a dozen or so screens to set up a
product. Cartridge has a single screen for managing a product, and it
supports 0 to N variations based on applied product options (colour,
size, anything).

- Grokking the overal system design. Satchmo is monolithic. Getting
stuck into the code base has a significant learning curve. Cartridge
is a single Django app, with one module for each of the models, views
and forms. It's relatively much easier to dive into and understand.

I feel really awkward ragging on Satchmo or any other project that has
had hundreds of hours poured into it. And back then, in the end we did
make it work for some really large clients (Toys R Us among others).
But those are the pain points we faced, and addressed directly with
Cartridge.

On the other hand Satchmo has a ridiculous amount of features that go
beyond what Cartridge has, as listed in my original email. Our
philosophy was to implement the most common features an online store
needs, in order to keep the code and design as simple as possible,
allowing it to be easily dived into in order to implement that extra
bit of customisation you might require. 75% of the features you need
up front with a day or two to add the remaning custom 25%, as opposed
to 95% of the features up front with weeks for implementing the
remaining 5%.

Cheers,
Steve

Josh Cartmell

unread,
Mar 5, 2012, 5:09:43 PM3/5/12
to Django users
Congrats on the release Steve.

As a developer that has been using Mezzanine for a bit under a year
and a half I have to say that I have been really pleased with the
project. A lot has changed in the time since I began using Mezzanine
but even in it's infancy Mezzanine provided a very usable base for a
variety of types of projects.

Overall Mezzanine has provided a very stable foundation that is easy
to develop on top of; getting out of your way when you want it to and
taking care of many things for you. One of it's biggest strengths is
its simplicity and humility (i.e. it doesn't try to be all things to
all people but provides a platform which is easy to modify to spec).

My 2 cents.

On Mar 3, 3:51 pm, Stephen McDonald <st...@jupo.org> wrote:
> Mezzanine project homepage:http://mezzanine.jupo.org(includes a gallery
> of sites powered by Mezzanine, as well as a live Mezzanine/Cartridge demo.
> User: demo / pass: demo)
> Mezzanine/Cartridge mailing list:http://groups.google.com/group/mezzanine-users
>
> Mezzanine docs:http://mezzanine.jupo.org/docs/orhttp://mezzanine.rtfd.org/
> Cartridge docs:http://cartridge.jupo.orgorhttp://cartridge.rtfd.org/

Thomas Woolford

unread,
Mar 5, 2012, 6:41:49 PM3/5/12
to Django users
You should consider using Sentry Instead. This way you will get live
feedback on errors, even ones that nobody reports.

Ismail

unread,
Mar 13, 2012, 7:45:24 AM3/13/12
to django...@googlegroups.com
Awesome project, in the process of migrating all my custom built CMS solutions to Mezzanine. Never really found a CMS that was simple for the user to understand, and allowed easy customization. So have always built custom CMS/product catalogues for each client.  Re-using apps where possible. 



--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django...@googlegroups.com.
To unsubscribe from this group, send email to django-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.


Reply all
Reply to author
Forward
0 new messages