We're happy to have you contributing to our codebase! We recommend you go through the following guide.
You'll need to have some basic programming experience with the technologies and tools we use.
Git & Github - Clone, commit and open a PR using Git with GitHub. Check out the following tutorials:
JavaScript/Node.js - We recommend having basic experience working with Node, which Open Collective is written in (frontend & backend). Check out these free JavaScript & Node tutorials:
GraphQL - Our API uses GraphQL, powered by Sequelize and PostgreSQL. Understanding how this work is important to contributing to or fixing the majority of the issues on our API. To learn more, check out these tutorials & articles:
React & Next.js - You'll need to understand React and Next.js to contribute to issues on the frontend. Check out the following links:
The project's core repositories are divided into three:
opencollective/opencollective - Here is where we manage issues and community discussions. Our issues are all labelled with a complexity label. We recommend starting with simple issues ( complexity -> simple
).
opencollective/opencollective-frontend - This repository contains our frontend code. You can find more information in the setup section of this guide.
opencollective/opencollective-api - This contains our API code. If you enjoy working on the backend, you can set up our API locally. To learn about setting it up, check out the setup section below.
This section explains how you can get Open Collective running locally on your computer.
Setting up the frontend is straightforward. We've provided a comprehensive guide in a separate document that explains how to set up the project.
https://github.com/opencollective/opencollective-frontend/blob/main/README.md
NOTE: If you're only contributing frontend code, you don't need to setup the API.
The API setup requires more effort than the frontend, as it requires installing the PostgreSQL. You might experience difficulty setting up the API on a Windows environment. We recommend using a Unix environment.
Just like the front end, we have a separate document for the setup.
https://github.com/opencollective/opencollective-api/blob/main/README.md
Like to contribute to our design? Checkout our design contribution guidelines.
Before you make your first commit, read through our commit convention, provided in the link below:
https://github.com/opencollective/opencollective-frontend/blob/main/CONTRIBUTING.md
We recommend you learn more about our bounty program through the link below:
If you are stuck or have a question, join our Discord #engineering channel through the link below:
We're trying our best to make our documentation better. We encourage you to give suggestions on how we can improve it.