Ask Sawal

Discussion Forum
Notification Icon1
Write Answer Icon
Add Question Icon

How to start open source contribution?

6 Answer(s) Available
Answer # 1 #

This is a list of resources for people who are new to contributing to Open Source.

If you find additional resources, please create a pull request.

If you have questions or comments, please create an issue.


Leota Feldshuh
Technical Director
Answer # 2 #

Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.

Why do people contribute to open source? Plenty of reasons!

Lots of open source contributors start by being users of software they contribute to. When you find a bug in an open source software you use, you may want to look at the source to see if you can patch it yourself. If that’s the case, then contributing the patch back is the best way to ensure that your friends (and yourself when you update to the next release) will be able to benefit from it.

Whether it’s coding, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open source project.

Open source projects with warm, welcoming communities keep people coming back for years. Many people form lifelong friendships through their participation in open source, whether it’s running into each other at conferences or late night online chats about burritos.

Working with others on a shared project means you’ll have to explain how you do things, as well as ask other people for help. The acts of learning and teaching can be a fulfilling activity for everyone involved.

By definition, all of your open source work is public, which means you get free examples to take anywhere as a demonstration of what you can do.

Open source offers opportunities to practice leadership and management skills, such as resolving conflicts, organizing teams of people, and prioritizing work.

You don’t have to become a lifelong contributor to enjoy participating in open source. Have you ever seen a typo on a website, and wished someone would fix it? On an open source project, you can do just that. Open source helps people feel agency over their lives and how they experience the world, and that in itself is gratifying.

If you’re a new open source contributor, the process can be intimidating. How do you find the right project? What if you don’t know how to code? What if something goes wrong?

Not to worry! There are all sorts of ways to get involved with an open source project, and a few tips will help you get the most out of your experience.

A common misconception about contributing to open source is that you need to contribute code. In fact, it’s often the other parts of a project that are most neglected or overlooked. You’ll do the project a huge favor by offering to pitch in with these types of contributions!

Even if you like to write code, other types of contributions are a great way to get involved with a project and meet other community members. Building those relationships will give you opportunities to work on other parts of the project.

While “open source” often refers to software, you can collaborate on just about anything. There are books, recipes, lists, and classes that get developed as open source projects.

For example:

Even if you’re a software developer, working on a documentation project can help you get started in open source. It’s often less intimidating to work on projects that don’t involve code, and the process of collaboration will build your confidence and experience.

For anything more than a typo fix, contributing to open source is like walking up to a group of strangers at a party. If you start talking about llamas, while they were deep in a discussion about goldfish, they’ll probably look at you a little strangely.

Before jumping in blindly with your own suggestions, start by learning how to read the room. Doing so increases the chances that your ideas will be noticed and heard.

Every open source community is different.

Spending years on one open source project means you’ve gotten to know one open source project. Move to a different project, and you might find the vocabulary, norms, and communication styles are completely different.

That said, many open source projects follow a similar organizational structure. Understanding the different community roles and overall process will help you get quickly oriented to any new project.

A typical open source project has the following types of people:

Bigger projects may also have subcommittees or working groups focused on different tasks, such as tooling, triage, community moderation, and event organizing. Look on a project’s website for a “team” page, or in the repository for governance documentation, to find this information.

A project also has documentation. These files are usually listed in the top level of a repository.

Finally, open source projects use the following tools to organize discussion. Reading through the archives will give you a good picture of how the community thinks and works.

Now that you’ve figured out how open source projects work, it’s time to find a project to contribute to!

If you’ve never contributed to open source before, take some advice from U.S. President John F. Kennedy, who once said, “Ask not what your country can do for you - ask what you can do for your country.”

Contributing to open source happens at all levels, across projects. You don’t need to overthink what exactly your first contribution will be, or how it will look.

Instead, start by thinking about the projects you already use, or want to use. The projects you’ll actively contribute to are the ones you find yourself coming back to.

Within those projects, whenever you catch yourself thinking that something could be better or different, act on your instinct.

Open source isn’t an exclusive club; it’s made by people just like you. “Open source” is just a fancy term for treating the world’s problems as fixable.

You might scan a README and find a broken link or a typo. Or you’re a new user and you noticed something is broken, or an issue that you think should really be in the documentation. Instead of ignoring it and moving on, or asking someone else to fix it, see whether you can help out by pitching in. That’s what open source is all about!

