From the outside, contributing to open source can be intimidating or even scary. You might think projects are maintained by a small group of overly talented people working as a team, who know each other well and that you don’t belong there. You might also think that you need to invest a lot of time and energy to be able to contribute to a project.
I think that is not true at all and I am even convinced that anyone can be a valuable asset to any open-source project:
- Feedback is usually a key part of any project and anyone can provide some.
- Any type of contribution is valuable and does not have to be code-related: a simple “I like this idea”, a detailed bug report, a translation, or a feature request can be very helpful.
- From an outside perspective or with specific needs, you might bring a new point of view to the project that maintainers might not have thought about.
Contributing to open source can also be very rewarding:
- As a user of a project, you get the opportunity to fix issues you encounter or are blocking you or other users.
- You may also be able to add new features you would like to see in a project.
- You get to be part of a community, meet new people, and practice your soft skills while learning new knowledge along the way.
I have been contributing to open source for a few years now with sporadic contributions to various projects and I have been publishing all my projects as open source too.
After using Starlight for a while, I needed to generate documentation from TypeScript code using TypeDoc so I made an Astro integration for it.
When done, I thought it would be nice to share some feedback with the Starlight team.
I did not want to open a giant issue or many small ones so I decided to join the
#starlight channel in the Astro Discord and share my feedback there.
I just made a Starlight focused “integration” to generate TypeScript code documentation using TypeDoc (https://github.com/HiDeoo/starlight-typedoc) and I would like to share some feedback. Not sure if it’s the best place but I didn’t want to spam issues.
The feedback I shared was well received by many members of the team. Each point I raised was discussed in detail, from guiding me toward better solutions or thinking about new features that could help me achieve what I wanted.
I am usually not a very heavy user of social platforms like Discord, especially large ones, and I usually mute them after a few days but the welcoming and friendly atmosphere of the Astro Discord made me stay and I am now a regular member of the community.
Since my first message, I contributed a few bug fixes and improvements to the project, managed to help a few people with their issues, exchanged and collaborated with many knowledgeable people and most importantly, I learned a lot, not only from the technical side but also from many other aspects of software development like documentation writing.
The Starlight contributor manual is a great place to start if you want to contribute to the project. You will find everything you need to know to get started, what to work on, understand the project structure, and how to submit your changes.
If you are not sure where to start, here are a few potential ideas:
- Check the good first issues which are cherry-picked issues that are particularly suited for newcomers.
- If you speak a language other than English, you can help the project internationalization efforts through various ways:
- Review pull requests:
- Discuss and share your ideas for new features 3
If you have any questions or need some guidance or help, you can also join the
#starlight channel in the Astro Discord where you will find many friendly community members happy to help you.
No matter what you decide to participate in, thanks for contributing.
The “Translating Astro docs” page from the “Astro Docs Docs” (and everything else in this documentation) is a mine of amazing and well-written information and tips I highly recommend for anyone interested in contributing to the Astro or Starlight documentation. ↩
It is always a good idea to discuss your ideas before starting to work on them to make sure they are aligned with the project goals and to avoid wasting time on something that might not be accepted. ↩