2/3/2023 by Benjie Gillam
The GraphQL Foundation offers Community Grants to help incentivize key technical and community initiatives. As part of the grant, applicants commit to write a blog post report describing their work and its impact on the GraphQL community. The following report was written by successful grant applicant Benjie Gillam in August 2022, detailing the community gardening he performed during May, June and July of that year.
In 2019 I started turning up to GraphQL Working Group meetings regularly and helping take the notes. Back then we had a system for filing and reviewing action items, but very few people used it, so items would easily get lost. Further, the notes and videos would be uploaded in batches every few months, which prevented attendees referring to them in the interim.
Over the next couple years I set about trying to improve these processes. I started by filing the action items myself. After a while, I started categorizing them into GitHub projects, one for each meeting, which made keeping track of them (particularly the old ones) much easier and helped us to see progress. Later I introduced a new "ready for review" label that enabled us to quickly focus on the action items that needed discussion rather than trying to go over every item (or skip the lot entirely) each meeting. These processes were very much appreciated by the working group, but were quite time consuming for one person. As time went on my I found myself contributing to GraphQL in more and more ways, and as the time I could dedicate to these tasks dwindled, my ability to keep these processes running smoothly diminished.
In May 2022, the GraphQL Foundation kindly approved my application for a GraphQL Community Grant to enable me to dedicate more time to these tasks. I'm a community-funded open source developer, so I rely on sponsorship to fund my open source endeavors - both on my own open source projects (the Graphile suite) and also my contributions to the GraphQL Working Groups. Since being approved for the grant, I've been better able to execute the role of community gardener; let me tell you about some of the ways in which the Foundation's grant has enabled me to better support you, the GraphQL community!
The main GraphQL working group meets each month; and it is recorded on Zoom and made available via the Foundation's YouTube channel. Soon after each meeting I've been uploading the videos not just for the main meeting but also for the various other subcommittees (GraphiQL WG, GraphQL.js WG, GraphQL-over-HTTP WG, Metadata WG, Composite Schemas WG) that may have met during the previous month. Whilst uploading the video of the main meeting, I file its notes and the action items, while also categorizing them making sure they're assigned to the relevant person. Recently, I've also started adding timestamped links to the YouTube video for each action item, so we can hear the original instructions rather than just the paraphrased summaries from the notes - I think this makes them even more useful!
As part of my aim to document our processes and streamline things, I've created a template repository that can be used whenever a new GraphQL subcommittee is created. This enables all subcommittees to adopt the GraphQL meeting practices with minimal effort from the committee chair - just a small list of edits that take about 5 minutes when setting up the repository and of course the regular scheduling.
I've also been working with the Linux Foundation to get subcommittee meetings scheduled onto the GraphQL calendar, and to expand EasyCLA to the new repositories to ensure that everyone contributing has signed the GraphQL Membership Agreement. This should make releasing future versions of the spec and any subcommittee deliverables much easier since the intellectual property paperwork is in place from the start.
Thanks to the new funding I've also been able to be more active on GitHub issues, PRs, discussions and in the GraphQL Discord server, enabling me to offer assistance to people interested in contributing, and to help moderate these environments. This includes explaining how to become a champion, performing timely moderation actions when the Discord server suffers from spam, and giving guidance on how to improve PRs.
Whilst not technically under the umbrella of the grant, having the time spent on the above tasks funded by the GraphQL Grant has freed me up to dedicate more time to other key issues in GraphQL - for example I recently revived the GraphQL-over-HTTP project and we're well on the way towards v1 of that specification. I've also helped kick-start the GraphQL Composite Schemas working group for the community to collaborate on shared solutions to common problems felt across all the different ways of building a GraphQL schema by combining other GraphQL schemas together. I've also finally been able to follow through on my intent to push the "GraphQL Metadata" topic forward including researching, digesting, and sharing my analysis of the existing solutions and their problems at the GraphQL Conference, and suggesting a solution of my own. Another thing that this reduced pressure on my time has enabled is the new SpecNews podcast in which my co-host Jem and I summarize the latest GraphQL Specification Working Group session in just 5-10 minutes.
If you're interested in contributing to GraphQL and need help getting started, feel free to reach out to me, @benjie, on Discord or via a GitHub issue or PR and I'll do my best to help!