Introduction
Learn how to contribute to Shoreline. Currently available for internal usage at VTEX.
We encourage everyone to contribute to the project, regardless of their experience level or discipline. We welcome everything from documentation improvements and bug fixes to new features and architectural changes.
How to get involved
Participation
Being proactive in the project discussions is a great way to start contributing and getting context about the project. You can do it in many ways:
- Propose a solution to an open issue
- Open an issue with a proposal
- Report a bug and how to fix it
- Open a discussion related to the project
- Participate in discussions that weren't open by you
Check out the How to Contribute section to understand how it works.
Hands-on
Although most of the contributions are made through Github, the changes can also be applied to our Figma library. It doesn't matter if you are a designer or an engineer, you can contribute in both paths.
- Check out the Engineering contribution section if you want to make changes to the codebase.
- Check out the Design contribution section if you want to make changes to the Figma library.
Contribution categories
Light
A simple change to the project that doesn't require much effort.
- Report a bug
- Open a discussion related to the project
- Give feedbacks
- Share your thoughts in discussions that other contributors opened
- A small design or documentation tweak to an existing feature
Medium
A bigger change to the project that requires more effort.
- Bug fixes
- Improvements on documentation
- Components styling changes
- New features that don't involve complex changes
Heavy
Involves complex changes to the project.
- Implement a new component API
- Architectural changes
- Implement a new feature that involves complex changes
Personas
Personas are a way to represent the different types of Shoreline users and define how they interact with the project. We divided them into two categories: Maintainer and Contributor.
Maintainer
A maintainer is a user with a deep knowledge of the project. They are the ones who have the final word and are responsible for guiding the discussions, making decisions, and ensuring the project is on the right track. Besides that, they will define the project's roadmap and should be able to communicate the project's goals and vision to the community.
Even though, it doesn't mean that the maintainers will be the only ones contributing to the project. They should encourage contributions from the community and help them to understand how they can contribute.
In summary, these are maintainers responsibilities:
- Define the project's roadmap
- Communicate the project's goals and vision
- Guide the discussions
- Make decisions
- Ensure the project is on the right track
- Encourage contributions from the community
- Help the community to understand how they can contribute
- Review and merge pull requests
- Spread project knowledge with contributors
Contributor
The contributor represents the project user who wants to contribute to the project. They can contribute in many ways, such as reporting bugs, proposing new features, fixing bugs, writing documentation, and more.
In summary, these are contributors responsibilities:
- Report bugs
- Propose new features
- Fix bugs
- Write documentation
- Review pull requests
- Help other contributors
- Being active in the project discussions
Are you willing to contribute? You can check here how to start
How to become a maintainer
It is also the responsibility of the maintainer role to build solid contributors to the project. This way we can ensure that the project will be sustainable and will have a long life.
So to be a maintainer you need to build a deep knowledge of the project and start to contribute, by showing that you are able to guide discussions, propose solid solutions that are aligned with the project's goals and vision, and help the community in their contributions.
Once you reach this level, the maintainers can invite you to be part of the team.
Ask for help
If you have questions about how, what, or when to contribute, the Shoreline team is here to help.
- Use GitHub issues to propose solutions, discuss new ideas, or ask questions
- Use the #shoreline Slack channel for support