After starting to learn about Open Source and making some good contributions during my first Hacktoberfest, I was moving ahead in my OSS journey.

I wanted to have a big project of my own to which others could contribute. Fortunately, I had an idea for a project, and decided to make it completely open source.

The response from the tech community was awesome. The quantity of messages wasn’t a lot, but the quality, or say the love for the project has been great.

All of this may not seem like a big deal for many people. But think of a young developer who has just started his journey in tech and is getting appreciation for the project he builds! It’s surely a great reward for any developer, isn’t it?

I am writing this article with the purpose of inspiring you to start your own journey in Open Source. You will get a brief overview of all the necessary steps you should, but the main goal is to start doing it.

I will be pleased and satisfied if you start your journey after reading this. ☺️

Now let me share with you everything that I've learned during this little journey.

What is an Open Source Project and What Does a Project Maintainer Do?

computer-working
Animated GIF of Girl using computer

If I were to explain in simple words, projects with open source code to which others can contribute are open source projects. If the original code is yours and the project is hosted on your account, then you are the owner of the project.

The owner is basically the main maintainer. But there can be multiple maintainers of a single project because the job get time consuming and becomes harder once the project grows bigger.

As an owner or maintainer, your job will mainly consist of →

  • Planning your project’s features and goals.
  • Reviewing other people’s changes (reviewing pull requests).
  • Creating templates for PRs, issues, and other documents for the project.
  • Managing the repository and making improvements to it.
  • Raising issues, reviewing issues raised by others, assigning issues to people asking for them, and of course closing them once the issue is solved.
  • Code, code, code...
  • Debug, debug, debug...

You will learn the nitty gritty while maintaining a project, so don’t worry or get overwhelmed at the start Just take one step at a time.

Remember that the amount and difficulty of the work depends on the project. Some projects are very complicated and large and therefore need a lot of time and effort. But other projects are smaller and maintaining and developing them can be much simpler.

So all of this boils down to your personal experience, and you will learn by doing.

Why Have an Open Source Project?

As a developer, we all know that the best way to learn new concepts or tools is by building projects. So if you are building a super cool project, why not make it Open Source?

If you're worried that it will no longer be your personal project since other people will be helping you out, don't worry - that's not the case. You will be reviewing the changes and merging the pull requests, so you'll need to understand the changes. You must understand the whole code of your project, and then only you can make changes to it.

Being a Project Maintainer not only enhances your code understanding skills, but also improves communication, collaboration and decision making skills. These skills are crucial for becoming an outstanding developer.

This is because most of the time, as a developer, you will be working on a team and not alone. So building a project all alone may improve your coding, debugging and logic building skills, but building it in public with other collaborators increases your knowledge many fold.

Benefits of Creating an Open Source Project:

Personal Project Open Source Project
You code alone, so it takes more time and effort to develop the project You code with other collaborators so you can get a lot more done
No need to worry about code style and good practices, because you are the only one reading the code, so it may not be readable by others. You need to make suree your code is readable, as well as follow code styling/best practices because other developers are also working on it.
You only learn the code syntax, logic building, and debugging your own code, which is not exactly what you will be doing in real life as a developer in a company or startup. You learn to read other people’s code, test their changes, debug their code, share feedback and ask for changes, solve merge conflicts, work on issues with others and communicate with them continously. This is very close to a real developer job.
You don’t have to make documentation for your project, because, let’s be honest, who cares? You will definitely always remember everything you did and why you did it, right? ;) You need to make proper documentation of the project and guidelines for contribution. This skill is very helpful as a developer.
You may not have a proper plan for the project and just add features casually whenever you desire. You need to plan the project properly and be clear about everything so that it’s easier for other developers to make changes so they will know exactly what needs to be done.
You get appreciation for your project, but that project may not be used by anybody or not help anybody much (but it depends on the project). Here, the advantage is that other developers can contribute to it. Many beginners in open source keep looking for projects to contribute to, and your project can help them in their journey too!
You may connect with the few developers that liked your project, or anybody else who tried it once, but this may not be the case always. You get to know and talk to many cool people around the globe when they contribute to the project and in that way you make new connections. These connections are really important.

These are a few benefits that I've personally experienced so I wanted to share them with you. Everybody’s journey is different and you will experience something new in yours.

Do You Need to Be an Expert to Start an Open Source Project?

