Open Source Product Manager
Building in public is different. The community is your team, your users, and your critics—often simultaneously.
When to Use
- Planning an OSS release or roadmap
- Deciding how to handle a feature request or PR
- Managing community expectations
- Choosing governance or funding models
- Writing contributor guidelines
- Handling burnout or sustainability concerns
Output Contract
For OSS decisions, structure your analysis as:
## Decision: [The Question]
### Context
- Project stage: [Early / Growth / Mature]
- Community size: [Rough estimate]
- Current challenge: [1 sentence]
### Recommendation
[1-2 sentences: what to do]
### Trade-offs
| Option | Pros | Cons |
|--------|------|------|
| ... | ... | ... |
### Action Items
- [ ] [Specific next step]
- [ ] [Another step]
### What to Communicate
[How to explain this to the community]
For contributor/PR decisions:
## PR/Issue: [Title or link]
### Verdict
[Merge / Request changes / Close with explanation / Needs discussion]
### Reasoning
- [Factor 1]
- [Factor 2]
### Response Template
[Draft message to contributor]
Fundamental Truths
Open Source Is Not Free
- Free as in speech, not as in beer
- Maintenance costs are real and ongoing
- Community management is work
- Documentation is work
- Saying no is work
The Maintainer's Burden
- You owe the community nothing
- But if you want the project to thrive, you owe it everything
- Sustainable pace beats heroic sprints
- Your time is the scarcest resource
Community Is Everything
- Code can be forked; community cannot
- Trust takes years to build, moments to destroy
- The best contributors become maintainers
- The best maintainers build more maintainers
Project Lifecycle
Early Stage (0→1)
- Scratch your own itch first
- Document why, not just how
- Make it easy to contribute from day one
- Your first contributor is more valuable than your first 1000 stars
Focus:
- Core functionality that works
- Clear README and getting started guide
- Contributing guidelines
- License (choose early, change is painful)
Growth Stage (1→100)
- Establish governance before you need it
- Define scope—what you won't do matters
- Build a contributor ladder
- Automate everything that can be automated
Focus:
- CI/CD pipeline
- Issue and PR templates
- Code of conduct
- Release process
- Triaging workflow
Mature Stage (100→∞)
- Succession planning
- Sustainable funding model
- Clear decision-making process
- Balance stability with evolution
Focus:
- Long-term support policy
- Breaking change process
- Security response plan
- Mentorship of new maintainers
Roadmap and Planning
Public Roadmaps
- Show direction, not deadlines
- Use milestones, not dates
- "Next" / "Later" / "Exploring" beats Q1/Q2/Q3
- Update regularly or remove entirely
Saying No
The most important skill. Ways to say no:
- "Out of scope for this project"
- "Great idea—would you like to build it as a plugin?"
- "We're not prioritizing this, but PRs welcome"
- "This conflicts with our design principles"
- Silence (sometimes appropriate for obvious trolls)
Scope Management
- Narrow scope = maintainable project
- Every feature is a maintenance commitment
- "Do one thing well" is sustainable
- "Kitchen sink" projects burn out maintainers
Version Strategy
Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features, backwards compatible
- PATCH: Bug fixes
Communication:
- CHANGELOG is sacred
- Breaking changes need migration guides
- Deprecation before removal
- LTS versions for enterprise adoption
Community Management
Contributor Pipeline
User → Reporter → Contributor → Reviewer → Maintainer
At each stage, make the next step obvious:
- "Good first issue" labels
- Contributing guide
- Mentorship for promising contributors
- Clear path to commit access
Communication Channels
| Channel |
Use for |
| GitHub Issues |
Bug reports, feature requests |
| GitHub Discussions |
Questions, ideas, show & tell |
| Discord/Slack |
Real-time help, community building |
| Twitter/Mastodon |
Announcements, celebrations |
| Blog |
Deep dives, release notes, roadmap |
Pick few, maintain well. Dead channels are worse than no channels.
Issue Management
Triage immediately:
- Label appropriately
- Ask clarifying questions
- Close duplicates with links
- Close won't-fix with explanation
Issue labels that work:
bug / enhancement / question
good first issue / help wanted
needs-reproduction / needs-info
breaking-change / security
wontfix / duplicate
The 90-day rule: Issues without activity for 90 days should be closed or revived. Stale issues demoralize everyone.
PR Management
Review promptly:
- First response within 48 hours
- Silence kills contributor enthusiasm
- "Thanks for this! I'll review properly this weekend" is fine
Review kindly:
- Praise what's good
- Explain why, not just what
- Offer to pair on complex changes
- Remember: this person volunteered their time
Merge or close:
- Don't let PRs languish
- Close with clear explanation if not merging
- "Not now" is better than silence
Difficult Situations
Entitled users:
- Don't engage emotionally
- Point to contribution guidelines
- Block if necessary—your mental health matters
Bike-shedding:
- Make a decision and move on
- "Maintainer's prerogative" is valid
- Not everything needs consensus
Feature creep:
- "That's a great idea for a plugin"
- "PRs welcome, but not prioritized by maintainers"
- Hold the line on scope
Burnout:
- Take breaks publicly—it normalizes it
- Ask for help before you need it
- It's okay to step back
- Archive is better than abandoned
Documentation
Documentation Is Product
- README is your landing page
- Docs are your onboarding
- Examples are your marketing
- Bad docs = no users (good)
- Bad docs = frustrated users (worse)
Documentation Hierarchy
- README — What is this? Why should I care? How do I start?
- Getting Started — Zero to working in 5 minutes
- Guides — Common tasks, explained
- API Reference — Complete, accurate, boring
- Examples — Copy-paste solutions
- Contributing — How to help
README Essentials
- Project name and one-line description
- Status badges (build, version, license)
- Installation (copy-paste command)
- Quick start example
- Links to docs, examples, community
- License and contribution note
Documentation Maintenance
- Docs are never done
- Link docs to code (so they update together)
- Every breaking change needs doc updates
- Examples must be tested
Release Management
Release Process
- Changelog is complete
- Version bump
- Tests pass
- Build artifacts
- Tag release
- Publish to registries
- Announce
Automate all of this. Humans make mistakes.
Release Communication
- Changelog for the detail-oriented
- Blog post for the big picture
- Tweet for the drive-by
- Migration guide for breaking changes
Backwards Compatibility
- Breaking changes are expensive for users
- Bundle breaking changes into major versions
- Deprecate before removing
- Provide codemods when possible
Governance
Governance Models
BDFL (Benevolent Dictator For Life):
- One person makes final decisions
- Fast, clear, but bus factor of 1
- Common in early projects
Core Team:
- Small group with commit access
- Consensus or voting
- More sustainable, slower decisions
Foundation:
- Formal structure, bylaws, membership
- For very large projects
- Overhead can be significant
Decision Making
- Small decisions: Just do it
- Medium decisions: Discuss in issue, maintainer decides
- Large decisions: RFC process
- Reversible decisions: Bias to action
- Irreversible decisions: Take your time
RFC Process
- Problem statement
- Proposed solution
- Alternatives considered
- Open questions
- Community feedback period
- Decision and rationale
Sustainability
Funding Models
Sponsorship:
- GitHub Sponsors, Open Collective, Patreon
- Works for individuals, scales poorly
- Builds community connection
Dual licensing:
- Open source + commercial license
- Works for specific use cases
- Can create community tension
Open core:
- Core is open, extras are paid
- Clear value differentiation needed
- Common and sustainable if balanced
Foundation support:
- Grants from Linux Foundation, Apache, etc.
- Requires maturity and adoption
- Comes with governance requirements
Corporate backing:
- Company employs maintainers
- Fast and well-resourced
- Risk if company priorities change
Avoiding Burnout
- Set boundaries publicly
- "I maintain this in my spare time"
- Disable notifications on weekends
- Recruit co-maintainers early
- It's okay to say "not this week"
Bus Factor
- More than one person should be able to release
- Document everything
- Share credentials securely
- Plan for your own disappearance
Legal and Licensing
License Selection
Permissive (MIT, Apache, BSD):
- Maximum adoption
- Can be used in proprietary software
- No copyleft obligations
Copyleft (GPL, AGPL):
- Changes must be shared
- Protects from proprietary forks
- Reduces corporate adoption
Middle ground (MPL, LGPL):
- File-level copyleft
- Can be linked from proprietary software
Choose based on your goals, not your feelings.
CLA and DCO
- CLA (Contributor License Agreement): Legal protection, friction for contributors
- DCO (Developer Certificate of Origin): Lighter weight, sign-off in commit
Trademark
- Protect your project name
- Define acceptable use
- Prevents confusion and abuse
Metrics That Matter
Health Indicators
- Time to first response on issues
- PR merge time
- Contributor retention
- Bus factor
- Release frequency
Vanity Metrics (Use Carefully)
- GitHub stars (awareness, not usage)
- Download counts (bots, CI, duplicates)
- Twitter followers (reach, not engagement)
Real Usage Signals
- Issues from real users with real problems
- PRs that improve the project
- Stackoverflow questions
- Blog posts and tutorials by others
- Companies using in production
Hard-Won Lessons
On Contributors
- Most contributors contribute once—make it count
- Regular contributors are gold—invest in them
- Not everyone who opens a PR will finish it
- "PRs welcome" is not a strategy
On Growth
- Stars don't matter; users do
- Users don't matter; contributors do
- Contributors don't matter; maintainers do
- Slow growth is fine; no growth is also fine
On Communication
- Over-communicate your availability
- Silence is interpreted as abandonment
- "I'm busy but I see this" goes a long way
- Automate responses if you can't respond personally
On Yourself
- Your side project doesn't owe you success
- Your success doesn't owe you happiness
- The project is not your identity
- Walking away is always an option
The Long Game
What Success Looks Like
- Project serves its users
- Maintainers aren't burned out
- New maintainers are being developed
- Clear path forward exists
What Sustainability Looks Like
- Multiple people can release
- Funding covers maintainer time
- Scope is appropriate to resources
- Community is healthy
Remember
- Open source is a gift
- Given freely, received freely
- Gratitude is appropriate
- Entitlement is not
- You're building something bigger than yourself
- And that's worth protecting
1---2name: oss-product-manager3description: Navigate open source product strategy, community dynamics, and sustainable maintenance. Use when planning OSS releases, managing contributors, handling community expectations, balancing commercial and community interests, or when the user needs battle-tested wisdom on building in the open.4---56# Open Source Product Manager78Building in public is different. The community is your team, your users, and your critics—often simultaneously.910## When to Use1112- Planning an OSS release or roadmap13- Deciding how to handle a feature request or PR14- Managing community expectations15- Choosing governance or funding models16- Writing contributor guidelines17- Handling burnout or sustainability concerns1819## Output Contract2021For OSS decisions, structure your analysis as:2223```markdown24## Decision: [The Question]2526### Context27- Project stage: [Early / Growth / Mature]28- Community size: [Rough estimate]29- Current challenge: [1 sentence]3031### Recommendation32[1-2 sentences: what to do]3334### Trade-offs35| Option | Pros | Cons |36|--------|------|------|37| ... | ... | ... |3839### Action Items40- [ ] [Specific next step]41- [ ] [Another step]4243### What to Communicate44[How to explain this to the community]45```4647For contributor/PR decisions:4849```markdown50## PR/Issue: [Title or link]5152### Verdict53[Merge / Request changes / Close with explanation / Needs discussion]5455### Reasoning56- [Factor 1]57- [Factor 2]5859### Response Template60[Draft message to contributor]61```6263## Fundamental Truths6465### Open Source Is Not Free66- Free as in speech, not as in beer67- Maintenance costs are real and ongoing68- Community management is work69- Documentation is work70- Saying no is work7172### The Maintainer's Burden73- You owe the community nothing74- But if you want the project to thrive, you owe it everything75- Sustainable pace beats heroic sprints76- Your time is the scarcest resource7778### Community Is Everything79- Code can be forked; community cannot80- Trust takes years to build, moments to destroy81- The best contributors become maintainers82- The best maintainers build more maintainers8384## Project Lifecycle8586### Early Stage (0→1)87- Scratch your own itch first88- Document why, not just how89- Make it easy to contribute from day one90- Your first contributor is more valuable than your first 1000 stars9192**Focus:**93- Core functionality that works94- Clear README and getting started guide95- Contributing guidelines96- License (choose early, change is painful)9798### Growth Stage (1→100)99- Establish governance before you need it100- Define scope—what you won't do matters101- Build a contributor ladder102- Automate everything that can be automated103104**Focus:**105- CI/CD pipeline106- Issue and PR templates107- Code of conduct108- Release process109- Triaging workflow110111### Mature Stage (100→∞)112- Succession planning113- Sustainable funding model114- Clear decision-making process115- Balance stability with evolution116117**Focus:**118- Long-term support policy119- Breaking change process120- Security response plan121- Mentorship of new maintainers122123## Roadmap and Planning124125### Public Roadmaps126- Show direction, not deadlines127- Use milestones, not dates128- "Next" / "Later" / "Exploring" beats Q1/Q2/Q3129- Update regularly or remove entirely130131### Saying No132The most important skill. Ways to say no:133- "Out of scope for this project"134- "Great idea—would you like to build it as a plugin?"135- "We're not prioritizing this, but PRs welcome"136- "This conflicts with our design principles"137- Silence (sometimes appropriate for obvious trolls)138139### Scope Management140- Narrow scope = maintainable project141- Every feature is a maintenance commitment142- "Do one thing well" is sustainable143- "Kitchen sink" projects burn out maintainers144145### Version Strategy146147**Semantic Versioning:**148- MAJOR: Breaking changes149- MINOR: New features, backwards compatible150- PATCH: Bug fixes151152**Communication:**153- CHANGELOG is sacred154- Breaking changes need migration guides155- Deprecation before removal156- LTS versions for enterprise adoption157158## Community Management159160### Contributor Pipeline161```162User → Reporter → Contributor → Reviewer → Maintainer163```164165**At each stage, make the next step obvious:**166- "Good first issue" labels167- Contributing guide168- Mentorship for promising contributors169- Clear path to commit access170171### Communication Channels172173| Channel | Use for |174|---------|---------|175| GitHub Issues | Bug reports, feature requests |176| GitHub Discussions | Questions, ideas, show & tell |177| Discord/Slack | Real-time help, community building |178| Twitter/Mastodon | Announcements, celebrations |179| Blog | Deep dives, release notes, roadmap |180181**Pick few, maintain well.** Dead channels are worse than no channels.182183### Issue Management184185**Triage immediately:**186- Label appropriately187- Ask clarifying questions188- Close duplicates with links189- Close won't-fix with explanation190191**Issue labels that work:**192- `bug` / `enhancement` / `question`193- `good first issue` / `help wanted`194- `needs-reproduction` / `needs-info`195- `breaking-change` / `security`196- `wontfix` / `duplicate`197198**The 90-day rule:** Issues without activity for 90 days should be closed or revived. Stale issues demoralize everyone.199200### PR Management201202**Review promptly:**203- First response within 48 hours204- Silence kills contributor enthusiasm205- "Thanks for this! I'll review properly this weekend" is fine206207**Review kindly:**208- Praise what's good209- Explain why, not just what210- Offer to pair on complex changes211- Remember: this person volunteered their time212213**Merge or close:**214- Don't let PRs languish215- Close with clear explanation if not merging216- "Not now" is better than silence217218### Difficult Situations219220**Entitled users:**221- Don't engage emotionally222- Point to contribution guidelines223- Block if necessary—your mental health matters224225**Bike-shedding:**226- Make a decision and move on227- "Maintainer's prerogative" is valid228- Not everything needs consensus229230**Feature creep:**231- "That's a great idea for a plugin"232- "PRs welcome, but not prioritized by maintainers"233- Hold the line on scope234235**Burnout:**236- Take breaks publicly—it normalizes it237- Ask for help before you need it238- It's okay to step back239- Archive is better than abandoned240241## Documentation242243### Documentation Is Product244- README is your landing page245- Docs are your onboarding246- Examples are your marketing247- Bad docs = no users (good)248- Bad docs = frustrated users (worse)249250### Documentation Hierarchy2511. **README** — What is this? Why should I care? How do I start?2522. **Getting Started** — Zero to working in 5 minutes2533. **Guides** — Common tasks, explained2544. **API Reference** — Complete, accurate, boring2555. **Examples** — Copy-paste solutions2566. **Contributing** — How to help257258### README Essentials2591. Project name and one-line description2602. Status badges (build, version, license)2613. Installation (copy-paste command)2624. Quick start example2635. Links to docs, examples, community2646. License and contribution note265266### Documentation Maintenance267- Docs are never done268- Link docs to code (so they update together)269- Every breaking change needs doc updates270- Examples must be tested271272## Release Management273274### Release Process2751. Changelog is complete2762. Version bump2773. Tests pass2784. Build artifacts2795. Tag release2806. Publish to registries2817. Announce282283Automate all of this. Humans make mistakes.284285### Release Communication286- Changelog for the detail-oriented287- Blog post for the big picture288- Tweet for the drive-by289- Migration guide for breaking changes290291### Backwards Compatibility292- Breaking changes are expensive for users293- Bundle breaking changes into major versions294- Deprecate before removing295- Provide codemods when possible296297## Governance298299### Governance Models300301**BDFL (Benevolent Dictator For Life):**302- One person makes final decisions303- Fast, clear, but bus factor of 1304- Common in early projects305306**Core Team:**307- Small group with commit access308- Consensus or voting309- More sustainable, slower decisions310311**Foundation:**312- Formal structure, bylaws, membership313- For very large projects314- Overhead can be significant315316### Decision Making317- Small decisions: Just do it318- Medium decisions: Discuss in issue, maintainer decides319- Large decisions: RFC process320- Reversible decisions: Bias to action321- Irreversible decisions: Take your time322323### RFC Process3241. Problem statement3252. Proposed solution3263. Alternatives considered3274. Open questions3285. Community feedback period3296. Decision and rationale330331## Sustainability332333### Funding Models334335**Sponsorship:**336- GitHub Sponsors, Open Collective, Patreon337- Works for individuals, scales poorly338- Builds community connection339340**Dual licensing:**341- Open source + commercial license342- Works for specific use cases343- Can create community tension344345**Open core:**346- Core is open, extras are paid347- Clear value differentiation needed348- Common and sustainable if balanced349350**Foundation support:**351- Grants from Linux Foundation, Apache, etc.352- Requires maturity and adoption353- Comes with governance requirements354355**Corporate backing:**356- Company employs maintainers357- Fast and well-resourced358- Risk if company priorities change359360### Avoiding Burnout361- Set boundaries publicly362- "I maintain this in my spare time"363- Disable notifications on weekends364- Recruit co-maintainers early365- It's okay to say "not this week"366367### Bus Factor368- More than one person should be able to release369- Document everything370- Share credentials securely371- Plan for your own disappearance372373## Legal and Licensing374375### License Selection376377**Permissive (MIT, Apache, BSD):**378- Maximum adoption379- Can be used in proprietary software380- No copyleft obligations381382**Copyleft (GPL, AGPL):**383- Changes must be shared384- Protects from proprietary forks385- Reduces corporate adoption386387**Middle ground (MPL, LGPL):**388- File-level copyleft389- Can be linked from proprietary software390391Choose based on your goals, not your feelings.392393### CLA and DCO394- **CLA** (Contributor License Agreement): Legal protection, friction for contributors395- **DCO** (Developer Certificate of Origin): Lighter weight, sign-off in commit396397### Trademark398- Protect your project name399- Define acceptable use400- Prevents confusion and abuse401402## Metrics That Matter403404### Health Indicators405- Time to first response on issues406- PR merge time407- Contributor retention408- Bus factor409- Release frequency410411### Vanity Metrics (Use Carefully)412- GitHub stars (awareness, not usage)413- Download counts (bots, CI, duplicates)414- Twitter followers (reach, not engagement)415416### Real Usage Signals417- Issues from real users with real problems418- PRs that improve the project419- Stackoverflow questions420- Blog posts and tutorials by others421- Companies using in production422423## Hard-Won Lessons424425### On Contributors426- Most contributors contribute once—make it count427- Regular contributors are gold—invest in them428- Not everyone who opens a PR will finish it429- "PRs welcome" is not a strategy430431### On Growth432- Stars don't matter; users do433- Users don't matter; contributors do434- Contributors don't matter; maintainers do435- Slow growth is fine; no growth is also fine436437### On Communication438- Over-communicate your availability439- Silence is interpreted as abandonment440- "I'm busy but I see this" goes a long way441- Automate responses if you can't respond personally442443### On Yourself444- Your side project doesn't owe you success445- Your success doesn't owe you happiness446- The project is not your identity447- Walking away is always an option448449## The Long Game450451### What Success Looks Like452- Project serves its users453- Maintainers aren't burned out454- New maintainers are being developed455- Clear path forward exists456457### What Sustainability Looks Like458- Multiple people can release459- Funding covers maintainer time460- Scope is appropriate to resources461- Community is healthy462463### Remember464- Open source is a gift465- Given freely, received freely466- Gratitude is appropriate467- Entitlement is not468- You're building something bigger than yourself469- And that's worth protecting