Making More Meaningful Contributions in Hacktoberfest 2023
Tags: hack23contributor
Published: 2023-10-31 15:49:23

## Intro

Hacktoberfest is a great way to get started making contributions to open source projects. As this month comes to a close, I want to share my experience as a contributor for this year's Hacktoberfest, as well as the things I learned along the way as I make more meaningful contributions than previous years.


## Getting started contributing to Open Source with Hacktoberfest

When I started learning to code, I was using GitHub mainly as a place to track my progress as I take online courses and build projects to improve my developer skills, meaning pretty much all I did was commit my code and push straight to the `main` branch. But I knew I can do so much more than that. I always wanted to make my own contributions to open source, but back then I felt I don't have enough skills to navigate the extremely large codebases of popular open source repositories. But sure, even if I can't navigate those popular repos with their large codebases, at least there's loads of guides on how to find [good first issues](https://goodfirstissue.dev/) or smaller projects with more beginner-friendly issues that I can tackle!

Looking back, making my first PR was a lot easier said than done. I didn't want my first PRs to be just scanning the project READMEs for typos then make a PR to fix it and call it a day. I want to make some REAL open source contributions. I want to *write some code*! But how on earth am I gonna make those PRs if all I knew was basic HTML/CSS/JS, maybe throw in some React and maybe a *liiiiittle* bit of Python from that one time I was exploring some AI/ML stuff? I can't take those "good first issues" if I don't even know the programming language those projects are written in!

So when I first heard about Hacktoberfest back in 2021, I thought it would be a great starting point for me to make commits and pull requests (PRs) outside of my own repos. It's also a time where a lot of tech communities get together and collaborate on a fairly large project while still being accessible to beginners like me! So that's what my first (legit) Hacktoberfest contributions came to be - I participated in tech communities hosting Hacktoberfest events, found some collaborative projects where I can apply my skills, and followed each project's contribution guidelines to get my PRs approved really quick!

For Hacktoberfest 2022, I wanted to make contributions to bigger open-source repos, not just the one-off projects created specifically for Hacktoberfest to be archived later. My development skills also improved a lot in that year, so I was more confident in finding open source projects that have open issues that match my skillset! So I still participated in community-led Hacktoberfest projects, but I also explored some popular repos to see if I can make some PRs in larger-scale projects.

### Cloud Environments FTW