If you’re looking for existing issues you can fix, every open source project has a /contribute page that highlights beginner-friendly issues you can start out with. Navigate to the main page of the repository on GitHub, and add /contribute at the end of the URL (for example

You can also use one of the following resources to help you discover and contribute to new projects:

When you’ve found a project you’d like to contribute to, do a quick scan to make sure that the project is suitable for accepting contributions. Otherwise, your hard work may never get a response.

Here’s a handy checklist to evaluate whether a project is good for new contributors.

Meets the definition of open source

Project actively accepts contributions

Look at the commit activity on the main branch. On GitHub, you can see this information on a repository’s homepage.

Next, look at the project’s issues.

Now do the same for the project’s pull requests.

Project is welcoming

A project that is friendly and welcoming signals that they will be receptive to new contributors.

You’ve found a project you like, and you’re ready to make a contribution. Finally! Here’s how to get your contribution in the right way.

Whether you’re a one-time contributor or trying to join a community, working with others is one of the most important skills you’ll develop in open source.

Before you open an issue or pull request, or ask a question in chat, keep these points in mind to help your ideas come across effectively.

Give context. Help others get quickly up to speed. If you’re running into an error, explain what you’re trying to do and how to reproduce it. If you’re suggesting a new idea, explain why you think it’d be useful to the project (not just to you!).

Do your homework beforehand. It’s OK not to know things, but show that you tried. Before asking for help, be sure to check a project’s README, documentation, issues (open or closed), mailing list, and search the internet for an answer. People will appreciate it when you demonstrate that you’re trying to learn.

Keep requests short and direct. Much like sending an email, every contribution, no matter how simple or helpful, requires someone else’s review. Many projects have more incoming requests than people available to help. Be concise. You will increase the chance that someone will be able to help you.

Keep all communication public. Although it’s tempting, don’t reach out to maintainers privately unless you need to share sensitive information (such as a security issue or serious conduct violation). When you keep the conversation public, more people can learn and benefit from your exchange. Discussions can be, in themselves, contributions.

It’s okay to ask questions (but be patient!). Everybody was new to the project at some point, and even experienced contributors need to get up to speed when they look at a new project. By the same token, even longtime maintainers are not always familiar with every part of the project. Show them the same patience that you’d want them to show to you.

Respect community decisions. Your ideas may differ from the community’s priorities or vision. They may offer feedback or decide not to pursue your idea. While you should discuss and look for compromise, maintainers have to live with your decision longer than you will. If you disagree with their direction, you can always work on your own fork or start your own project.

Above all, keep it classy. Open source is made up of collaborators from all over the world. Context gets lost across languages, cultures, geographies, and time zones. In addition, written communication makes it harder to convey a tone or mood. Assume good intentions in these conversations. It’s fine to politely push back on an idea, ask for more context, or further clarify your position. Just try to leave the internet a better place than when you found it.

Before doing anything, do a quick check to make sure your idea hasn’t been discussed elsewhere. Skim the project’s README, issues (open and closed), mailing list, and Stack Overflow. You don’t have to spend hours going through everything, but a quick search for a few key terms goes a long way.

If you can’t find your idea elsewhere, you’re ready to make a move. If the project is on GitHub, you’ll likely communicate by opening an issue or pull request:

Before you open an issue or pull request, check the project’s contributing docs (usually a file called CONTRIBUTING, or in the README), to see whether you need to include anything specific. For example, they may ask that you follow a template, or require that you use tests.

If you want to make a substantial contribution, open an issue to ask before working on it. It’s helpful to watch the project for a while (on GitHub, you can click “Watch” to be notified of all conversations), and get to know community members, before doing work that might not get accepted.

You should usually open an issue in the following situations:

Tips for communicating on issues:

You should usually open a pull request in the following situations:

A pull request doesn’t have to represent finished work. It’s usually better to open a pull request early on, so others can watch or give feedback on your progress. Just open it as a “draft” or mark as a “WIP” (Work in Progress) in the subject line. You can always add more commits later.

If the project is on GitHub, here’s how to submit a pull request:

If this is your first pull request, check out Make a Pull Request, which @kentcdodds created as a walkthrough video tutorial. You can also practice making a pull request in the First Contributions repository, created by @Roshanjossey.

You did it! Congratulations on becoming an open source contributor. We hope it’s the first of many.

After you submit a contribution, one of the following will happen:

Hopefully you checked the project for signs of activity before making a contribution. Even on an active project, however, it’s possible that your contribution won’t get a response.

If you haven’t gotten a response in over a week, it’s fair to politely respond in that same thread, asking someone for a review. If you know the name of the right person to review your contribution, you can @-mention them in that thread.

Don’t reach out to that person privately; remember that public communication is vital to open source projects.

If you make a polite bump and still nobody responds, it’s possible that nobody will respond, ever. It’s not a great feeling, but don’t let that discourage you. It’s happened to everyone! There are many possible reasons why you didn’t get a response, including personal circumstances that may be out of your control. Try to find another project or way to contribute. If anything, this is a good reason not to invest too much time in making a contribution before other community members are engaged and responsive.

It’s common that you’ll be asked to make changes to your contribution, whether that’s feedback on the scope of your idea, or changes to your code.

When someone requests changes, be responsive. They’ve taken the time to review your contribution. Opening a PR and walking away is bad form. If you don’t know how to make changes, research the problem, then ask for help if you need it.

If you don’t have time to work on the issue anymore (for example, if the conversation has been going on for months, and your circumstances have changed), let the maintainer know so they’re not expecting a response. Someone else may be happy to take over.

Your contribution may or may not be accepted in the end. Hopefully you didn’t put too much work into it already. If you’re not sure why it wasn’t accepted, it’s perfectly reasonable to ask the maintainer for feedback and clarification. Ultimately, however, you’ll need to respect that this is their decision. Don’t argue or get hostile. You’re always welcome to fork and work on your own version if you disagree!

Hooray! You’ve successfully made an open source contribution!

Mehta xejoexy Nina
Answer # 3 #

Open source refers to source code that is made available to the public to view, use, modify, and distribute under a license. It’s usually developed and maintained collaboratively by a community of its users. Some well-known open source projects include Django, Postgres, MongoDB, Vue, Go, Ruby, TypeScript, Git and so many more.

Although the main point of  open source projects is to create valuable and accessible open source software, individual contributors can get plenty of personal benefit from contributing to them. You help maintain the software you use while honing your technical skills. When you’re applying for jobs, you can point to your work on open source software as proof of your skills.

By collaborating with others on open source you use, you get to become part of a community where you can practice your soft skills like communication, giving and receiving feedback, emotional intelligence, etc. These communities also introduce you to tons of people you can network with, who in turn will open you up to worthwhile opportunities.

Below, we’ll explore some strategies that you could use to break into open source. For illustration purposes (and because I’ve contributed some there), I’ll use the Angular project to explain how you could contribute to open source software. Although most of the examples will be of the Angular project, all these strategies described apply to many open source projects.

There are a lot of ways you can participate in open source. As a beginner, you could identify and fix bugs in a project. For example, the Angular project accepts issues pointing out bugs and even pull requests that fix them. In these projects, you can propose, help design, and work on new features. Angular for instance accepts proposals for large features and pull requests for smaller features. Larger features will require greater community involvement, and some communities require you to earn a reputation fixing bugs before moving to feature development.

Your contributions do not have to be exclusive to code. You can help a project by making comments on existing code and APIs to add context and writing documentation for the project. As an example, Angular has two whole projects on Github dedicated to documentation, which you can check out here and here.

Not all open source projects operate in the same way. Some allow contributions from anyone. Some require you to work your way up to get contribution privileges. Some have multiple people involved in managing a project. Others have a single person in charge, a so-called benevolent dictator for life.

Contribution guidelines help you understand how to approach your participation in a project. It will explain how to reach out about a contribution, provide templates for communicating bugs and suggesting features, list work that is needed by maintainers, project goals, etc. An amazing example is the Angular contribution guide which lists all kinds of useful information for new contributors like their commit message guidelines, coding rules, submission guidelines, etc. in great detail.

In addition to contribution guidelines, some projects will have a code of conduct. It usually outlines community rules and behavior expectations. It’s meant to help you know how to be a amiable and professional contributor and community member. Angular, for instance, has an awesome code of conduct that lists what they consider unprofessional conduct, their responsibilities to the community, and how to get in contact in case someone violates it.

Big projects may have governance policy and team documents that outline specific roles in the community, teams, sub-committees, contribution workflows, how discussions are conducted, and who gets to commit. These kinds of documents are essential to understanding how the community operates. The about page on, for example, lists who all the core team members are, their roles, and other contributors. On Github, they also have a docs folder containing policies regarding contribution.

Even after you’ve gone through the documentation, you may still need to ask questions to active members of the community. Despite doing your research, you may still be stumped on a particular aspect of the project. To interact with other contributors, join community communication tools like Slack, IRC etc., sign up for newsletters, and subscribe to their mailing list. Angular uses Gitter as its community communication tool and directs contributors with questions/problems to Stack Overflow, where they can get help using the angular tag. Connect with community members and develop relationships with them as it will expose you to facets of the project that you may be unaware of.

Having a good grasp of the technical aspects of the project and how it’s organized is essential to making contributions that meet the project’s standards. To understand technical parts of the project, consult the project README, wikis, tutorials, and documentation. Angular, for example, has docs explaining their Github process, building and testing, their coding standards, debugging, PR reviews, etc. Going a step further, look at past feature integrations and bug fixes in merged pull requests which are full of discussions by other contributors and can be a rich source of context. As the project evolves, pay attention to it, frequently follow issues, features, discussions, pull requests, and bug fixes to continually learn how it works. For instance, a contributor can follow this example of an Angular feature request discussion about a form API to better understand how Angular forms work, bundle size management, etc.

An open source project is sort of like a project at any company you might work at; there will be a house coding style, team culture, and workflows for getting things done. The difference is that open source projects can and will have a much different group of people working on them.

One way to find projects to work on is to look to open source software you use often and like. Is there a tool, package, framework, or a language that you work with regularly and enjoy using? Find out whether it’s an open source project by checking its license and if it accepts contributions and is active. Working on things you already use gives you an edge when contributing because you’re already pretty familiar with how it works and have experience using it. As a bonus, you can address problems that have been bothering you or suggest features that you want in the software. If you are going to contribute code to the project, be sure you can work in the language it’s written in.

If the above approach may not work for you, try using the Github explore page to find projects that are accepting contributions or actively want help. Github suggests projects you may like based on people and repositories you follow, star, and watch. Another way to find projects is to use Github’s search tool by entering beginner-friendly contribution tags like good-first-issue, good-first-bug, beginner-friendly, easy, low-hanging-fruit, first-timers-only, etc. Filter search results to return issues in open states and in the languages you’d like to work in. There are tons of other tools, platforms, and programs where you could find open source projects that I’ll list at the end of this article to help you with your search.

To have a positive contribution experience, try to avoid communities that are hostile to beginners and generally problematic. If for example, when trying to ask legitimate questions after you’ve done your research, you receive dismissive and combative comments or insults, it’s best to stay away. Another sign to be watchful for is a pattern of unprofessional behavior within a community. Some open source software projects have been infamous for this sort of thing. So do your research before contributing.

Projects may list the work that needs to be done in task, bug, and issue trackers. For example, Angular uses Github’s project management feature to outline and assign tasks and track their progress. If a project has one, get access to it.

As a rule of thumb, start with the easiest and smallest contributions first that take the least amount of work to build up your confidence and credibility before trying harder contributions. Writing documentation and fixing typos is a good place to begin. Look for issues that are tagged for beginners with the tags mentioned earlier.

After you pick a task you think you can finish, do your research. Read documentation, code, and discussions related to the task to get a better understanding of what to do. If you’re stuck on something even after you’ve researched it, reach out to the community and ask for help, clarification, or mentorship. However, make sure that you discuss issues related to the task publicly so that the rest of the community can benefit from what you learn. For example, discuss an issue publicly on Github versus in a private direct message on Slack. Once you feel like you have enough context on a task and know how to go about it, write some code and submit a PR. Github has a great checklist about what to check for before you contribute to a project so your effort is not wasted.

After you’ve completed work on your contribution, submit it as per the contribution guidelines. At times, your submission may not get a reply even after a reasonable amount of time has gone by. In such cases, respectfully request a review or get in touch with other contributors for assistance. Post-review changes may be requested. Try to make them as soon as possible so that your contribution is integrated promptly and does not become out-of-date or forgotten. If your contribution is rejected, ask for feedback to understand why. When reviewers ask questions, make comments, or give feedback, be responsive and check on your work for any updates regularly. Treat this like any other work and be professional, courteous, and respectful.

Open source contribution can be an amazing learning experience. It allows you to give back to and be a part of communities that build valuable open source software. It enables you to make software that you use better. Although it can be tough to start, once you get the hang of it, it is immensely rewarding. You do not have to know everything about a project to make a contribution. Pick a project and a community that supports new contributors, find mentors, and make your contributions. You may encounter some infamous communities. Stay away from them as they may put you off open source entirely.

Here’s a list of resources that can help jumpstart your open source career:

Supantha Rosemeyer
Answer # 4 #

The open source community provides a great opportunity for aspiring programmers to distinguish themselves; and by contributing to various projects, developers can improve their skills and get inspiration and support from like-minded people. But most importantly, they can prove that they can build fantastic experiences that people love.

Previously, we have discussed what are open source projects and why open source is good for your business. In this article, we'll explain why you should contribute to such projects, how to contribute, and what projects to choose. This article is geared towards developers who are just starting their career and would like to get involved with the community (and maybe become a coding genius).

There are a number of reasons to contribute to OSS (open-source software). Let's see what motivates developers to contribute.

First, there are a lot of enthusiasts who simply believe that code should be open. They're idealists who want to make the world a better place, and it drives them to contribute code. The desire to share can be a powerful motivator.

Second, OSS gives you a great start. Beginners might start by fixing minor things, such as a bug in a library, sending a pull request, or even writing a piece of documentation. However, beginner developers can also learn to write so-called "clean code" – code that is readable and maintainable – while contributing to open source projects. When developers realize that their code is exposed to the world, it makes them focus on making that code easy to understand and support. Programmers stick to generally accepted rules within a team, which include norms for indents, descriptions of methods and classes, variable names, and following the don't-repeat-yourself rule. In a nutshell, when contributing to free projects you're obliged to conform to the norms of a project.

Third, you get the chance to be part of an active open source community where you can meet like-minded people and supporters. Moreover, if you're a freelancer and actively contribute to open source projects, you increase your chances of being noticed by potential employers.

The main reasons why developers go for free-for-modification projects are to be recognized, to sharpen their programming skills, and to become part of the vibrant community. Now let's look at what you should consider before you start contributing.

Okay, so you can't wait to start your first OSS project. Let's go through a few tips that might help you choose what to work on.

The most fundamental technology behind any application is a programming language. The most popular languages on GitHub (a collaborative code hosting platform) are JavaScript, Python, Java, Ruby, and PHP. There are a multitude of projects that might suit your skills and taste.

Since we at RubyGarage love Ruby and its ecosystem, we'd like to share several live OSS codebases for beginners:

Although we mentioned only five active open source projects that need help, you can start your jorney as a Ruby contributor with them.

After you've chosen the language you want to work in, you need to choose the type of project you prefer. GitHub projects are categorized into folders called Showcases. Here are some examples of Showcases: "security", "virtual reality", "text editors", and "CSS preprocessors." Just choose a topic that interests you.

However, we do recommend paying extra attention to those projects that would be used by broad spectrum of people so you'll have the chance to test your code on a large real-world audience. For example, the "Emoji" Showcase contains 25 repositories that represent its popularity. Another tip on how to choose an OSS project is to start working on software you already use or software you're interested in using. This will keep you motivated to keep on working.

Large software projects like VLC Media Player or Spree – with thousands lines of code – aren't the best choice for a beginner. When you contribute to huge projects, you're expected to meet the established requirements within that team. A here's another small tip: pay attention to issue labels. Some issues are labeled as "first-timers-only", "beginner", "easy", and so on. You can also find a list on Github with collections of projects that suit newcomers.

Consider these tips when choosing a project to contribute to. And always remember to choose software you're interested in and allocate time in advance.

When we speak about free software, we can't avoid talking about GitHub and related tools. Let's see what GitHub is and how it helps you to participate in open source projects.

GitHub is the most popular platform for open source collaboration, so you'll probably use it when exploring the world of OSS. First, you need to create a GitHub account and read the guide that helps you get started. On GitHub, you can contribute to projects by submitting issues and contributing code. Submitting issues means sending messages about errors in applications and suggesting ways to fix them. Contributing code involves sending pull requests with your corrections and improvements.

When working with GitHub, you should know how to use Git – one of the most popular version control tools (also known as revision control tools). Because developers constantly make changes to their code, they need a system that can manage those changes in a central repository. In this way, everyone involved in the development process can download a given piece of software, make changes, and submit updates.

Besides being comfortable with revision control tools, essentials skills include being able to clone a repository and send pull requests. Pull requests inform code maintainers about changes made to the code; they can then review these changes, start a discussion about them, or assign them to a further commit.

You can easily join an open source project by subscribing to the mailing list for that project. You can find mailing lists on official websites or on GitHub pages. After being accepted to the list, you can communicate with team members and get support if necessary. Thanks to the vibrant communities present in nearly every OSS project, you are likely to get quick replies to your questions.

Even non-programmers can contribute to open source projects! Documentation is needed for all projects, and sometimes this is poorly written and maintained. Thus, you can help by writing, updating or even translating documentation. Also, your design skills might come in handy: every application needs an interface, after all. Finally, you can contribute by managing a community by replying to questions and guiding newcomers.

Let's highlight the most common ways to contribute to OSS projects.

Every project should start with an identified need. If you feel that existing projects on GitHub or Bitbucket don't offer the functionality you would like to build, then create your own open source solution. Besides an initial project draft, you should consider the following set of questions:

Today's commercial projects actively engage open source solutions. Many companies base their projects on free tools. When there's a huge selection of software, you don't need to reinvent the wheel. This is why it's useful to play around with free software that can replace similar proprietary software, or that fixes an issue you've recently faced.

Another reason for replacing commercial solutions with open source software is eagerness for real innovation and growth. Commercial software claims to be innovative, but its final goal is turning a profit. Open source software unites best practices, great quality of code and passionate developers willing to code just because they like to.

You can find many projects you are free to participate in on GitHub – a developer-oriented platform with a simple but essential set of functionality. GitHub attracts developers with public APIs, a sleek and frequently updated UI, gists (Git repositories) that allow you to share pieces of code or even whole applications, and much more. You can contribute to free software in many ways. Developers can fork projects, make changes to code, and send pull requests. And quality assurance is always appreciated. Sometimes developers are too busy or too lazy to check the quality of their code. So go ahead and report a bug or try to fix it – your help is appreciated.

You can reach the hottest GitHub projects by following the "Trending" link. And in order to make your search more relevant, use advanced search: select the language you would like to code in and choose "best match" criteria. Best match ranks projects according to relevance, taking into account the number of forks (which represents how actively the project is updated) and stars ("likes", in the language of Facebook). Most projects have known issues (however, some don't) with labels like "bug", "discussion", "security", or "refactor", or other labels according to the level of difficulty: "easy", "medium", "hard."

Open source projects bring many benefits to those who participate in them, and such experience is great for your CV. By joining a community of like-minded people and polishing up your skills, you can give yourself a step up as an aspiring developer. We've listed common reasons why people contribute to OSS projects, and described various ways to get started. If you would like to read more about contributing to OSS projects, check out our previous articles about how open source projects penetrate the IT market and about the security of free software.

Kerre bnefzu Mariem
Answer # 5 #

Most developers and companies depend on open-source tools and software to make their products work. And I think you'll agree with me that the number of contributions to open-source have really grown lately – not just for solo developers but from companies also.

My first ever contributions to the open-source community was during the yearly Hacktoberfest event in 2020. As a beginner I participated in beginner friendly projects which I will be sharing later to help you out too.

Now, if you are reading this article it's because you want to be part of the great open-source community – but maybe you don’t know where to get started? Well, you are in the right place.

In this guide we will cover:

Well, in this article we will cover all this and more.

Let's get started!

In simple words, we can describe an open source project as source code that is made available to the public to view, use, modify, and distribute under a permissive license.

As an example to explain this, let's use a classroom scenario. A teacher can share a document on a platform like Google Docs. On this platform students can edit the document and even make copies of their own. But whenever they make edits they have to be approved by the teacher before reflecting on the document again.

That's how open source code works: once it's been made public, and you need to add a feature or make changes, the owner has to approve the added changes and publish them for others to see.

Most successful open-source projects are a result of contributions from people with all skill levels – and not only coding skills, but also other skills like writing, languages, and so on.

Any time someone fixes a typo, adds an alert about a possible compiler warning, fixes a bug, or even adds detailed documentation to a project, progress is made. If we take all these small contributions from different people with different skills and put them together, great things can happen.

Just as Vincent van Gogh said:

Contributing to open source projects can be a rewarding way to learn, teach, share, and build experience.

There are plenty of reasons why you should contribute to an open source project, such as:

When we say contributing to open-source, it does not necesarilly mean that you need to know how to code. There are different ways in which you can contribute even if you are a non-coder – but having some coding skills will help you (and the projects) out a lot.

Some common contributions can be through:

All these ways, and many more, count towards contributions. Now what exactly should you know before you start contributing to an OS project?

Just as we expect each open-source products to be different, so are the communities. Each community has it's own rules and will have different guidelines and roles, and if you are lucky some also do give rewards after you contribute.

But despite all this, there are some common features which apply across all OS projects, and that's what we are going to talk about:

In a typical OS project we will have the following people:

When talking about an OS project, they are categorized in several ways depending on structure, type of product platform, programming language used, whether it's sponsored or fully independent, and more.

All this info should be outlined with the help of the guidelines and information:

As an individual or an organization running an Open-Source project, it's all about creating a community where people can grow together. This means that you will have to develop a friendly environment where people will get to share ideas, work on challenges, and even have random chats at some time.

There are some go-to options here, and you can use tools like:

So, now you have an idea of what an OS project is and what to expect when you contribute to one. Moving into the most important part, how do you know which project to contribute to?

Contributing works on all levels, there is no need to over think how you're gonna do it. Instead think of some of the projects you already use and how you can make a change to them or improve on them.

Research has shown that around 30% of casual contributions are documentation, typo fixes, or even translations.

At the begining I promised to share some of the projects that helped me out when I made my first contribution. Well lucky you, if you are a first-time contributor – which everybody is at some point – here are some links that will get you started in the open source world:

Quick hack for you In the world of open-source software, issues get reported and fixed pretty quickly. So, a good way to kick start is to take on an issue and be sure to try to work on it promptly.

After you have found the project you want to contribute to, it's time to do a little vetting. Make sure it meets the following criteria so you know it'll be a good project to work on:

If you see lots of recent activity that's a good sign – it means the community is active and so are the maintainers.

Now, if the first "vetting" checks out, proceed to checking the following points too:

If this final vetting process checks out, then you are good to go and start your contribution.

I know you are excited and ready to rock the OS world, but do you know what to look for in a project?

As mentioned above, there are different ways in which you can contribute. But before you make your first contribution it's good to note a few things about the project you will be choosing, like:

Once you've found a project, you'll want to actually make contributions. And you'll do that by submitting pull requests. Let's talk about that now.

Remember the example about Goggle Docs? Well, a pull request is similar only this time it's about code.

We can describe a pull request as when a contributor submits changes – wether it's code, documentation, or elsewhere – and asks a maintainer to check it out, make sure it's fine, and then merge it to the base project.

So, how do you submit one?

If you are at this stage, it means you have found a project and you are ready to make your contribution. So let's talk about how to actually submit a pull request.

After this operation the URL of the project will change to:

Copy the forked project URL, and proceed to your local machine where you will open git bash, and proceed with the command below:

This will create a copy of the project on your local machine. Now that you have cloned the repo we will need to do two things:

First is to make the necessary changes/contribution and commit those changes. After making your changes and adding new files, its time to add those changes into a separate branch before pushing them to remote.

But, first let's create a branch. In your git bash, change the path to pint to your repository directory. To do that use this command:

Now, to create a branch we will use the command: git checkout

Here's an example:

It's time to add the new changes into the branch we created. In order to see all the changes you made, we will use the git status command:

The command will list all the changes you made. To add them we will use git add *, which will add all the files to our branch.

Let's add a commit message, briefly explaining what we added:

replacing with the name of the branch you created earlier, in my case it will be git push origin larykmak.

Soon the maintainer will merge all your changes into the master branch of this project (unless they need changes from you). You will get a notification email once the changes have been merged.

Creating a pull request has some advantages, like:

Congratulations 🥳🎉, You just completed the standard fork -> clone -> edit -> pull request work-flow which sums up to your first contribution. You'll use this often as a contributor! So, what next?

That does not mark the end! Now, just find more projects and keep contributing. Also be sure to be on the lookout for the one month dedicated to open-source contributions every year that's run by Digital Ocean for a chance to win some amazing gifts.

One more thing to talk about a bit more before we end. That is, why contributing to OS is rewarding.

As I mentioned, open source is open for every one to participate. There are a lot of opportunities you can take advantage of and learn something new. All you need is to decide to begin and get started.


Carrol Slate
Book Coach
Answer # 6 #
  • Step 1: Identifying Your Skills and Tech Stack.
  • Step 2: Finding an Open-Source Project.
  • Step 3: Understanding an Open-Source Code Base.
  • Step 4: Contributing to an Open-Source Project.
  • Step 5: Getting Your First Pull Request Merged.
Zoe vdtw