OpenpediaPENPEDIA

Learning the contribution workflow is a must in your open source journey. This section compiles a list of useful resources that enable you to get started with open source contributions:


  • How to Contribute to the Open source?

    By Github -
  • How to Contribute to Open Source Projects?

    A Beginner's Guide by freeCodeCamp -
  • Getting Started With Contributing to Open Source

    By Stack Overflow -
  • How to Get Started With Open Source?

    By HackerEarth -
  • How to Contribute to Open Source Projects?

    By RubyGarage -
  • Beginners Guide to Contributing to Open Source Projects

    By ActiveState -
  • 14 Ways to Contribute to Open Source Without Being a Programming Genius or a Rock Star

    By SmartBear -
  • 8 Non-Code Ways to Contribute to Open Source

    By Opensource -
  • Contributing to Open Source: Getting Started

    By GeeksforGeeks -
  • How to Start Contributing to Open Source Software?

    By Towards Data Science -
  • Get Involved in Open Source and Commit Code to Your First Project

    By First Timers Only -
  • Why and How to Contribute to Open Source Projects?

    By Testsigma -

What it means to contribute


Do you like to code?

  • Find an open issue to tackle
  • Ask if you can help write a new feature
  • Automate project setup
  • Improve tooling and testing

  • Do you like helping others code?

  • Review code on other peoples submissions
  • Write tutorials for how a project can be used
  • Offer to mentor another contributor
  • You dont have to contribute code

    A common misconception about contributing to open source is that you need to contribute code. In fact, its often the other parts of a project that are most neglected or overlooked. Youll 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.

    Do you like to design?

  • Restructure layouts to improve the projects usability
  • Conduct user research to reorganize and refine the projects navigation or menus,
  • Put together a style guide to help the project have a consistent visual design
  • Create art for t-shirts or a new logo,

  • Do you like to write?

  • Write and improve the projects documentation
  • Curate a folder of examples showing how the project is used
  • Start a newsletter for the project, or curate highlights from the mailing list
  • Write tutorials for the project
  • Write a translation for the projects documentation
  • Anatomy of an open source project


    Every open source community is different. Spending years on one open source project means youve 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:


    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:

  • Issue tracker: Where people discuss issues related to the project.
  • Pull requests: Where people discuss and review changes that are in progress whether its to improve a contributors line of code, grammar usage, use of images, etc. Some projects, such as MDN Web Docs, use certain GitHub Action flows to automate and quicken their code reviews.
  • Discussion forums or mailing lists: Some projects may use these channels for conversational topics (for example, “How do I…“ or “What do you think about…“ instead of bug reports or feature requests). Others use the issue tracker for all conversations.
  • Synchronous chat channel: Some projects use chat channels (such as Slack or IRC) for casual conversation, collaboration, and quick exchanges.
  • How to submit a contribution


    Communicating effectively

    Whether youre a one-time contributor or trying to join a community, working with others is one of the most important skills youll 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.



    Gathering context

    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 doing the following:


    Opening an issue

    You should usually open an issue in the following situations:


    Opening a pull request

  • Fork the repository and clone it locally. Connect your local to the original “upstream” repository by adding it as a remote. Pull in changes from “upstream” often so that you stay up to date so that when you submit your pull request, merge conflicts will be less likely. (See more detailed instructions here.)
  • Create a branch for your edits.
  • Reference any relevant issues or supporting documentation in your PR (for example, “Closes #37.”)
  • Include screenshots of the before and after if your changes include differences in HTML/CSS. Drag and drop the images into the body of your pull request.
  • Test your changes! Run your changes against any existing tests if they exist and create new ones when needed. It’s important to make sure your changes don’t break the existing project.
  • Contribute in the style of the project to the best of your abilities. This may mean using indents, semi-colons or comments differently than you would in your own repository, but makes it easier for the maintainer to merge, others to understand and maintain in the future.
  • What happens after you submit your contribution


    😭 You don’t get a response

    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 give a polite reminder and still do not receive a response, it’s possible that nobody will ever respond. It’s not a great feeling, but don’t let that discourage you! 😄 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.

    🚧 Someone requests changes to your contribution

    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. A good example of this would be the feedback that another contributor has given to @a-m-lamb on their pull request to Codecademy’s Docs.

    If you don’t have time to work on the issue anymore due to reasons such as the conversation has been going on for months, and your circumstances have changed or you’re unable to find a solution, let the maintainer know so that they can open the issue for someone else, like @RitaDee did for an issue at OpenSauced’s app repository.

    👎 Your contribution doesn’t get accepted

    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!

    🎉 Your contribution gets accepted

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