Determining Whether Client-side MVC is for You

I’ve been meaning to write down my thoughts on Javascript MVC frameworks for a while now. Ever since we rebuilt the Square merchant website with Ember[1], we’ve added major new sections to the webapp and gotten a better understanding of how an MVC app would be built and maintained with multiple engineers across multiple teams.

Currently, my thinking is that while rich Javascript MVC frameworks aren’t necessarily a silver bullet, they’re still excellent for a lot of use cases and the downsides shouldn’t preempt new projects from trying them out.

The virtues of Javascript MVC frameworks have been espoused for a few years now, but it’s worth going over some of the less-obvious benefits:

Alas, there is no free lunch, and so to figure out whether it makes sense to use a client-side MVC framework, consider the some of the costs:

All that said, I do think that current MVC frameworks fill a needed role for small-mid-sized web apps benefit from the added structure but are stable enough to not demand biweekly pivot-level rewrites.

Footnotes    (↑ returns to text)
  1. At this point, we’re probably one of the oldest Ember sites in production.
  2. There was somewhat of a brewhaha around Ember on this perf. issue a year ago; of course things have gotten better since.