🚨 This documentation is out of date.
View our New Documentation!
Open Collective Docs
Go back to Open Collective
  • Welcome
  • About
    • Introduction
    • Documentation
    • Terminology
    • Company
    • Pricing
    • Team
    • The Open Collective Way
      • Mission and Values
      • Community Guidelines
    • Hiring
    • Investors
    • Contributing
    • Refund Policy
    • Contact Us
  • Product
    • Features
    • Roadmap
    • Comparison
    • User Profile
    • Dashboard
      • Preview Features
    • Currencies
    • Log-in System
    • Privacy Policy
    • Moderation
    • Security
    • Ledger
      • Individual Transactions
      • Transaction Pairs, Groups & Perspectives
      • Viewing Transactions
      • Exporting Transactions
      • Fiscal Host Ledger Perspective
      • Contributions in the Ledger
      • Added Funds in the Ledger
      • Expenses in the Ledger
      • Ledger Changelog
    • Notifications
    • Two-factor Authentication
    • Activity Log
  • Collectives
    • Collectives FAQ
    • Creating a Collective
    • Quick Start Guide
    • Collective Settings
      • Customize Collective
      • Team
      • Collective Goals & Tiers
      • Expense Policy
      • Data Export
      • Security
      • Integrations
      • Zero Collective Balance
      • Closing a Collective
    • Add Fiscal Host
    • Change Fiscal Host
    • Open Source Collectives
      • Setting up GitHub Sponsors
    • Transparent Budget
    • Expenses
    • Updates & Comms
    • Custom Email
    • Moderation
    • Conversations
    • Events
    • Projects
    • Funding Options
    • Buttons & Banners
    • Connected Collectives
    • Contribution flow
  • Financial Contributors
    • Financial Contributors FAQ
    • Guest contributions
    • Payments
    • Platform Tips
    • Website Badge
    • Receipts
    • Collective to Collective
    • Organizations
      • Organization FAQ
      • Funds
      • Bulk Transfers
      • Gift Cards
      • Sustainer Resources
  • Expenses & Getting Paid
    • Expenses FAQ
    • Submitting Expenses
      • Inviting a third-party to submit an Expense
    • Expense Comments
    • Edit or Download an Expense
    • Receiving payment through Payoneer or Wise
    • Tax Information
  • Fiscal Hosts
    • Fiscal Hosts FAQ
    • Becoming a Fiscal Host
    • Creating a Fiscal Host
    • Organisation Settings
      • Info
      • Customize Profile Page
      • Connect external accounts
      • Accounting Categories
      • Security
      • Manage updates
      • Policies
    • Fiscal Host Dashboard
      • Expenses
      • Financial contributions
      • Pending applications
      • Hosted Collectives
      • Vendors
      • Transaction Report
        • Reports
    • Receiving Money
      • Bank Transfers
      • Credit Card
      • Add Funds Manually
      • Expected Funds
    • Payouts
      • Virtual Card Settings
      • Payouts with PayPal
      • Payouts with Wise
      • Two-factor authentication for payouts
      • Refunds
    • Host Fees
    • Local Tax Support
    • Agreement Templates
  • Independent Collectives
    • About Independent Collectives
    • Create an Independent Collective
      • Migrate from Self-Hosted to Independent Collective
      • Migrate from a Fiscal Host to Independent Collective
    • Independent Collective Setup
    • Independent Collective Management
      • Money coming in: Contributions
      • Money going out: Expenses
    • Close an Independent Collective
  • Contributing
    • Design
      • Design Workflow
      • Design Contribution Guidelines
    • Development
      • Contribution Guide
      • Best Practice Guidelines
      • Bounties
      • Architecture
      • API
        • Members
        • Collectives
        • Events
      • README Integration
      • PayPal
      • TransferWise
      • Post-Donation Redirect
      • Manual Reporting
      • GitHub Permissions
      • Internationalization (i18n) system
      • Testing with Cypress
      • Testing features
        • Conversations
      • Collective's locations
      • Virtual Cards
    • Documentation
      • Resources for documentarians
      • Style guide
      • Suggesting changes
    • Translation
  • Developers
    • OAuth
    • Personal Tokens
Powered by GitBook

Helpful Links

  • Website
  • Blog
  • Contact
  • Slack

â’¸ Open Collective 2024

On this page
  • Technical Requirements
  • Project Structure
  • Project Setup
  • Frontend
  • API
  • Others
  • Design Contribution
  • Commit conventions
  • Bounty Program
  • Ask for Help

Was this helpful?

Edit on GitHub
Export as PDF
  1. Contributing
  2. Development

Contribution Guide

PreviousDevelopmentNextBest Practice Guidelines

Last updated 11 months ago

Was this helpful?

We're happy to have you contributing to our codebase! We recommend you go through the following guide.

Technical Requirements

You'll need to have some basic programming experience with the technologies and tools we use.

Tools

  • Git & Github - Clone, commit and open a PR using Git with GitHub. Check out the following tutorials:

Languages & Frameworks

  • 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:

    • Javascript

    • Node.js

  • GraphQL - Our API uses GraphQL, powered by and . 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:

    • React

    • Next.js

Project Structure

The project's core repositories are divided into three:

Project Setup

This section explains how you can get Open Collective running locally on your computer.

Frontend

Setting up the frontend is straightforward. We've provided a comprehensive guide in a separate document that explains how to set up the project.

Setup guide

NOTE: If you're only contributing frontend code, you don't need to setup the API.

API

Just like the front end, we have a separate document for the setup.

Setup guide

Others

Design Contribution

Commit conventions

Before you make your first commit, read through our commit convention, provided in the link below:

Bounty Program

We recommend you learn more about our bounty program through the link below:

Ask for Help

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.

- Here is where we manage issues and community discussions. Our issues are all labelled with a complexity label. We recommend starting with simple issues ( ).

- This repository contains our frontend code. You can find more information in the setup section of this guide.

- 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.

The API setup requires more effort than the frontend, as it requires installing the . You might experience difficulty setting up the API on a Windows environment. We recommend using a Unix environment.

Like to contribute to our design? Checkout our .

Introduction to git
Introduction to GitHub
Popular git commands and how to use them
Git commands in depth
Mastering Markdown
Markdown Tutorial
Introduction to basic principles of Javascript
Introduction to Javascript - w/ Advanced concepts
An interactive Javascript tutorial
Quick introduction to Node.js
Introduction to Node.js - w/ quizzes
When, how and why to use Node.js
Differences between Javascript and Node.js
Sequelize
PostgreSQL
What is GraphQL and how to use it
Basic concept of GraphQL
Getting GraphQL running
Practical GraphQL tutorial
Basic React Concepts
The Beginner react roadmap - path to mastering react
React Official documentation
Basic introduction to Next.js
Next.js Official Documentation
Basic concepts in Next.js
Introduction to Next.js - w/ Advanced concepts
opencollective/opencollective
complexity -> simple
opencollective/opencollective-frontend
opencollective/opencollective-api
https://github.com/opencollective/opencollective-frontend/blob/main/README.md
PostgreSQL
https://github.com/opencollective/opencollective-api/blob/main/README.md
design contribution guidelines
https://github.com/opencollective/opencollective-frontend/blob/main/CONTRIBUTING.md
https://docs.opencollective.com/help/developers/bounties
discord.opencollective.com