Cerebral – Declarative state and side effects for popular JavaScript frameworks
cerebraljs.com
cerebraljs.com
Also, the way routing is handled is really something other frameworks should learn from. It's slightly unusual in the beginning, but when you "get it" you suddenly realize everyone else has got it all wrong.
Just a shame it's not more well known, as it compares very favorably to other state/side effects management frameworks like redux and mobx.