Contributing
IMPORTANT
Note: The content for this page is loaded at build time from the main GitHub Repo. Hence the double titles.
Contributing ​
Thanks for your interest in contributing to Open Library! We value thoughtful, collaborative contributions. Before picking up work, make sure you understand the problem, check whether someone is already working on it, and coordinate with maintainers so efforts align with project priorities. Good contributions are not just about completing an issue, but about solving the right problem clearly and respectfully.
For setup instructions, see the Quick Start guide.
How contributing works ​
- Find an unassigned issue
- Comment to request assignment and describe your plan
- Wait for assignment
- Complete the work and test it
- Open a self-contained PR
- Respond to review comments clearly
Before you begin ​
We value all contributors and want to ensure a positive and collaborative environment where everyone's contributions are respected and celebrated.
Respecting Other Contributors' Work ​
Our community thrives on mutual respect. Please consider others who may already be investing their time and energy:
- Check before starting: Look at the issue comments to see if someone has already requested assignment or is actively working on it
- Respect current assignments: If someone is assigned to an issue, they've committed their time to it. Opening a competing PR without coordination undermines their contribution
- Coordinate when uncertain: If you're unsure about someone's progress, ask on the issue before starting related work
- Give space for follow-through: If an assigned issue has been inactive for 2 weeks, kindly ask whether it can be reassigned rather than assuming it's abandoned
Requesting Issue Assignments ​
Please request assignment to an issue before starting work. Our maintainers triage issues weekly (or immediately for high-priority items) to ensure your contribution aligns with current priorities and prevent duplicate effort.
When requesting assignment:
- Focus on quality over quantity: Work on one meaningful issue at a time rather than requesting many assignments
- Show you understand the problem: Include your summary of the challenge, your proposed approach, and which files you plan to modify
- Share your questions: If something isn't clear, ask! This helps us provide better guidance
Use AI tools responsibly. You're encouraged to use AI tools to assist with research and understanding the codebase, but please take time to truly comprehend the suggestions and present them in your own words. This demonstrates your genuine understanding and helps us have meaningful conversations about your approach.
Choosing work ​
Good First Issues ​
Browse Good First Issues — ideal for first-time contributors.
- Only work on issues that are not assigned to anyone
- Request assignment before you start
- If an assigned issue has been inactive for 2 weeks, ask whether it can be reassigned
When no Good First Issues are available ​
- Browse unassigned issues sorted by recently updated
- Revisit older issues and confirm they're still relevant before starting
- Ask in Slack — request an invite on our volunteers page
- Attend the weekly community call to hear about current priorities
Opening a pull request ​
- Test your changes before opening a PR so reviewers can focus on the code rather than basic setup issues
- Mark the PR as draft if it's still in progress
- Complete the pull request template fully so reviewers have the context they need
- Make PRs self-contained so reviewers can understand them without extra context
Review comments are a normal part of the process. Most PRs need at least one round of changes before merge.
Responding to review ​
- Reply to each review comment with the change you made or why you chose a different approach
- Resolve all review comments before requesting another review
- When resolving a comment, reply with "DONE" or "WON'T FIX because ..."
- If the issue has a
Lead: @usernamelabel, that person is usually the best reviewer to tag
If you haven't heard back within one week of requesting assignment, feel free to tag the Lead: on the issue.
Community & getting help ​
Please read our Code of Conduct. We're a non-profit, open-source, inclusive project committed to creating a safe place for everyone.
Get involved:
- Join Slack — request an invite on our volunteers page
- Attend weekly community calls — check the community call page for times
- Review the Open Library Roadmap to understand current priorities