The idea of a decoupled Frontend and Backend has been around for a couple of years. Some teams tried them out, but nobody was really fully satisfied with it. Too many problems arose during development; bad or non existing accessibility, no support for crawlers and bots, changing APIs and expensive refactorings. Even the easy task of displaying a menu on the frontend was problematic.
All these concerns caused us at Amazee Labs from actually trying it. We avoided use of decoupled systems that is until a couple of months ago. In summer 2016 for the first time ever we were able to connect React with Drupal via GraphQL and felt comfortable using it in a project. To increase the stakes we added it to a multiple hundred-thousand dollar project, because we wouldn't be Amazee if we didn't!
What came out is a completely decoupled system built on React that powers 12 individual websites with a single Drupal Backend connected through GraphQL. All of it is completely tested as part of an continous deployment workflow, is hosted on Docker, has server side rendering, and not a single line of content or menu on the frontend.
Take heed in our success though, this is not for everyone. We ran into huge issues that needed to be solved during the process and they continue to come up still today. Despite this, Amazee believes React and GraphQL to be a viable future for Drupal. Let us show you why and how this future will work!