It was quite a hard call, but I decided to switch to React for all my projects moving forward.
Personally, I prefer Blaze, and think are a number of things which I think it handles a lot better (or intended to, per the roadmap). But I need to be realistic moving forward, and make smart long term choices. Blaze is still officially supported/maintained, but is not being actively developed.
In the 1.5 years since Blaze launched, there’s been only one major update, the subquery and each..in
code which took 8 months to land and whose author is no longer with Meteor (although he’s surprisingly and appreciatively still involved in Meteor stuff :)). The Blaze 2 discussion from 8 months ago led nowhere (officially at least), although did spur the creation of some awesome community projects.
So on that note, there are some amazing community contributions (which you should consider using if you keep using Blaze), e.g. @mitar’s blaze-components, @arunoda’s blaze-plus, template-caching and ssr, @seeekr’s magic-events, @frozeman’s template-var and my started-but-probably-abandoned virtual DOM for Blaze.
But React has community packages too, in fact, many more and a much bigger community around it that’s growing exponentially (from amongst Meteor users too!). More importantly, it’s being very actively developed, officially, by it’s own team at Facebook. So, those two things together give me a lot more faith in it as a long term bet. Ultimately, the leads Blaze has over React (including w.r.t. Meteor) will be addressed, while I don’t believe the reverse is true.
For rapid prototyping however, Blaze is still a clear winner, although it looks like @timbrandin’s sideburns project solves this. Also, although React is a bit of a learning curve, I’m starting to really appreciate a lot of it’s feature, especially the freedom to use more JavaScript in my rendering functions (which breaks some separation principles but I mean more like simple transformations at the beginning of a render rather than needing helpers for everything, and more flexibility in expressions).
And then of course, there’s still Angular