Open-Source GraphQL Projects We Love
Note: This post was updated on 15/11/2021 to include 3 new project sponsorships.
Not a lot of people know this, but the original version of Hasura didn’t use GraphQL. It used a JSON DSL that we had built to address the issues we had with REST. When we discovered GraphQL, we were totally blown away - it did exactly what we were trying to do with our custom DSL and then some! We quickly integrated it into Hasura and launched The Hasura GraphQL Engine.
The response was phenomenal! In 2 years, the GraphQL Engine grew to over 300 million downloads.
A lot of credit for The GraphQL Engine's success goes to the community: The original team at Facebook for developing and open-sourcing GraphQL and to the GraphQL foundation for steering the project. However, the lion’s share, in our opinion, goes to the thousands of developers all over the world who carried the GraphQL torch. From speaking at workshops, meetups, and conferences to building a huge ecosystem of tooling - these devs laid the foundation for GraphQL’s popularity.
So we wanted to pay it forward. Starting this month, we will be sponsoring open-source GraphQL projects that, we think, add tremendous value to the ecosystem.
Our goals with the sponsorships are:
- To financially support the developers/teams behind the projects so that they can continue with their fantastic work
- To shine a spotlight on these projects so that more people discover and use them
- To encourage developers to build more open-source projects that will help and grow the adoption of GraphQL and the community at large
Here they are and why we chose them:
- graphql-flutter: Maintained by Zino App and the community, graphql-flutter is a GraphQL client for flutter which combines the benefits of streams in Dart to bring out a high performing modern client. Our flutter tutorial uses this awesome client for building out the realtime todo app.
- gqless: If you’re looking for a simple way to query GraphQL from the frontend without worrying about writing special strings check out gqless by Sam Denty. It works by generating queries at runtime based on the data your app consumes. gqless uses ES6 proxies and when properties are accessed it converts the paths into GraphQL queries. Here’s a detailed look at it if you want to know more. This is also a lightweight alternative to existing GraphQL clients for React and is one of the fluent GraphQL clients about which we wrote a while ago.
- graphql-code-generator: Maintained by Dotan Simha, graphql-code-generator is a CLI tool that lets you automatically generate types from your GraphQL schema and operations. While making our GraphQL Tutorial for TypeScript, we wanted a way to automate the type system for React components using GraphQL. graphql-code-generator worked like magic and it was a breeze converting an existing React app with GraphQL to Typescript.
- elm-graphql: Built and maintained by Dillon Kearns, elm-graphql gives type-safe GraphQL queries for the entire schema. Our GraphQL tutorial for Elm uses this client for generating types :). On a related note, GraphQL and Elm make a great match thanks to the strong typing of Elm and schema-based definitions in GraphQL.
We've also begun sponsoring open source projects that are useful to the Hasura community at large. Here's the first project sponsorship:
- nestjs-hasura: Jesse Carter's Hasura packages enable you to turn any function in a NestJS app into a Hasura Event Trigger, or Scheduled Event handler.It can also automatically generate and manage the metadata for these handlers, and comes with security functionality to verify that payloads are secure and sent only from your Hasura app.
If you like any of these projects, give it a shout-out on Twitter, tell a friend, or go ahead and sponsor it yourself!
We’ll sponsor new projects each month and add them to this list. Follow us on Twitter to keep an eye on it. If you’re working on an open-source GraphQL project, or know one we should support, reach out and let us know on Twitter or Discord and we’ll take a look!