Published on

How to Contribute to Open Source as a Designer

Authors

How to Contribute to Open Source as a Designer: A case study of OSS Cameroon

Overview

Hi, I’m Theryx. I’m a digital designer In this blog, I will tell you practically how I contribute to Open source as a non-tech person. This blog could also be titled “How to contribute to Open Source without coding knowledge” or “how to contribute to open source as a UI designer”. I will try to write the blog as simple as possible because this is intended for non-tech people.

What is Open Source?

Before we begin let's define Open Source in case you don’t know what it is. Well…the term Open Source refers to intellectual property people can modify and share because it is made to be publicly accessible. Most open source projects are usually run by one or more people called maintainers.

An Open source project, product, or initiative is one that cherishes strong values like collaboration, participation, rapid prototyping, transparency, meritocracy, and community-oriented development. (opensource.com)

What is OSS Cameroon?

Most of what I will write in this blog is largely based on my experience contributing to OSS Cameroon projects. OSS Cameroon is short for Open Source Society Cameroon. It is a community of Cameroonians that have a passion to develop open source solutions to solve local problems. the community is maintained by a group of awesome (Yeah I’m one of them) persons but owned and driven by everyone.

OSS Cameroon also exists to promote the talent and know-how of Cameroonians by using technical and non-technical knowledge to bring solutions to problems found in our society.

What is a maintainer?

At OSS Cameroon I’m one of the maintainers of a project called jobsika.cm but what is an open source maintainer? we can talk about what it means to maintain an open source project another day in another blog but I just want to talk about it so that you don’t feel confused.

“Maintainers are the conductors of an open source project orchestra,”- Steven J. Vaughan-Nichols. “If a bug hasn't been fixed by a developer, they'll fix it. If the code hasn't been reviewed, they'll review it. And, with large projects like Linux, there are often hundreds of code patches, which need to be maintained a week.”

How contribution is done…practically

I have broken down the process into five simple steps.

Step 0: Ask how you could help?

If you have no idea how to contribute and you want someone to help you get started. You could ask in the comment section of an issue, join the communities discord server, telegram or even ask on social media and mention @ osscameroon. There is always someone happy to help.

Step 1: Find a project on the OSS Cameroon Github page

Find a project that matches your interests or area of expertise. Contributing to projects can be “hard” sometimes, so you want to make sure you select a project in which you are really interested. Don’t worry about the programming languages attached to each project(smiles).

in addition to the OSS Cameroon’s organization page on GitHub, people can also find projects to contribute to by going to the osscameroon.com projects page.

OSS Cameroon organisation page on GitHub

OSS Cameroon organisation page on GitHub

Step 2: Read the documentation

Open a project and document yourself about the project You’ll usually find the project description in the repository’s README file

JobSika project page-A project of OSS Cameroon

JobSika project page-A project of OSS Cameroon

Step 3: Check possible issues you could help with

Go to the issue tab and see if there are any design-related issues you could help with. You can use advance search in the GitHub search bar(example: is: issue is: open is: design )

You can learn more about GitHub search syntax here.

Once you find an existing issue that is open(Meaning it has not been resolved yet), open it and engage with the issue. What do I mean by engaging?

  • Read the description of the issue and try to clearly understand the problem.
  • Check in the comment section and engage with existing members
  • Propose your solution(it could be a screenshot or a link to your solution) to the issue in the comment.
Example of a project’s open issues

Example of a project’s open issues

Step 4: Create an issue

Sometimes the issue you work on, might not be in the existing open or closed issues. This means the issue has not been reported yet. In that case, you can also create an issue by clicking on the “New issue” button on the extreme right.

Raise an issue and start working on it. You can use any tool of your choice. Once you have clearly describe the issue and proposed a solution, you can go ahead and submit the new issue

Screenshot showing how an issue is being submitted

Screenshot showing how an issue is beign submitted

Step 5: Review the implementation of your solution

If the issue you submit has to be implemented, then a developer will help you implement your design. The developer could be a maintainer on the project or a contributor like you. The developer will then create a pull request from the issue you created and submit it. other maintainers will review the implementation and merge it. If you are a maintainer in the project you could merge the implementation if you are ok with it but if you are not a maintainer you can engage in the comment and discuss the implementation.

screenshot showing a pull request which is yet to be merge

screenshot showing a pull request which is yet to be merge

Congratulations

Aaaaaand…that's it! you have just completed your contribution to an open source project

Before concluding this section, I must say that contributing to an open source project is not exactly the same for every project. Every project defines its contribution rules and processes. As a general rule, you should always read the documentation of each project to know how to submit your contribution.

Also, some projects may also limit the extent to which you can contribute.

Lastly, your contribution could take some time to be implemented, reviewed, or merged. Sometimes maintainers may consider your contribution as less important and not give it any attention.

It is important to know that but that should not kill your energy..go for it.

Conclusion

I hope this blog will motivate you to contribute to open source even if you don’t have coding knowledge. There are various ways you could contribute to open source projects but this is only one way to do it and this is how we do it at OSS Cameroon.

Other ways you can contribute are:

  • Submit a bug fix.
  • Submit a user interface design improvement.
  • Update documentation.
  • Answer questions(either on GitHub or in the community)
  • Review code.
  • Talk about the project to your friends or share on social media etc..

This could be applied to a lot of non-tech roles like graphic design, illustrator, writer, marketing, product design, researcher, even organizers, community managers, lawyers, etc

Definitions

GitHub

Simply put, GitHub is a website that helps developers store and manages their code, as well as track and control changes to their code. To contribute to open source projects you need to create a GitHub account.

Readme file

The Readme file is often the first file that the contributors read. It is a text file that contains the information for the contributors about the project. Ideally, every project should contain a readme.

Pull request

A pull request is a technical term used in software development that means that a contributor(usually a developer) has applied changes to the code and is ready to merge it to the main project repository.

Reviewing a pull request

Once a pull request is submitted by a developer, his code is “checked”(I did not want to use the word reviewed hahaha). Sometimes the code is also criticized and tested before merging.

Merging a code

Merging a code means integrating changes that come from a pull request into the main code of the project.

……………………………………………………………………………………………………………………………………………….

Sources

  1. what open source

  2. osscameroon GitHub organisation

  3. osscameroon website

  4. whats open source software maintainer