Contribute 🌸 Welcome! 🌺

🌸 Welcome! 🌺

🌸 Welcome! 🌺

Thanks for your interest in contributing to p5.js! Our community values contributions of all forms and seeks to expand the meaning of the word “contributor” as far and wide as possible. It includes documentation, teaching, writing code, making art, writing, design, activism, organizing, curating, or anything else you might imagine. Our community page gives an overview of some different ways to get involved and contribute.

This project follows the all-contributors specification. We use the @all-contributors bot to handle adding people to the README.md file. You can ask @all-contributors bot to add you in an issue or PR comment like so:

@all-contributors please add @[your GitHub handle] for [your contribution type]

You can find relevant contribution type here. Although we will usually automatically add you to the contributor list using the bot after merging your PR. The contributor docs are published on p5.js website, and hosted on p5.js GitHub repository.

Before Contributing

Contributing to p5.js should be a stress free experience and we welcome contributions of all levels, whether you are just fixing a small typo in the documentation or refactoring complex 3D rendering functionalities. However there are just a few things you should be familiar with before starting your contribution.

First, please have a read through our community statement.

Next, we are currently prioritizing work that expands access (inclusion and accessibility) to p5.js! See our access statement for more details.

Get Started

Now you are ready to start contributing to p5.js! There are many ways to get started with contributing to p5.js and many reasons to do so. For the purpose of this documentation, we will split contributions roughly into two categories.

  • Contributions that directly deals with the source code (including documentation)
  • Contributions that directly deals with the source code very little or not at all

Depending on what kind of contribution you are making to p5.js, please read on to the relevant section of this documentation.

Source code contribution

For a typical contribution to the p5.js or p5.js-website repository, we will follow the following steps:

  1. Open an issue
  2. Discuss
  3. Approved for opening a Pull Request (PR)
  4. Make code changes
  5. Open a PR
  6. Discuss
  7. Approved and merged

Head over to this link where you will be guided one step at a time on how to navigate the steps above, or you can also use the table of contents on the same page to skip to a relevant part you need a refresher on.

Most of the time we will stick with this workflow quite strictly and, especially if you have contributed to other projects before, it may feel like there are too many hoops to jump through for what may be a simple contribution. However, the steps above are aimed to make it easy for you as a contributor and for stewards/maintainers to contribute meaningfully, while also making sure that you won’t be spending time working on things that may not be accepted for various reasons. The steps above will help ensure that any proposals or fixes are adequately discussed and considered before any work begin, and often this will actually save you (and the steward/maintainer) time because the PR that would need additional fixing after review, or outright not accepted, would happen less often as a result.

We see contributing to p5.js as a learning opportunity and we don’t measure sucess by only looking at the volume of contributions we received. There is no time limit on how long it takes you to complete a contribution, so take your time and work at your own pace (we may check in after a long period of inactivity). Ask for help from any of the stewards or maintainers if you need them and we’ll try our best to support you.

Non-source code contribution

There are many more ways to contribute to p5.js through non-source code contribution than can be exhaustively listed here, some of the ways may also involve working with some of the p5.js repositories (such as adding examples, writing tutorials for the website, etc.). Depending on what the planned contribution is, we may be able to support you in different ways so do reach out to us via any channel available to you (email, social media, Discourse forum, Discord, etc).

Stewards and maintainers

For information related to area stewards or general maintenance of p5.js GitHub repository, please check out the steward guidelines.