We use Relay because it's ability to generate Flow (JS) types based on given GraphQL fragments gives an immense amount of type safety. The relay-compiler helps us verify queries are valid before we build the app. Relay's ability to colocate queries with components, and compose many fragments, makes it easy to build a new component and get the data the component needs.