I did a huge heads down on GraphQL vs AppSync vs Firebase for an app I'm building around document collaboration, annotation and sync for people working with PDFs and web content (<a href="https://getpolarized.io/" rel="nofollow">https://getpolarized.io/</a>) - it's kind of like an offline web browser.... anyway.<p>GraphQL is super awesome at what it does but it's definitely not designed for rapid prototyping applications.<p>The thing about GraphQL is that it's middleware. It's designed to act as really nice glue between multiple backends.<p>It solves a lot of nice problems like over-fetching too much data, calling too many APIs, etc.<p>The problem is that you really don't need these to get an app shipped immediately.<p>The REAL sweet spot for GraphQL is for a company like Netflix or Facebook where you have 1500 APIs and tons of problems with data over-fetch and you have the time to sit down and do things right.<p>I think I'm going to end up going with Firebase just because you can bang something out FAST and get it shipped.<p>It's not going to be perfect but you can ship an MVP and start making revenue and/or grow your user base while you figure things out.
As someone who knows a few of the folks involved in this foundation, I think this is a real net positive for everyone who builds GraphQL APIs and is involved in improving the ecosystem.
I remember when I was at RealNetworks a long time ago and Microsoft and Real were competing over the future of multimedia languages (SMIL vs HTML+Time). I was on some of the standardization committees and remember being surprised when some of my colleagues suggested that standardization was used by companies like MS to slow down the innovation process (and catch up to faster starts like RealNetworks had made). I wonder how often open source foundations serve the same purpose, or if these are truly embraced by companies like Facebook? Is there a reason internally Facebook would have fought something like this? Is it all roses?
I'm not a big fan of GraphQL. Its main benefit is for serverless which I am also not a fan of. It shifts all the control to the client and makes the server generic which actually takes away flexibility overall.