Motivation
From previously working on a large GraphQL codebase, the boilerplate involved with shipping new features often slowed me down.
#
Whatgqless is a fundamentally new approach to a GraphQL client. It makes using your API enjoyable, by generating queries at runtime based upon the data your app consumes.
#
Your app#
Generated query#
WhyWe wanted a GraphQL client that lets you forget you're using GraphQL.
I also wanted to tackle some issues shared across all existing GraphQL clients:
Slow Typescript DX. Typescript should speed up your workflow, not slow it down
Inefficient queries, due to underutilized nesting. Relay is a solution, but has even more boilerplate 😢
#
Workflow comparisonLets say you've just added a new field to your API, and want it displayed within multiple places in the UI:
#
Conventional clientFirst you'd need to search your components, and identify which queries need updating. After referring to your browser for documentation, you'd then update the query
Typically you'd then run a type generator to create types for each query (changes may not be reflected in IDE straight away).
Finally you'd do the task you set out to do - updating the components,
#
Using gqlessJust update the UI, and the queries generated at runtime will reflect your changes.