# First Time Contributing to some open source

**URL:** <https://discourse.processing.org/t/first-time-contributing-to-some-open-source/7539>\
**Category:** Development\
**Created:** [January 15, 2019, 1:54pm UTC](https://discourse.processing.org/t/first-time-contributing-to-some-open-source/7539 "2019-01-15T13:54:44Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mynk](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@mynk](https://discourse.processing.org/u/mynk)\
**Post date:** [January 15, 2019, 1:54pm UTC](https://discourse.processing.org/t/first-time-contributing-to-some-open-source/7539/1 "2019-01-15T13:54:44Z")

</div>

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…)

---

<div class="post-metadata">

**Author:** ![Kevin](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kevin/32/2297_2.png) [@Kevin](https://discourse.processing.org/u/Kevin)\
**Post date:** [January 15, 2019, 7:17pm UTC](https://discourse.processing.org/t/first-time-contributing-to-some-open-source/7539/2 "2019-01-15T19:17:21Z")

</div>

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](https://stackoverflow.com/unanswered/tagged/p5.js). 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](https://github.com/processing/p5.js/issues). That can be overwhelming, but check out issues that have the [help wanted](https://github.com/processing/p5.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and/or [good first issue](https://github.com/processing/p5.js/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) tags. These tags mean an issue is a good place for a new contributor to start.

---

<div class="post-metadata">

**Author:** ![GoToLoop](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/gotoloop/32/86_2.png) [@GoToLoop](https://discourse.processing.org/u/GoToLoop)\
**Post date:** [January 15, 2019, 8:00pm UTC](https://discourse.processing.org/t/first-time-contributing-to-some-open-source/7539/3 "2019-01-15T20:00:30Z")

</div>

> [@mynk](#):
>
> I got overwhelmed looking at the huge (at least from my point of view) code base p5.js has.

- That’s an exact description for the size of the whole p5js project! 😨
- The repo isn’t just about the code of the p5js library: [p5.js/src at main · processing/p5.js · GitHub](http://GitHub.com/processing/p5.js/tree/master/src) 🐙
- But also code for building & publishing the library and generating its docs reference. 📂
- p5js’ most important classes are [[u]p5[/u]](https://github.com/processing/p5.js/tree/master/src/core), [[u]p5.Element[/u]](https://github.com/processing/p5.js/blob/master/src/core/p5.Element.js) & [[u]p5.Renderer[/u]](https://github.com/processing/p5.js/blob/master/src/core/p5.Renderer.js) and its subclass [[u]p5.Renderer2D[/u]](https://github.com/processing/p5.js/blob/master/src/core/p5.Renderer2D.js). 👨‍🏫
- And you should focus on those 4 classes IMO. 👨‍💻
- However, the core class p5 is not just 1 file but actually spread everywhere. 🗺
- 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. 😵
- That’s all the tips I’ve got for now. Good luck! 🌟
