/Marionette.js 4

Routing in Marionette

Users of versions of Marionette prior to v4 will notice that a router is no longer a bundled class. The Marionette.AppRouter was extracted and the core library will no longer hold an opinion on routing.

Some Routing Solutions

Besides the router bundled with Backbone there are many viable routing solutions available. Some specifically designed for Backbone or Marionette and some that are generic solutions for any framework. Here are a few of those options.

Marionette Community Routers


Previously bundled router. Extends backbone.router and is helpful for breaking a large amount of routes on a single backbone.router instance into smaller more managable approuters.


An advanced router for MarionetteJS applications. Includes nested routes, states, rendering, async operations, lazy loading routes, Radio channel eventing, and inherits most of CherryTree features while maintaining a similar to Marionette API.


A highly opinionated, simplistic Backbone.Router coupled with a Backbone.Radio.Channel. When an event is triggered on the channel, it will set the route URL, or when a URL matches a route it will throw an event on the channel.

Generic Routers

Stateman Angular-UI style routing, without the Angular

Cherrytree Nested routes, like Ember, but without the transition lifecycle.

router.js This is what Ember's router is built on top of. It has all of the features needed for good routing

Know of other routers that should be listed here?

Add them!

© 2017 Muted Solutions, LLC
Licensed under the MIT License.