5 Ways to level up your Opensource project
Tags: opensource, programming, javascript, github
Published: 2022-10-10 06:10:15

## What do I mean by Leveling up a project ? 

Leveling up simply means having your project set up in such a way that it is accessible to all. Even if someone very new to the world of tech, looks at your project, they should able to tell, at the very least what's the project about and how the basics of it work. 
It also means to have the project neatly - so that folks who code can easily contribute and maintainers/owners of the project can maintain it more easily. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3bq0aruetj76pwxs5na7.gif)


---

## Does this matter for an Opensource project ?

**Yes !** , it matters a lot. Opensource projects are likely to have a lot of diversified audiences. They might be having different code practices, different types of thinking, and even different levels of experience than the others. So when you have a set of standards, a set of rules, and proper guidelines for how to make changes to the project, it makes the task for a contributor as well as a maintainer much easier.
They can contribute with more ease.

As for maintainers, they can work out stuff easily. They would know which code to take a look at first, which code does what, and also reject codes that are invalid/broken. 

---

## So, How do I make my Opensource project better ?


### 1. Issue Templates 📝

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0u8sbggi7whqnrwqx1zo.png)

**What you see above are called Issue Templates** - when raising an issue in an Opensource project, the contributor gets to choose what type of issue they'd like to raise and have the experience of filling up a form. Of course, this can be customized by customizing their `.yml` files. In this way, the issues will be cleaner and sorted. Maintainers would know which issue is of which type and gets the most priority !

To add these you need to make a `.github` folder in your repository and add the `.yml` files there. It depends on what you want to add but most standards are `bug`, `docs`, `feature requests`.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xck23damq83jdnuzbv4q.png)


### 2. Code of conduct 💂‍♂️

A code of conduct defines standards for how to engage in a community. It signals an inclusive environment that respects all contributions. It also outlines procedures for addressing problems between members of your project's community. 

You can add a code of conduct to your project by using a template or manually creating a custom code of conduct. If you use a code of conduct written by another person or organization, be sure to follow any attribution guidelines from the source. To add Code of conduct, you'd just need to head over to `Insights` > `Community Standards` > ` Code of conduct` > `Add`

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/goj5ctwyqwl0jnut2yem.png)


Then choose which you want to use and go ahead with it !

### 3. Contributing Guidelines 🔐

A Contributing Guidelines, in your open source repository or site, provides potential project contributors with a short guide to how they can help with your project or study group.

You'd need to have a `CONTRIBUTING.md` file in the root directory. It is a convention to capitalize the word "contributing" as the file title and to save it as a resource in markdown (hence the extension .md). The `CONTRIBUTING.md` should be one of your priorities in putting an open source/science project online to solicit contributions. If you have yet to define possible avenues of contribution, consider creating the file with a "check back later, we will populate this soon" message, and the contact information of the project lead for follow-up. Head over to `Insights` > `Community Standards` > `Contributing` > `Add`

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/02gh8eu8jhmcoj26t4e8.png)


Resource on how to make guidelines : [Example guidelines](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors#examples-of-contribution-guidelines)

### 4. Labels 🏷

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yyyp757quiwqi0sfeglp.png)


**Like these fancy little tags ? ** - That's exactly what labels are. 
Using labels like these helps you to organize issues, and pull requests with ease. You can tell from all the issues in the above picture that some of them are simply bug fixes while the others are new features and so on. The labels can even be automated such that whenever someone makes a new issue the label is added based on the type of issue they chose to raise !

A detailed guide to adding the labels to your repository : [GitHub Docs](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels)

### 5. Pull-request template 👨‍💻

Pull request templates help guide developers to make better software, and a better software development experience. They are extremely useful for open source projects that get many contributions from outsiders, but they can also be very useful for internal projects where all contributors are insiders. It is better to have a set of details to be filled in while making a PR rather than everyone making their customized pull requests.

This is what a Pull request template (blank) looks like : 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7dhpkxweisy61fl2v9ur.png)

It is  made by adding a `pull_request_template.md` file in the `.github` folder.
This is highly customizable and recommended because you can get a more detailed list of the changes that were made to the code by using such a template. 

A detailed guide to making a pull request template : [GitHub Docs](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository)


---

## Conclusion 

**That's it !** - That is how you take your Opensource project to a whole new level !
Almost everything can be automated with workflows and contributed to by others !

Also , using community standards helps you more to level up your project !
Go to `Insights` > `Community Standards` and you'll have a checklist of all the stuffs that needs to be done

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jbur6wyof16duhrtbxl2.png)


**If you like whatever I wrote, feel free to give me a shout-out on your socials.**
Share the blog with others. Keep contributing 💚 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u2h2l6g57jic281vtkga.gif)