Table of contents

This article intends to compile everything you need to know to start contributing to Pop!_OS.

If you’re reading this, you probably love what System76 has done with Pop!_OS and want to help make it better, in this article we’ll cover the basics of what you need to know to start contributing to Pop!_OS.

This article assumes you’re familiar with how contributing to open source projects works. If you’re not, please watch Contributing to Open Source for the first time first.

We won’t focus on the specifics of open source contributing, we will instead focus on what you need to know before you start contributing to Pop!_OS.

Why I wrote this article?

When I first wanted to contribute to Pop, it was sort of hard for me to find information on how to do it. I spent quite some time looking for guidelines, documents, or something to help me get started. That’s why I decided to write this article, to help others wanting to help make Pop better.

How can you contribute?

There are many ways you can contribute to Pop!_OS, here are some of them.

Spread the word 📢

Distributions benefit from the help of their community, be sure to spread the word about Pop!_OS and help others to get involved, sponsor the project, or just tweet about it.

We all benefit from it, including yourself 🙂.

Improve the documentation 📄

Good documentation is a fundamental part of any project.

You can help improve the documentation by:

File issues 🚨

Filing issues is a great way to help the community, when doing so, be sure to include as much information as possible.

Include the steps you took to reproduce the issue, information about the operating system you are using, pictures, videos, GIFs and any other information you think might be helpful.

This will ensure that the people working on the project can understand your issue and help you solve it.

Start by selecting the project, then click on the Issues tab.


Some repositories have templates for filing issues, if you don’t see any, you can use this template.


Open a new issue and fill in the required information.

new issue

Here are some example issues you can use to familiarize yourself with the issue filing process.

Fix bugs 🪲

Fixing bugs is a great way to help projects move forward, you can start by picking a project and finding an open issue.


Use the filters to find the bug you want to fix, once you got it, start working on it and submit a PR when it’s ready for merge.

Help other people out 🆘

When we encounter a bug we try to fix it ourselves most of the time, this doesn’t always work, and we end up asking for help. Answering questions is as a valuable as any other contribution to the community, even pointing people in the right direction is helpful.

Review code 🖥️

Code isn’t always perfect, and the more eyes you have on it, the better.

You can help by reviewing code, even if you’re not a code reviewer in a repo, you can comment or open issues on other people’s code and help them improve it.

Human Interface Guidelines

Human Interface Guidelines are basically a set of recommendations chosen by the platform developer that intends to improve the experience of developers, making applications more intuitive, learnable, usable and consistent.

Most of the guidelines aim at improving the look and feel of the applications, they enumerate specific policies based on usability and accessibility studies.

The System76 HIG is heavily influenced by elementary. For anything not covered in this document, refer to the elementary HIG.

COSMIC Contributions 🌌

System76 is working on a new COSMIC desktop, and most of their resources will be targeting the creation of this new desktop, that means that all the current contributions to the current COSMIC desktop will be superseded by the new desktop eventually.

With the alpha release of the COSMIC desktop coming this summer, System76 will also release a website that will include all the desktop environment details, Human Interface Guidelines and all the ways you can contribute to it. This will make it easier for new contributors to start making Pop!_OS better.

In the meantime, you can use this guide to help you get started.