What is Relay?
Who uses Relay?
Why developers like Relay?
Here are some stack decisions, common use cases and reviews by companies and developers who chose Relay in their tech stack.
Apollo is my favorite open source project.
Two things you need to worry about when making a statement like that: is the tool good, and how is the tool being built?
From a tool perspective... yeah, Apollo is great. I'm convinced that GraphQL is the way forward for me, and Apollo's just a great way to tackle it. Even beyond that, it just offers a good mentality to how you should build your database-backed app. I've used Relay in the past, back before they made a bunch of changes with Relay Modern (which all seem positive!), but switching to Apollo is just night-and-day. They've been doing better in the last 12 months or so at making smart abstractions in the React Apollo library, to the point where I'd just get these monster all-red pull requests where I can delete all my cruddy code and replace it with far fewer lines of their great abstractions.
But from a build perspective... Apollo fares even better, I think. By this, I mean their project inertia, their progress, their ability to ship stable code — but still ship meaningful new functionality, too. They're not afraid to move their ideas in other directions (integrating with React Native, for example). Kills me to see projects that are just heads-down on their little world as the world passes them by, and so far... yeah, Apollo's been on top of it.
Anyway, big fan. It's really changed how I write frontend code, and I feel hella confident while working with it.
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.
Before relay-modern, we wrote our own subscriptions-capable GraphQL client + cache called Cashay. We switched to relay-modern when its functionality and community surpassed our own Relay
- Build data driven apps
- Declarative style
- Mutate data on the client and server