When thinking about open source contributions, most people think about contributing code. This was true in the early days when open source was a way for people to share the cool thing they built.
Now, as open source becomes the default way to build software, contributions required to create, manage, and sustain projects go beyond code.
In this article, you will learn how to make impactful contributions to open source that does not involve contributing code.
Writing
This might be an excellent way to contribute if you are good at technical writing and creating content.
You can use your writing skills in different ways.
Documentation
People can’t use what they don’t understand.
Even if the project is valuable, people would not be able to use it without proper documentation. Contributing to documentation can therefore be impactful.
Tip: When you first test out a project, go through the existing documentation and see if you can clearly understand and use the project without any issues.
Chances are you will find areas to improve. You can then open issues for it and fix them.
It’s always helpful to have new people go through the documentation. It will uncover missing information and issues that people close to the project might miss.
Articles and Tutorials
If you are a project user, you can help by writing articles and tutorials. This can help people who are trying to use the project.
You can add your insights and tips and publish them on your channels or the project’s blog.
Tip: Most people look for well-written and up-to-date tutorials instead of documentation.
Internationalization/Translation
The language barrier is real in countries where English is not a primary language. People in China may prefer Mandarin over English.
For people from different parts of the world to use a project, it is necessary to internationalize the software and its documentation.
If you can write in two languages, you can translate documentation to open up the project to a new user base.
Social Media
A social media presence can help a project get more users. It can also be a platform to share updates with existing users.
You can use your writing skills to craft social media posts. You can ask the project maintainers to post on their official account or use your own account.
Designing
You can also contribute to open source projects with your design skills.
Art
Create artwork for social media, blog posts, and even swags. Good design is always impactful.
Style Guide
Most open source projects have a large and geographically distributed set of contributors.
Among other challenges, this makes it difficult to maintain consistency in visual designs.
As a designer, you can create a style guide for the project and ensure consistency.
Testing/Using
You can make valuable contributions in multiple ways as an open source user.
Reporting Bugs
Be a needy user. If you run into bugs, raise them. Open an issue with all the relevant details and steps to reproduce it.
Identifying bugs is more difficult than fixing them. Maintainers always welcome bug reports.
Advocating
Open source projects are community driven. And most non-commercial open source projects don’t have a dedicated marketing team to publicize the project.
You can advocate for the project at events and on social media and encourage people to use the project.
Tip: Don’t even ask the project owners before advocating for the project. Everyone likes free marketing.
User Experience
Project maintainers can often be too close to the project to realize bad and unintuitive UX. I am, and I know a lot of them.
As a user, you can report these issues, and they are well received.
Alpha/Beta Testing
Alpha/Beta tests are controlled tests of a new feature or release to ensure quality and user experience before making it available to the general user base.
As a user, you can sign up for the alpha/beta programs, test the project before the new features are released, and provide feedback.
Feedback from these tests always provides insights that can help improve the features/releases.
Community Managing
An open source project is a byproduct of its community. But who builds and manages these communities?
That’s where a community manager comes in. As a community manager, you can wear different hats.
Project Organiser
Stale issues? Follow up! Issues without proper labels? Add them! Does this issue still exist? Verify and close them! Unclear issue descriptions? Ask for clarification! Unreviewed pull requests? Request for reviews!
All these help the project run smoothly.
Release Manager
A release manager keeps track of what everybody is working on and ensures that a project is ready for a release.
Some of the responsibilities of a release manager are:
- Checking with each team
- Ensuring different components and features are tested
- Organizing the alpha/beta programs
Event Organizer
Organize community events and project meetings and maybe represent the project at conferences.
Great community managers who go above and beyond are key players in the success of an open source project.
Mentoring
If you are a seasoned contributor, you can pay it forward to the community by being a mentor.
Code Review
Having more people review code can help improve the quality of the code. This means fewer bugs, faster reviews, and a better project.
Most projects allow anyone to review code.
Helping Newcomers
Sharing your skills and experience as a contributor can help newcomers contribute to the project. There are a lot of open source mentorship programs that connect mentees to mentors.
Having new contributors will ensure the sustainability of the project.
This list is not exhaustive and you can always find more ways to make impactful contributions.
As an open source maintainer, I see the value in every contribution. And I’m sure more maintainers see it too.
Thank you for reading "Non-Code Contributions to Open Source".
Subscribe via email or RSS feed to be the first to receive my content.
If you liked this post, check out my featured posts or learn more about me.