Take a look at Ember.js. Seriously. Performance is now on par with React (I think the core developers are secretly in love with React and try to bring all good ideas into Ember). By using it you get the whole front-end package by default (ES6 (modules!), CSS preprocessor, promise based data store, awesome debugging tools, generators, everything perfect out of the box. It follows conventions so every Ember app is structured in the same way. Upgrade cycles are a breeze and they follow SemVer.