Apollo raises $22M to simplify app development
I think GraphQL is pretty cool, but my experience with Apollo is mostly negative.  The query and mutation components for example - on the surface, they seem pretty useful, however, in reality, its a bad idea to have your view layer directly making API calls - those should be in some other module thats lower level, away from the view and easier to test.  But instead, people use these query components everywhere, and all of the sudden, all the app&#x27;s logic is weaved into the view and very hard to unit test.<p>Apollo&#x27;s local state tools are bad in my opinion as well.  It might work OK if you just want to keep a few global flags, but anything more, and it gets really verbose.  Especially if you want to update state based on current state, you have to first manually fetch the current state, then update it, then save that object back, every time.   On top of this, its often necessary to write mutations just to update local state, which are written as GraphQL strings - one mistake in this syntax and you can be stuck trying to debug it for a while.  How any of that is easier than just having Redux I still don&#x27;t understand.<p>Overall, Apollo feels like a worse version of Angular.js - an app framework thats trying to do way too much. If your app just made basic GET requests and had no other logic, I could see how Apollo could be useful (but why have a framework at all in this case?)  However, if you have complex logic or local state, Apollo quickly becomes and opinionated, unwieldy piece of junk