Marionette.js is an extension library for Backbone.js. It's purpose is to improve Backbone with a set of commonly used tools and patterns and to simplify building process of large applications.
Backbone.js solves a great amount of basic tasks. It provides us with a core structure and a great deal of fundamental elements for development along with a fair set of built-in methods. But when it comes to building more complex applications or when an existing application grows Backbone's unobtrusiveness and minimalism becomes more an enemy then a friend. You start to feel it's lack of more deep architectural solutions. Usually you will find yourself writing tons of custom code to fill this gap and add some missing functionality. Marionette takes this problems upon itself. It brings more distinct architectural carcass and a huge library of components and functions. This will keep you from repetitive custom structures from project to project. It adds an additional layer of building conventions and tools. Some of the most remarkable are memory management and view management. Marionette brings views rendering logics to totally different level. It uses a smart approach of fracturing views and logics into as small particles as possible considering that it is always much easier to build something big and complex from smaller parts. It's memory management system deals effectively with all forms of garbage and zombie views at first place. The other convenient novation is the Behaviours - repetitive logics that can be shared among multiple views. Another big advantage is Marionette's flexibility. It does not require to use whole functionality provided if you need to get use of a few small features you just pick whatever components you need and mix them into your project. This results in Marionette being easy to implement into already existing applications without necessity to rewrite them from scratch.
Best quick guide to start working with us.