My biggest highlight for Hacktoberfest 2022 was making contributions for [freeCodeCamp](https://github.com/freeCodeCamp/freeCodeCamp) and [Sandpack](https://github.com/codesandbox/sandpack), and I want to highlight how I navigated these popular repos even when they have such large codebases.

The biggest thing that helped me make contributions to freeCodeCamp and Sandpack was that they both have configurations that we can use to open the repos in cloud environments (Gitpod for freeCodeCamp, CodeSandbox for Sandpack) and let them automagically handle the setup and properly install the projects' dependencies. This lets me just focus on working on the changes I need to make and also test if my solutions actually solve the issues I was working on.

So what sort of issues did I solve in these oh-so-complex projects?

...I clarified some instructions in one of freeCodeCamp's lessons, and added new themes for Sandpack. 😅

![It ain't much, but it's honest work](https://media.npr.org/assets/img/2023/05/26/honest-work-meme-cb0f0fb2227fb84b77b3c9a851ac09b095ab74d8-s1100-c50.jpg)

Yeah, my PRs were pretty simple, but I learned another valuable lesson that I can use to keep contributing on projects as big as those!

### The value of reading instructions

Ideally, each open source project should have instructions on how to navigate their codebase and start making contributions, or at least install the dependencies and get their project working either locally on your machine or a cloud environment like I mentioned before, which you can usually find in a `CONTRIBUTING.md` file. Additionally, you can also sort the `Issues` tab and filter the issues labelled something like "good first issue", "help wanted", "contributions welcome", etc. Heck, some projects can even have issues that the maintainers posted specifically for Hacktoberfest!

Even if the project can initially seem too big for you to navigate, following these sorts of instructions can get you a long way to making meaningful contributions. In fact, reading setup instructions was how I found out that I can use cloud environments to help me make changes to big repos (CodeSandbox also has some [great](https://codesandbox.io/blog/get-started-with-hacktoberfest) [guides](https://dev.to/codesandboxio/contribute-to-sandpack-in-hacktoberfest-4j65) on how to make your contributions via CodeSandbox)!

## Growth

And now, here we are with Hacktoberfest 2023. For this year my goal is really straightforward: Use the skills I learned and make my Hacktoberfest PRs in open source repos that I have either used in my projects before or at least follow on GitHub/Twitter/etc, and continue that momentum to keep contributing to open source projects beyond Hacktoberfest.

I'm extremely pleased to say that I made better contributions this year than the previous Hacktoberfest! Here's a quick recap:

- I [fixed a code example](https://github.com/cloudinary-community/cloudinary-examples/pull/61) in Astro's docs ~~okay that was a two-line fix just changing some imports but still~~
- I added [a Remix version for a Product Gallery](https://github.com/cloudinary-community/cloudinary-examples/pull/61) in Cloudinary's example integrations
- I [created a Playwright test](https://github.com/freeCodeCamp/freeCodeCamp/pull/52016) for one of freeCodeCamp's UI components
- I [fixed some TypeScript types](https://github.com/colbyfayock/cloudinary-util/pull/78) for Cloudinary's utils package

Now I'm not fully satisfied with the contributions I made this Hacktoberfest (I still think the PRs I'm making remain relatively small), but they do feel a lot more impactful than my PRs in the previous editions of Hacktoberfest.

Moving forward, I'm really excited to keep contributing to open source projects using the skills I developed in Hacktoberfest events. In a way, writing this blog post serves as my pledge to continue this good momentum I built and keep making better, more meaningful contributions to open source porjects even outside Hacktoberfest!

## How can YOU make more meaningful open source contributions?

Want to join me in making impactful contributions and give back to the wonderful open source projects you use in your projects? I've got you covered! Here are some tips and tricks I wish I knew when starting out making contributions to other people's projects:

### Join active tech communities

If you're an absolute beginner and you don't know many programming languages/frameworks or other advanced topics, participating in tech communities can be a great way to get started working in open source! A lot of tech communities have their collaborative projects that members can actively participate in and applying various things while learning to code, plus Hacktoberfest is also a great time for these communities to host their own events with even more open source projects to contribute to!

### Build more projects

When finding open source projects to contribute to, there's really no going around simply building more projects and using more open source tools/frameworks along the way. Not only does it give you more experience writing better code, it also gives you a lot better context when use various open source tools/frameworks, encounter issues/bugs or something that you think can be improved, and gives you more incentive to make your own contributions!

### RTFM

Like I mentioned before, reading instructions commonly found in the projects' `README.md` or `CONTRIBUTING.md` can help a lot especially if you need to run their code in your local machine (or use cloud environments if you're having trouble installing stuff). Reading the issues you want to work on also helps in making your PR - a lot of well-written issues often give enough context of the problem or even give hints to the solution that needs to be done.

### Documentation/Localization PRs are underrated

A growing trend I see in Hacktoberfest events is open source projects looking for extra help on documentation or localization. At first glance these might seem like very small fixes, but I often find them equally as meaningful as code contributions, since working with documentations/localizations often involve a lot of communication with the project maintainers to ensure their topics can get relayed properly to other developers looking to use their project.

### Collaborate!

At the end of the day, Hacktoberfest is an event that encourages proper collaboration with open source project maintainers to ensure the quality of contributions. When you find an issue you want to work on, be sure to follow the guidelines set by the project maintainers such as waiting to be assigned before making your PR and using the post templates they provide when you do open your PR, and be sure to follow the maintainers' instructions when they request a change in your PR. Not only does it improve the chance of your PR getting merged faster, collaborating with project maintainers also lightens up their workload to ensure that all contributions follow a certain standard of quality.

Hacktoberfest is a great event for beginners to get started giving back to the developer community by making contributions to open source, but the contributions shouldn't stop after this event ends! Keep participating in your local communities, building more projects, and make your next contributions to open source more meaningful.

See you next year!