After building many a React SPA on top of a hodge podge of untyped JSON REST APIs, I found GraphQL a breath of fresh air. With GraphQL we cannot assume that all requests are equally hard on the server. Any errors encountered are captured by the framework, leading to the fun task of reading stack traces in JSON GraphQL error responses.

Source: Why, after 6 years, I’m over GraphQL

GraphQL doesn’t make sense as a default approach. It makes sense sometimes, but infrequently.