Written by Linea Brink Andersen.
A week ago, I started an Open Source project. I had never done a pull request or merged anything on GitHub. Suddenly I was an Open Source maintainer.
I had always wanted to contribute to Open Source. Every time I was looking for a project, I gave up. I was overwhelmed by the source code of a project, or it looked too complicated. I didn’t know whom to reach out to for information and help. I was doubting my skills, and convinced myself that my contributions wouldn’t be useful.
It was ironic. I wanted to contribute to Open Source, to gain experience. But I felt that I needed more experience before I could start. It was an endless spiral, and I realized I needed to do something about it.
Breaking through the barrier
I wanted an Open Source project for beginners. I dreamed of a project where I could feel confident. Where other contributors were also learning to code, or contributed to help beginners. I figured out that there were probably other people like me looking for the same opportunity.
Then, it finally hit me. I could start an open source project myself. I spent 14 hours on it that day, and in the early morning I had a project on Github. Then I tweeted out for others to join me.
If you have been curious about open source for a while, but haven’t gotten started, I encourage you to do the same. I have captured my process in this post. If you create the type of project you would feel good about contributing to, it will be much easier to get started. As an added bonus, you will help other people who have been hesitant to contribute for the same reasons as you. Try it out — you will learn a lot.
Side note: I said above I started my project in 14 hours. To be completely fair, I started on step 3 (see below) that day. I already had my idea, and I had written my baseline code a couple of weeks before. If you have some small project you have already started, you can use that. But if not, no worries, you do not need to do it in one day.
So without further ado, here are my five steps to create your own Open Source project.
Step 1 - Get an idea
This might sound very hard, but it doesn’t have to be. After all, you only need the beginning of an idea. Your future contributors and potential users will be full of ideas to build on top of yours.
A lot of technologies like Google and YouTube started out very simple, and so should your project. Remind yourself that this is a learning experience. Your idea doesn’t have to feel like a genius invention. If you’re still stuck, maybe this silly site can help you.
Step 2 - Create a baseline
It is easier to start collaborating if there is some minimal code to start from. It is up to you to decide how much code your project should include to begin with. But it will be easier for your contributors to begin if there are at least a few lines of code that they can modify or add to.
Don’t worry if your baseline seems too simple. This is exactly what you want. Other beginners will be able to contribute, because the project is simple and the code is easy to read.
Step 3 - Set up your repository
The repository is where it all happens. It is also where we beginners lack a bit of experience, compared to seasoned developers. Use your experience as an Open Source “newbie” to create a simple and encouraging project that other beginners can join.
You know exactly what was hard for you. Make sure that your project makes it easier. Create the type of project you wish you could have joined yourself.
When I was looking to join an Open Source project, I really wanted to ask the maintainers how I could contribute. I made sure that there was plenty of ways for people looking at my repository to reach out to me. I provided information on how to open an issue and introduce yourself. If someone does that, we can figure out together how they can start contributing.
There are people out there who have the same struggles as you. If you build your version of a welcoming open source project, they will have an easier time joining you. Together, you can learn and develop your project.
There are many guides on how to start a GitHub repository, for example here. Learning by doing is what works best for me.
Then move on to “Moving your project to Github”. This guide will walk you through setting up an Open Source repository step by step. Feel free to skip any step that you don’t think is relevant to your project, or that you want to save for later. When you finish, you can change the name of your repository, make it public, and voila! You have an open source project.
Remember that open source doesn’t just mean a collaborative project. It also means having an open source license. The GitHub guide will help you in adding that to your repository, too.
Step 4 - Invite people to collaborate with you
This was the step that scared me the most. I didn’t have any friends who were coding that I could invite to join my project. I had less than 20 followers on Twitter, so I wasn’t even sure my tweets would have much reach. But I tweeted out an invitation to join, and added some hashtags that I hoped would reach other beginners.
And then, Nothing Happened!
For more than 24 hours, no one liked my tweet. The only retweet was from a twitter bot. Worst of all, nobody was active on the repository. I was disappointed. My expectations weren’t high, but I had hoped that at least one or two people would check it out.
But the following morning, there had been some twitter activity. Two people had been working on the repository. The project had its first pull request. I was so excited. Now, less than a week later, there are 8 active collaborators on the project, none of whom I have ever met.
Step 5 - Crush the Open Source game
This step is learning by doing. You will be facing many challenges as you start working on the project with your contributors. My first big challenge was a merge conflict. Google was a great help at that moment, and I was lucky that I could ask for help at my weekly meetup.
Remember that you have built a space for learning. Your contributors understand that you don’t know how to do everything from the get-go. Treat every new challenge as a learning opportunity. Don’t fear asking your contributors for help or advice. The beauty of Open Source is combining the forces of the entire team. You can all share your individual expertise.
Now go do it
The moral of the story is that anyone can start an open source project — that means you, too. It doesn’t matter that you don’t have a huge, complicated idea for a giant project. It doesn’t matter that you haven’t been using GitHub for long, or ever. It doesn’t even matter that you don’t have any friends who code with whom you can collaborate. You can do it, and I really hope you will. You will learn so much, and you will help make open source more approachable for other beginners.
How I crushed my fear of open source and started my own project — and how you can, too. was originally published in freeCodeCamp on Medium.