Absolutely NOT!

tony-stark-rdj
Tony Stark GIF

I was a noob when I started my project. You need to understand this: you are never going to know everything about a certain tool or technology. And remember – you learn by doing always!

So if you are not starting with open source just because you think you aren’t capable enough, think again. I bet you are.

Don’t worry if you don’t know a lot of things. Start asking questions, be curious, think of creative ideas and search the internet for your answers. You will learn along the way, and this hunger for learning will last a long time because it’s innate and genuine.

Start contributing to open source, and start making your projects open source. Share what you create with the world by posting on social media about your project. Try to share it on tech communities and get feedback. Generally, people aren't there to judge anyone – they're there to help you get feedback and improve.

Never fear others or the challenges you may face. Don't think what if I can’t do this? You'll figure all this out once you start. And then you'll get to experience things that you never thought of.

Personally, I never expected that people would thank me for building this project!

I mean who’s gonna care if I made this app that I built for my sister open source? And why would they thank me for that? But they did. And this inspired me a lot.

Things to Know Before Becoming a Project Maintainer

You will learn a lot of things when you start. It’s not rocket science, and you don’t need to know much apart from basic concepts of Open Source that I already explained in this article.

goma-cat
Cat learning on laptop

Here's a summary of what you should know:

  • Make sure you have a good grasp of the concepts and tools which you use in your project. For example if it’s a JavaScript App, you should know at least the JS basics quite well.
  • Have a good understanding of Git and GitHub (basics are enough in the beginning, but as you progress, you will need to know things more deeply). Here's a crash course to get you started.
  • Make sure you're familiar with MarkDown (here's a helpful Markdown Guide)

You also need to create good documentation for the project which includes all the necessary information about it. If you have any particular code styles that contributors should follow, mention it in there.

Read about how to write a good Readme for your Project in this guide. You can use this helpful resource to make one: Make a Readme.com.

And here are some helpful resources to learn about Open Source and maintaining an open source project: 👇

I would like to answer a question you might have: Do I need to start a project from scratch especially for open source?

No, it’s not necessary. Even I didn’t start my first open source project from scratch – I had built a lot of it already. If you have any existing projects and you want to make them open source, simply create a repository and host it somewhere so others can start contributing to it.

The Story of My Open Source Project, Arito

The idea of open source software fascinated me. I was excited that I could just find someone skilled for the project I was working on and get their help or just work collaboratively.

A few years ago, I built a Python GUI program for my younger sister for practising math, specifically her arithmetic skills. But that app wasn’t good enough, so I decided to build it again with JavaScript – and this time, with a lot more features and good UI/UX that would be accessible to public.

Fast-forward to November 2022, I created a WebApp based on the same concept, because I was learning web development. I had also learned about open source and had recently started contributing to it. So I decided to make my project open source as it would be useful for the public too!

I named it Arito, and selected a color theme which is bright and playful in nature because this app is for kids

image-162

The project was started when I only knew basic JS and good amount of HTML & CSS, so the code wasn't perfect. But over time, because of amazing developers around the world, it’s getting a lot better, and very quickly.

I have decided to keep the all logic in Vanilla JS so that learners who are new to Web Development can contribute to it, and start their own Open Source Project.

A tweet of a father using this app with his daughters

I did this purely with the intention to help other kids. And I feel good because the project is doing great and I have gotten a lot of appreciation for it.

Here’s the link to Arito’s GitHub Repo, if you want to contribute. This is my first Open Source Project for which I am serious, as I wanna make it a real world app that can be used by kids all over the world. There are many more to come!

The best thing about Open Source is that people with great ambitions and no selfish desires make amazing projects, and everybody can collaborate on development. It’s like learning and growing together while sharing ideas and helping each other out. The community is very wholesome.

Collaboration is crucial for the development of technology, so learning this skill is beneficial for the long term.

image-161
Message of Appreciation for Arito 

So what are you waiting for? Start your own journey today!

Thanks and Take Care

I hope I've been able to add value to your life by sharing all this information and experience. If this article helped you out, please reach out on Twitter and mention me in that tweet. This will inspire me a lot and I will work harder to serve the community. Also feel free to ask relevant questions, I would love to answer them.

My Twitter Handle 👉 @Prakhartiwari0

Thanks for your time, Take care! ❤️