Best JavaScript MVC Frameworks 2013-2014


JavaScript MVC Frameworks are a big topic nowadays that we use JS to bind data, send it back and forth between server and client and actually implement lots of logic, so we want to structure our code after the MVC or similar patterns, decoupling the logic or data handling from the views. In this article I want to share what frameworks I’ve tried out and which ones I find interesting.

Why JavaScript MVC Framworks?

I do Web Development, I’ve started building things with node.js on the backend, so obviously I have a strong tendency towards environments where JavaScript is available. Secondly, JavaScript runs in the browser, mobile and desktop plus through PhoneGap/Cordova you can use it to create cross platform mobile apps. Code needs structure and I don’t want to write everything myself that has been written before by some of the smartest frontend JS engineers in the world. Trends in the backend world show that more and more JSON APIs are exposed that just deliver data, not the pages ready for rendering in the browser, to cut down on bandwidth and not tie the data you have to one website. This is one more factor why we will see more JavaScript clients in Apps or browsers talking to RESTful APIs.

Which JavaScript MVC Frameworks?

Now let’s finally look at the list I’ve compiled, which includes a short introduction, my experience with them, if there is any, further reading and a list about their dependencies, license and their examples at For a more in-depth comparison of Backbone and Angular I can recommend this article by the way: Backbonejs vs Angularjs : Demystifying the myths, which pretty much sums up why Angular has been gaining so much traction lately.

Here a short comparison of which of the frameworks are looked for the most in the past year (I’ve taken the google autocomplete suggestions to find the probably most frequently searched for term, with Angular it didn’t include the dot):

Angular.js – The Fresh Breeze

Angular has received a lot of attention, especially after Google got involved in the development and today still is actively maintaining the project. What struck me as different about this is that this framework needs you to extend your HTML with tags and properties whereas you in many others select your elements based on classes and ids.


My Experience with Angular

As the second client side MVC framework I picked up I have found Angular as fun and something that does not want you to write a lot of lines of code. The lines you have to write though, require some re-thinking of what you might have learned before.

The easy two way data binding and the examples that show you how easy it is to work with input directly changing in your page are just a great demonstration of what Angular is about, getting consistent data fast and creating something with immediate responses.

Further Angular Reading

There a great post series that targets some of the pitfalls and showes best practises by Vlad Orlenko:

AngularJS Best Practices: I’ve Been Doing It Wrong! Part 1 of 3

AngularJS Best Practices: I’ve Been Doing It Wrong! Part 2 of 3

AngularJS Best Practices: I’ve Been Doing It Wrong! Part 3 of 3

Also here’s a beginner tutorial at Building a Web App From Scratch in AngularJS. At you can find a lot of really good and perfectly split up video tutorials that are 2-5 minutes each, explaining one feature at a time.

Todo example app

Backbone.js – The Jack of all Trades

Backbone is probably the most well known tool for data binding and allows the developer to have all the flexibility they need. Many argue that Backbone is not a framework, but a utility that helps you structure your code. This is true, since you will have to write more code compared to the others that are presented here, but it would be unfair just leaving it out, since it is definitely competing with both Angular and Ember.


In context of Backbone it would probably be the most fitting to mention Require.js and Marionette.js to add some structure and make Backbone a more full featured solution.

My Experience with Backbone

I’ve learned how to use Backbone just before I started learning Angular and it felt a lot more familiar to typical DOM manipulations that you usually would do with jQuery. Basically you get a couple of extra functions and objects that help you along in data rich projects, but not a lot more. The documentation is pretty good and there’s a lot of resources across the web, that just gets a little thin when you’re bringing Require.js to the table without fully understanding it.

Further Backbone Reading

You can find some video tutorials at and a bunch of tutorials at

Todo example app

Ember.js – The Friendly Companion

Ember, formerly known as Sproutcore 2.0 is built for easy and to take work off the shoulders of the developer with its convention over configuration philosophy.


My Experience with Ember

First of all: I have never used it, only fiddled with a demo. I’ve read some examples and in general I like the way Ember does things. It was a consideration, but since it’s pretty young, rebranded and there is two large stags on the field, I have not had the opportunity to try it out yet. I’d love to try it on a project, just for the sake of feeling the right to put one of their cute and cool stickers on my machine. If you have the time to dive deeper than I did so far, have a look at their recommended learning resources.

I think Ember can be a great framework, especially if you don’t want to jump into the sometimes cold water of learning the new concepts of Angular just yet!

Todo example app


I like JavaScript. I like it both on front- and backend. I like learning, so that’s a lot of things I can like about all these frameworks and tools.

If you love learning, I would recommend that you learn Angular and either Ember or Backbone. If you don’t know what to choose, roll a dice, because each of them can probably get the job done and you’ll learn something. I hope you’ve gotten an overview of the three I consider the most important, but of course there are others out there. Never stop looking and let me know what you use and why in the comments!

4 thoughts on “Best JavaScript MVC Frameworks 2013-2014”

  1. Hello, Jonathan!
    May I offer you my own framework for review – LiquidLava. It is as powerful as Angular or Ember, but completely transparent. I’m still waiting for a review at TodoMVC, and want to spread the word about it. You can also get support from me and share feedback.



    LiquidLava is an MVC framework for building user interfaces, but much simpler then all others. If you need a button on page – then you don’t need to create a router or “factory of controllers”. It aso has transparent internal design: this means, that you always know, what you are doing, and what happens inside the framework.

    It has class system, that generates classes which are as fast as their hand-written analogues. In fact, it may be even faster, cause there is no prototype chain.

    It also differs a lot from anything you have seen before, for example:
    – Templates are parsed into configs for JavaScript classes (not compiled into functions, like in other frameworks)
    – Never creates DOM elements directly. Renders them as HTML and inserts into DOM
    – Software patterns instead of dependency injection
    – No magic

    Framework status

    Close to beta, releases are stable, documentation is almost complete.
    There are no unit tests yet, but this is partially compensated by numerous debug checks.
    No community yet, but you can get support directly from me.

    If you like it – then please, give me a star on GitHub.

  2. Misconceptions about framework: You will always have to write the mediating javascript architecture yourself, even more so if you use a framework which requires a learning curve. Mvc frameworks are so biased towards oo pub/ sub design pattern, that unusual declarative html binding has been invente, which is proprietary to the popular framework of the time and will eventually run out date. Mvc frameworks depend on the concept that oo js is good, when actually procedural is more efficient, easier to test, reduces the need for unnecessary and excessive combinations of states, and is resource scalable across multiple skill levels. Its not the framework that leads to technical debt, or the lack of one. A framework wont reduce your code either. It will just change the way it looks, and backbone is clunky, angular is obtuse and react is so far removed from js you might as well go back to using flash.

Leave a Reply

Your email address will not be published. Required fields are marked *