I have to start a new (web + native) project (mid-size app) from scratch. Due to the plethora of JS frameworks and implementation out there especially in the last couple of years, I have been having a second doubt on my usual stack.
I have been using react + redux on the front-end along with Node and MongoDB on the backend communicating through REST API's.
For this new project, I have decided to go with React-Native + React Native for Web + Node + PostgreSQL. However, I am wondering which framework I should use to the data fetching and state/store management.
So far, redux worked for me nicely. However, due to the nature of JS evolution. I am a bit skeptical with go the same stack I have been using in the past.
What are the pros and cons if I go with the following stack
React-Native + React-Native-For-Web + Redux + GraphQL + Node + PostgreSQL
React-Native + React-Native-For-Web + Relay + GraphQL + Node + PostgreSQL
React-Native + React-Native-For-Web + Apollo + GraphQL + Node + PostgreSQL
I have read many articles stating the benefits of using each framework, but the amount of content and articles are a bit scary. I understand that there is no right or wrong answer. However, it would be nice to know which aforementioned stack goes nicely together keeping in mind - less learning curve, good documentation, maintainability, fewer workarounds.
I think if you're coming from a React + Redux background, then Apollo should be the way to go for you!
Note: If you're a complete newcomer to GraphQL, I recommend you check out How to GraphQL where you'll find tutorials both on Relay and Apollo.
A few pieces of information:
updateQueries
.Take a look at this in-depth article comparing Relay and Apollo for more background info.
If you want to learn more about Relay and Apollo, check out the How to GraphQL tutorial website.
By the way, another option for the backend if you don't want to build it yourself would be Graphcool (disclaimer: I work for them :)).