Thanks for considering contributing to this project! This guide explains how to help.
We're looking for contributions in these areas:
- Clearer explanations in the 8 phases
- New examples or case studies
- Better templates for specific project types
- Corrections or updates to reference guides
- Translations (in progress)
- Specific guidance for frameworks or languages
- Community-contributed best practices
- Real-world templates from successful projects
- FAQ additions based on common questions
- Case studies of successful open source launches
- Before/after examples of projects that used this framework
- Templates tailored to specific project types (CLI tools, libraries, frameworks, etc.)
- Typos, broken links, or clarity issues
- Missing checklists or guidance
- Outdated tool recommendations
- Accessibility improvements
- Better integration with Git History Cleaner
- New security scanning tools
- AI agent improvements and feedback
- Content that promotes closed-source or proprietary practices
- Advertising or sponsored content
- Legal advice (we're not lawyers—guidelines point to lawyers)
- Unsubstantiated claims about licensing or governance
- Content that conflicts with the core mission of sustainable open source
- Fork the repository on GitHub
- Create a branch:
git checkout -b fix/your-description git checkout -b docs/your-description
- Make your changes in the relevant file
- Test your changes:
- If adding links, verify they work
- If editing phase descriptions, ensure clarity
- If changing templates, ensure they're copy-paste ready
- Commit with a clear message:
git commit -m "docs: fix typo in Phase 2 section" git commit -m "docs: clarify licensing decision tree"
- Push your branch:
git push origin fix/your-description
- Open a Pull Request with:
- Clear description of what changed and why
- Reference to any related issues
-
Open an issue first to discuss the change
- Describe what you want to add and why
- Explain how it fits into the framework
- Wait for feedback before starting work
-
Create a draft PR if the issue is approved
- Work on your changes in a branch
- Open the PR as a draft to get early feedback
- Iterate based on reviewer comments
-
Finalize and submit
- Once approved, mark as ready for review
- Address remaining feedback
- The PR will be merged
Keep these principles in mind:
- Practical over theoretical - Show concrete steps, not abstract concepts
- Short sentences - Easier to scan and understand
- Active voice - "You need to" not "It should be"
- Examples always - Templates, checklists, real scenarios
- Link to tools - Reference Git History Cleaner and other resources when relevant
- Honest about trade-offs - No "this is always the right answer"
- Assume no prior knowledge - Explain terms, don't assume people know our jargon
- Use markdown consistently
- Use
codefor technical terms, file names, commands - Use bold for emphasis, not bold-italic
- Use lists for steps or options
- Use tables for comparisons
- Link relevant sections within the project
If you're adding a template (LICENSE, CONTRIBUTING, CODE_OF_CONDUCT, etc.):
- Make sure it's copy-paste ready
- Include [brackets] for placeholders
- Add a note about what needs to be customized
- Example:
# Code of Conduct Thank you for contributing to [PROJECT NAME]. This project has adopted the Contributor Covenant Code of Conduct. See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for full text. To report violations, email: [CONTACT EMAIL]
The maintainers will review your PR within 1-2 weeks. We look for:
- Clarity - Is the guidance clear and actionable?
- Accuracy - Is the information correct?
- Completeness - Does it fit into the framework? Are there gaps?
- Practical value - Will this help someone launching open source?
- Tone - Does it match the project's voice (honest, practical, supportive)?
- Links - Do all links work? Are they to stable resources?
We may ask you to:
- Clarify language or add examples
- Adjust tone or structure
- Add links to related sections
- Expand or condense content
- Update based on community feedback
Use clear, descriptive commit messages:
docs: add licensing decision tree for non-profit projects
security: update Git History Cleaner examples
phase-2: clarify ownership verification checklist
templates: add CONTRIBUTING template for CLI tools
fix: correct broken link in governance guide
Prefixes:
docs:- Documentation changesphase-1tophase-8:- Changes to specific phasessecurity:- Security-related updatestemplates:- Template additions or changesfix:- Typos, broken links, correctionsrefactor:- Restructuring content without changing meaning
When you contribute, you:
- Agree your contribution is licensed under CC-BY-4.0 (same as this project)
- Grant permission to include your name in the project's contributor list
- Understand that your content may be adapted or improved by others
We'll acknowledge significant contributions in:
- The
CONTRIBUTORS.mdfile - Release notes
- README (for major contributions)
- Unclear guidance? Open an issue asking for clarification
- New idea? Start a discussion or issue describing what you want to add
- Tool integration? Let us know how we can better support your workflow
- Feedback? Tell us what's missing or what could be better
This project has adopted the Contributor Covenant. All contributors are expected to be respectful and professional.
Unacceptable behavior includes:
- Harassment, discrimination, or hostile language
- Dismissing others' ideas without engaging seriously
- Spamming or advertising
- Violating others' privacy or intellectual property
- Git
- A markdown editor (VS Code, Obsidian, etc.)
- Git History Cleaner (for testing Phase 1 examples)
-
Clone the repository:
git clone https://github.com/AndreaGriffiths11/open-source-best-practices.git cd open-source-best-practices -
Create a branch:
git checkout -b feature/your-branch-name
-
Make your changes:
- Edit
.mdfiles in the root andgithub-copilot/folders - Test links and formatting locally
- Verify examples are accurate
- Edit
-
Test your changes:
- Open markdown files in your editor
- Click links to verify they work
- Read through for clarity and flow
- Ask a friend to review if you can
-
Push and open a PR:
git add . git commit -m "your clear commit message" git push origin feature/your-branch-name
For PRs that add or change links:
- Verify external links are not behind paywalls
- Ensure links to GitHub files point to
mainbranch - Test that relative links work (e.g.,
[Phase 2](github-copilot/governance.md))
For content changes, test by:
- Reading aloud - Does it flow naturally?
- Following instructions - Can you actually do what it says?
- Checking examples - Are code examples realistic and correct?
- Verifying links - Do they go where you'd expect?
Even if you don't write content, we welcome:
- Comments on open issues sharing your experience
- Feedback on what's confusing
- Real-world examples of the framework in action
- Stories about how open source maintainers struggle
- Suggestions for new section topics
By contributing to this project, you agree that:
- Your contribution will be licensed under CC-BY-4.0
- We may use your contribution in derived works
- Your name will be attributed where appropriate
- You're not providing legal or professional advice (we're not lawyers)
Open an issue or reach out:
- GitHub Issues: open-source-best-practices/issues
- GitHub Discussions: open-source-best-practices/discussions
- X: @acolombiadev
Thanks for helping build sustainable open source! 🚀