Well, the good news is the ecosystem is starting to slow down. Projects are merging. Best practices are starting to become clear. People are building on top of existing stuff instead of building new frameworks.
As a starting point, here’s my personal picks for most pieces of a modern web application. Some choices are likely controversial and I will only give basic reasoning behind each choices. Keep in mind they’re mostly my opinion based on what I’m seeing in the community and personal experiences. Your mileage may vary.
Core library: React
The clear winner right now, is React.
- Components all the way down makes your application much easier to reason about.
- The learning curve is very flat. The important APIs would fit on one page.
- It is the natural match for Flux and Redux (more on that later).
- The React community is amazing, and produced many best of breed tools such as Redux (also more on that later).
- Writing high quality data flow is much easier in large applications than dealing with 2 way data binding (eg: Knockout)
- If you ever need to do server side rendering, React is where it’s at.
There’s plenty of monolithic frameworks like Ember, Aurelia and Angular that promise to take care of everything, but the React ecosystem, while requiring a few more decisions (that’s why you’re reading this!), is much more robust. Many of these frameworks, such as Angular 2.0, are playing catch up with React.
Picking React isn’t a technology decision, it’s a business decision.
Bonus points: Once you start working on your mobile apps, you’ll be ready for it thanks to React Native.
Read more @ Medium