First Time Contributing to some open source

Hi wonderful people, I have never contributed to an Open Source project, i cloned the p5.js repo, looking at the code and i was kind of confused, I got overwhelmed looking at the huge (at least from my point of view) code base p5.js has. I just couldn’t figure out where to start. I want to contribute to some open source and i think p5.js is a cool one, Can someone please suggest me a way to penetrate into the code base, i am inexperienced so got no idea how to handle code bases of this size. (sorry if it sounds stupid…)


First off, it’s really awesome that you want to contribute. Open source wouldn’t work without people like you.

As for getting started, one thing I’d keep in mind is: no contribution is too small. Fixing typos in documentation, updating examples, filing bugs: all of these are great ways to get started contributing.

I’d also consider other ways of contributing and familiarizing yourself with the codebase. You could try answering questions on this forum, or in the P5.js tag on Stack Overflow. Even just reading through (and upvoting) existing answers can be a good way to learn more about how everything works.

You could also check out the issues filed in the P5.js repo here. That can be overwhelming, but check out issues that have the help wanted and/or good first issue tags. These tags mean an issue is a good place for a new contributor to start.

  • That’s an exact description for the size of the whole p5js project! :fearful:
  • The repo isn’t just about the code of the p5js library: :octopus:
  • But also code for building & publishing the library and generating its docs reference. :open_file_folder:
  • p5js’ most important classes are [u]p5[/u], [u]p5.Element[/u] & [u]p5.Renderer[/u] and its subclass [u]p5.Renderer2D[/u]. :man_teacher:
  • And you should focus on those 4 classes IMO. :man_technologist:
  • However, the core class p5 is not just 1 file but actually spread everywhere. :world_map:
  • It’s very painful to locate any particular method or property for class p5, b/c it’s not very clear which p5js source filename would apparently have it. :dizzy_face:
  • That’s all the tips I’ve got for now. Good luck! :star2:
1 Like