Starting my first Open Source project

An illustration depicting a modern workplace, next to an illustration of Bit the Raccoon.

Getting started with open source can be daunting. When people think about open source projects, they often think of huge projects like TensorFlow or smaller libraries such as the awesome Alexa.NET SDK, and that they are run and contributed to by veteran open source experts.

Well, I don’t count myself as a veteran open source expert but I want to share with you some success I’ve had starting my first open source project.

Inspired by the awesome WebDevchecklist.com, I had the idea of creating a website with a checklist to help with code reviews called CodeReviewChecklist.com. It isn’t necessarily meant to be a definitive checklist, more a prompt/reminder of things to look for. The list of checks is one of the things needing some additional work!

This time, however, unlike my previous websites/side projects, I decided to try and get help from the development community and allow them to make changes themselves by making it open source. After all, this is a tool meant for use by the development community, so it made sense to open it up to contributions from them.

 

Initial Contributors

Following a short lull after creating the project, I started to get approached by people wishing to help out. The first issues included things like creating a toggleable dark theme and ensuring the site is responsive, which were immediate improvements.

Interestingly, the initial people that reached out to me asking whether they could help with CodeReviewChecklist.com heard about the project whilst I was giving a talk on a completely different subject (Augmented Reality on iPhone for .NET developers using Xamarin, C# & .NET). Which just goes to prove that the more you put yourself out there and give, the more people will take notice and wish to help.

Some of the initial contributors admitted themselves that they hadn’t had much OSS experience, which suited me to the ground as I hadn’t had much experience running an OSS project! We would be learning this together.

 

Live Streaming on Twitch

As an aside, around about the same time I started development of the site, I started to live stream some of my coding sessions on Twitch. Something I found to be incredibly fun and something I wish to get back to when I have more free time. If you haven’t already thought about checking out Twitch for either watching or broadcasting coding sessions, I recommend you check it out.

 

Showing GitHub Issues on the Site

So by this time, I had created a few issues in GitHub. However, what I really wanted to do was to pull in issues from GitHub and show them on a page on the site. Eventually I managed to tweak some code I found to do this.

The result is a list of the outstanding GitHub issues on the /OpenSource page on the site that people can see, without even having to go to the repository on GitHub.

 

Hacktoberfest

Hacktober presented another opportunity to enable and encourage the community to help improve the site, so following the very simple project maintainer steps, I added ‘hacktoberfest’ as a topic in my repository and this attracted additional contributors to tackle outstanding issues. What I would love is for contributors to continue to help improve the site well after Hacktoberfest has ended!

 

Things to do

Having never run an open source project before, I have learnt a few things that I need to do to improve the project on GitHub:

  • Provide a contribution guidance
  • Provide a code of conduct
  • Implement an automated CI build & release pipeline
  • Improve the content on the actual site!

And I will get to these, I promise!

 

Summary

Starting to run or starting to contribute to an open source project isn’t as daunting as you may think. All of the people I have come across in the OSS community and on GitHub are happy to help if they find your project of interest or if you run into difficulties.

Giving something back can be very rewarding, and in our line of work OSS contributions are a great way to give back, have fun and learn at the same time.

 

Useful Links