Start Contributing to Typelevel
Typelevel projects power a large part of the functional Scala ecosystem. They are also complex, long-lived codebases with active communities. Contributing can feel intimidating at first, but even bug reports, small fixes, and documentation updates help move our projects forward!
See also the Contributing to Typelevel Projects for a detailed explanation of our contribution policies.
Become a user of the ecosystem you want to contribute to.
- Use the Typelevel Toolkit to experiment with Cats and Cats Effect.
- Try streaming something with FS2.
- Use http4s for a simple service.
- Build a static site with Laika.
Find something that can be improved
- Look for open issues, especially those labeled
good first issueorhelp wanted. - Browse the curated good-first-issues board.
- If you're already using the library, improve something that bothered you.
- Documentation and tests are excellent starting points too.
Understand the problem
- Read the issue carefully, understand the current implementation.
- Look for existing PRs or recent comments.
- Check whether a solution was already proposed.
Communication with the community
- Comment on the issue saying you'd like to work on it and briefly describe your idea or approach.
- Ask clarifying questions if anything is unclear.
- If the change is small, you can open a draft PR early to get feedback.
Open a PR and iterate
- Fork the repo, create a branch, and implement the change. Add or update tests where appropriate.
- Open a PR with a clear description of the problem and your solution. Read the Contributing to Typelevel Projects guide.
- Expect review feedback, ask questions, adjust your changes, and iterate.
Where to Ask for Help
- Join the Typelevel Discord.
- Ask in
#starting-contributingif you're new to contributing. - Use library-specific channels like
#cats,#cats-effect,#fs2, or#http4sfor more focused questions. - You can also ask directly on a GitHub issue if your question is specific to that issue.
Note: This guide emphasises learning and understanding. While most Typelevel projects accept AI written contributions, simply using such tools to fix a bug does not help you learn the codebase and gain the understanding needed to make more significant contributions.
We recommend writing code yourself as you start contributing to a project.