• 3 Min Read

My First Open Source Contribution

There Will Be No Definitions

As I said, there will be no definitions of what open source is or what Gridsome is for that matter. If you are not aware, they are both awesome, but if you want to know more, the google is your friend. Now something I know you don't know is I recently became a contributor to an open source project. I might be more excited than I should be, I mean it was only a contribution to documentation, but I'll be honest... I don't really care. The words and pictures below are what and how I became a member of the Open Source Community.

Gridsome + TailwindCSS = Awesome!!!

Gridsome is awesome and so is TailwindCSS. So, it only makes sense that I would want to use them together... a lot. So much so, I made myself a file with the steps and snippets required to add TailwindCSS to a fresh Gridsome project. This file became very helpful to me and after poking around in the Gridsome docs, I noticed the TailwindCSS section could use more information. Wait... can I contribute to this documentation? Will this be my first open source contribution? I was intrigued.

After a click, a Google and another click or two, I found the GitHub repo for Gridsome.org. A few more clicks and there it was... I swear the file was glowing when I opened the directory it was in, assets-css.md. I found the block of code I planned to update and immediately searched up my notes on adding TailwindCSS. I realized it wasn't 'print ready', so I decided to rewrite it with the context of adding it to the documentation.

Test Test and Push

The file included directions for adding TailwindCSS by installing a Gridsome Plugin or adding it manually. Since I hadn't followed the steps in the newly rewritten file, I didn't feel comfortable pushing the PR without testing the directions, step-by-step, myself. So, that's exactly what I did, twice, on two different computers. I realize that may be considered overkill, but with this being my first contribution, I couldn't post a mistake; that would be a disaster.

Thankfully, all the tests worked as I expected. I read the Gridsome docs page on How to Contribute and made the PR on the repo. The cool thing is they use Netlify for hosting which allows you to preview the build right from the PR window. After doing so, I realized I used the wrong heading levels, which was creating extra links in the sidebar. So I made the correction and pushed the commit.

Becoming an Official Open Source Contributor

At this point, the waiting began. I wasn't sure how long it would take to get any feedback. This can obviously depend on the project, the number of people maintaining the repo and a heap of other variables. So I was prepared to wait patiently.

To be honest, the more days that passed, the more I forgot about it. That was until I got the email inviting me to the Gridsome Organization. It was then that I knew, I would be seeing a notice that my PR had been merged. Sure enough, the next email was just that. Oh sweet! I am now an official Open Source Contributor.

Lessons Learned

I truly never expected to be a contributor to an open source project. Not only have I, but to my surprise, the process was a lot easier then I ever imagined it would be. Again, I realize I only wrote 200 lines in a Markdown file, however, the process would be similar regardless of the code written.

During the wait, I did find an issue on the repo that discussed the TailwindCSS documentation needing to be updated. The issue was the oldest open issue on the project, nothing had been pushed for it and the commentary had died. I referenced my pull request in a comment on the issue. I realize now, the issues page is where you should start before making pull requests. Mainly to make sure you aren't duplicating someone else's work that just hasn't been pushed to a PR yet. It's also a good place to find ways to contribute to the project.

What's Next

Well I don't plan to stop using Gridsome or Tailwind anytime soon. Perhaps there will be another opportunity for me to contribute to one of those projects or another project all together at some point in the future. I hope this is the first of many contributions I make to the open source community. That's the goal anyway.

Thank you for reading.