My First HacktoberFest
Tags: opensource, hacktoberfest, webdev
Published: 2021-10-25 18:26:18

This year I've decided to enroll and commit myself to do HacktoBerfest 2021. 
I do not considerer myself as a code newbie (i've learned to code 2018) but I also do not have an extended experience

In the past, I did not contribute to open source because I thought it was hard to find a project with open issues corresponding to my coding skills and stack. 
To be honest, I was not much into scanning codebase to find typos to do PRs, or the codebase was too complex for me. Therefore, I went on my journey without thinking too much about it. 

This year, I really wanted to contribute and stop this laziness once and for all.

Hacktoberfest is the perfect time for it, you see posts about it all over the place (DEV.to, CodeNewbie, Twitter...) so you i felt very motivated to be part of it. 

Long story short this is my journey for HacktoberFest 2021.

##The journey

The first difficulty was to find a repo with an open issue not already assigned. 
A lot of people want the swag and are also doing HacktoberFest. 
Browsing the `Good First Issue`, `Beginner-friendly` tagged Issues everything was already taken 😢. 
But I finally encountered a repo where I could contribute. 

###PR1: JSON 
The repo is [opendrinks](https://github.com/alfg/opendrinks) , a cocktails recipe website built in Vue. 
I do not code in `Vue` but I could contribute by adding a new recipe. 
Ok, let's go read the docs, the contribution guide, clone the repo, create a new `JSON` file, testing locally... Well, that's it, the first PR is sent. 
PR accepted 🎉 Horray.
Nice, but I was feeling a bit like I was cheating, this is not really coding right?

{% github https://github.com/alfg/opendrinks/pull/1106 %}


###PR2: I18N
OK, then let's look if I can find something to improve on this repo. 
Well, I see some `I18n` blocks on the components, why not translate in my native language (French). So I browsed all components and add my translation. 
Doing this I also found an issue with some text not being translated because they were coming from a `JSON` file and not from a component with an `I18N` block.
OK let's highlight that issue on my PR and send it.

{% github https://github.com/alfg/opendrinks/pull/1117 %}


###PR3: CSS
Let's try another repo but this time built with a stack I know (Rails, JAMSTACK...)
Found it! [gamou](https://github.com/vczb/gamou/issues/5) repo is built with `Rails` and uses `Tailwind CSS`. 
Perfect I wanted to try `Tailwind`. 
I've checked the `Tailwind` Docs and went for this issue. 
`Tailwind` was easy to manipulate and `CSS` issues were not so difficult to fix (spacing). 
PR3 is sent!

{% github https://github.com/vczb/gamou/pull/78 %}


###PR4: Rails
On the same repo, there was another issue. 
More advanced this time.
[gamou](https://github.com/vczb/gamou/issues/58)
The issue was related to `Devise` gem.
I used `Devise` in the past and I identified the bug root cause pretty quickly.
Some changes in `Rails` controller, some `Erb` (HTML) in the `User/edit` form, and bonus I've corrected few typos in `I18N` files I've found along the way.
PR sent 🎉. After few comments a explanation about my solution, maintainer Merged it.  
I begin to feel useful and that my PRs are "real code" now.

[PR](https://github.com/vczb/gamou/pull/79)
*Putting as link due to non ascii character in the PR*

###PR5: HTML/CSS/JS
This time I wanted to build something UI related.
I found this repo: [Embellish](https://github.com/siddhi-244/Embellish).
This is a repo that centralizes some UI and components for people to use or get inspiration for their designs.
OK, let's build a Disney+ card grid with a video playing on Hover (I got the idea from a `Dev` article).
Few lines of `HTML` `CSS` and `JS` and Voila another PR in the bag.

{% github https://github.com/siddhi-244/Embellish/pull/142 %}

##Lessons Learned
Well, that was it for this year, I had 5 PRs in total.
I'm pretty sure i can do more advanced stuff, but I've started with super easy ones, and went to more technical ones, as I was feeling more comfortable with open source contribution.

I've learned to overcome a bit of imposter syndrome, by seeing that I was able to take some code made by others and being able to see some issues with this code and being able to correct it. 
Moreover, I've practiced the way of making PRs, describing what I've done, resolving conflicts and respecting the Contribution Guidelines. 
This intro to open source is very modest but was a nice start.
I'll definitely do `Hacktoberfest` again next year and will try to contribute outside of `Hacktoberfest` all year long when I have time. 

Long Hail Open Source. It serves other people and makes you grow as a Dev.