How I Decide which Web Front-End Framework to Use

It almost seems like every other week there is a new MVC web front-end framework. The front-end dev community is incredibly vibrant and projects are moving rapidly; introducing new features all the time, changing development paradigms and experimenting with new ES6 language features. You probably have heard of Backbone, Marionette, React, Flux, Angular, Web Components, Ionic, Cordova, WinJS, Ember and tons of other frameworks. It’s overwhelming trying to decide which one is the right one and there’s often a fear over choosing the wrong framework. Let me show you how I decide which web front-end framework to use.

First I decide if this will be a mobile-only project. If so, I have multiple options: Ionic, WinJS, Cordova. I also have the options of jQuery Mobile and Topcoat for CSS.

  • If my project is mostly-focused on iOS or Android or Windows Apps:
    • If I care a lot about a native look and feel as well as strong performance and I am willing to learn a completely different way of building web apps: I would go with Ionic or WinJS (both use Cordova).
    • If I already have JavaScript and HTML5 code that I want to port and I don’t care too much about performance: I would go with jQuery Mobile or Topcoat (both with Cordova ).
  • If I want to support mobile first but I also care about the desktop:  Angular + Bootstrap + Cordova.

If I decide to go desktop-only, I have multiple options: Angular, Backbone, Marionette, React, Flux, Angular, Web Components, etc... Right off the bat, I include a Web Components library like X-Tag which supports all major browsers. This gives me next generation features in my web applications. I would also choose between Bootstrap and Foundation for my CSS framework.

  • If I want to use a reactive programming model, I would go with React + Flux .
  • If I want to build a complex app (think Outlook or Office365 level of complexity):
    • If I don't mind a framework that is changing between releases, I would go with Angular .
    • If I want a less opinionated framework, I would go with Marionette.
  • If I want to build a simple MVC app with a framework I could learn in under 30 minutes, I would go with Backbone .

I am not expecting everyone who reads this article to agree with my decision making process. In fact, I would like to challenge you to name me alternatives following the same type of thought process as above. For example; if you have an alternative to Topcoat, simply tweet @ramisayar and I will include it.

You can stay up to date by following my twitter account  @ramisayar.