Open source projects are built by communities of people collaborating around shared code. Understanding how these projects are structured, who participates, how communication works, and how contributions happen, can make it much easier to get involved.
Presentation
Authors: the original creators of the project. In some contexts, the term may also refer to anyone who wrote part of the code.
Owners: people with administrative control over the repository or organization. They are usually repository or organization administrators (especially on GitHub). Some projects refer to them as the core team or project leads.
Maintainers: people responsible for reviewing contributions, managing releases, and guiding the project’s direction.
Contributors: anyone who contributes to the project, including code, documentation, design, bug reports, or other improvements.
Community Members: users and participants who provide feedback, participate in discussions, and help shape the direction of the project.
Documentation
Usually listed at the top level of a repository, these files provide important information about the project and how to contribute to it. While not every project includes a CONTRIBUTING or CODE_OF_CONDUCT file, their presence often signals that contributions are welcome.
LICENSE: Without an open source license, the project is not legally open source, and others cannot freely use or modify the code.
README: explains what the project is, why it exists, and how to get started using it. Many READMEs include installation instructions, a quick start guide, a list of features, and links to further documentation.
CONTRIBUTING: describes how to contribute to the project. It may include coding standards, branching strategies, and commit message conventions.
CODE_OF_CONDUCT: sets ground rules for participants’ behavior and helps facilitate a friendly and welcoming environment.
Tools
Pull requests are commonly used on platforms like GitHub and GitLab. Some projects still use patch-based workflows through mailing lists instead of pull requests (for example, communities around Git and the Linux kernel project).
Issue tracker: where project-related issues are reported and discussed.
Pull requests: where proposed changes are reviewed and discussed before being merged into the project.
Discussion forums or mailing lists: some projects use the issue tracker for most conversations, while others prefer separate channels for broader discussions instead of bug reports or feature requests.
Synchronous chat channels: some projects use chat platforms (such as Discord or IRC) for casual conversation, collaboration, and quick exchanges.
Contributions
Open source contributions are not limited to writing code. There are many ways to help a project grow.
Designing
- Design layouts to improve usability.
- Improve navigation or menus based on user research findings.
- Create artwork for logos or merchandise.
- Develop style guides for the project.
Writing
- Write or improve documentation.
- Translate documentation into other languages.
- Create tutorials or guides.
- Start a project newsletter.
- Curate highlights from mailing list discussions.
- Provide examples showing how the project can be used.
Organizing
- Link duplicate issues.
- Suggest new issue labels.
- Suggest closing outdated issues.
- Ask clarifying questions on newly opened issues to move discussions forward.
Helping
- Answer questions in open issues.
- Review code in other contributors’ submissions.
- Mentor new contributors.
Coding
- Help resolve open issues.
- Propose and implement new features.
- Improve testing, tooling, or project infrastructure.
Getting Started
- Read the README and CONTRIBUTING files.
- Start with issues labeled good first issue.
- Ask questions before starting large changes.
- Begin with documentation updates or small fixes.