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.
GraphQL - Our API uses GraphQL, powered by Sequelize and PostgreSQL. Understanding how these 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-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.
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 and PostGIS extensions. You might experience difficulty setting up the API on a Windows environment. We recommend using a Unix environment. (We're currently working to make it easier on Windows).
Just like the frontend, we have a separate document for the setup.
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:
We recommend you learn more about our bounty program through the link below:
If you are stuck or have a question, join our slack #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.