The Hasura GraphQL Engine is an open-source project that provides a ready-to-use GraphQL API on Postgres. Over the last few months, Hasura has been starred over 6000 times on Github, and has a nascent but vibrant community who hang out on the Discord server.
Hasura ❤️ community
Community and community-contributions are at the heart of any open-source project, and we are very grateful for and encourage contributions from the community 🙏. The recent edition of the popular Hacktoberfest saw 74 community-contributed PRs in the repo!
We would like to continue making the GraphQL Engine project a welcoming place for contributors, especially first-timers. We will do our best to keep the repo and community contributor-friendly - issues that are ripe for contributions will be proactively labelled as such and we will actively engage with and encourage ideas from anyone looking to contribute.
The Hasura GraphQL Engine stack and the repo
The GraphQL Engine repo is made up of multiple components (server, console UI, CLI and docs) and a sub-folder for community content (boilerplates, sample apps, etc.). Here’s a list of these different components, the corresponding programming language/framework(s) used by each of them and their contribution guidelines:
In the GraphQL Engine repo, you’ll find the following labels that indicate contribution readiness of issues:
c/community: Issues for community content where little or no familiarity with Hasura code is expected. For example, a boilerplate for an AWS Lambda NodeJS function to implement a simple use-case.
help wanted: Issues where the community's input is crucial. These can either be requests for ideas/feedback or for code.
good first issue: Issues that are perfect for those who are new to open source, or just want to become familiar with the GraphQL Engine code-base.
- The community: We have been blessed by an extremely kind and helpful set of folks in the community. With an interesting mix of developers from veteran architects to those working on their first gigs, it’s very gratifying to notice that most members generously contribute their time with community content and helping others out on the community Discord server.
- The stack: As detailed above, the Hasura GraphQL Engine stack is an eclectic set of cutting-edge languages/frameworks (even if we do say so ourselves 😉). There’s something for everyone looking to contribute - from documentation to functional programming in Haskell!
- 92% of all PRs submitted to the project eventually got merged. We care about ensuring that your efforts actually translate into adding value to the project.
We’ve got your back
We understand that contributing to a new project can be a daunting task, especially for first-time open-source contributors. That’s why we taken a few measures to ensure your experience of contributing to the GraphQL Engine repo is as seamless as possible:
- Our contribution guidelines are extremely detailed and designed to get you started as quickly as possible.
- We have a dedicated community support channel for contributors on our Discord. It’s a great place to ideate and seek help or feedback.
- Your PRs will be constructively reviewed within 48 hrs without fail. Also, most of the PRs in the repo get an automatically deployed playground instance of GraphQL Engine with just your changes for instant feedback.
- If you are looking to make your first contribution to an open-source project, we will also set up pair-programming sessions with the maintainers of the component you want to contribute to, so they can help you get started! Please fill out this form and we’ll get back to you with a calendly link so you can set up a call at a mutually convenient time.
And then there’s the…
Swag. We are kinda nuts about our artwork (all thanks to Chaaya)! And we like to share it as much as we can. That’s why every contributor to the project get our gratitude in the form of a swag pack with the awesome artwork!
How to get started
Okay, so you’re convinced and can’t wait to pitch in to the project! The first thing you should do is take the Hasura GraphQL Engine for a spin and then go through the repo’s contribution guidelines. You’ll get the lay of the land and you’ll know how to get started with any of the components listed above. You can then head to issues in the repo and find an interesting problem to solve!
Or, if you have any ideas and want to sound us out or if you are unsure of which issue to pick, join the community Discord, head to the
#contrib channel and just drop us a note. We are super responsive on Discord and we promise you that someone from the community will get back to you as soon as possible. Alternatively, you can even create an issue on Github if that’s how you like to roll.
See on you on the other side…
I hope we’ve convinced you to attempt contributing to the Graph Engine project. If you do make a start, please know that we’ll do our very best to make sure that you get across the finish line, your contribution becomes a part of the project, and that you’ll have fun while you do this. Now, what are you waiting for!
- If you are someone who is unsure of whether to get involved with an open-source project or you want to make your first contribution to one, you should definitely read this awesome guide on why/how to contribute to open source.