Your 30-Day Action Plan
From now to your first contribution in 30 days.
Week 1: Research & Setup
Days 1-3: Exploration
- Choose 3 projects that excite you
- Browse their GitHub repos
- Read their READMEs thoroughly
- Check code of conduct
- Note community (Discord, GitHub Discussions, etc)
Days 4-7: Deep Dive
- Clone one repo locally
- Follow setup instructions
- Get development environment running
- Explore codebase structure
- Read CONTRIBUTING guide
Checkpoint: You can run the project locally.
Week 2: Community & Learning
Days 8-10: Join Community
- Join Discord/Slack if exists
- Say hello in introductions
- Ask clarifying question
- Read recent discussions
- See how maintainers respond
Days 11-14: Learn Codebase
- Read architecture documentation
- Understand folder structure
- Look at recent merged PRs
- Trace a feature from code to docs
- Identify areas that interest you
Checkpoint: You understand what this project does.
Week 3: First Contribution
Days 15-18: Find Easy Issue
- Look for "good-first-issue" label
- Read 3-5 issues carefully
- Choose one you can solve
- Leave comment claiming it
- Ask if approach seems right
Days 19-21: Write Solution
- Set up feature branch
- Write code to solve issue
- Run tests (make sure they pass)
- Add tests for your code
- Verify linter passes locally
Checkpoint: Your code works and tests pass.
Week 1: Research & Setup (7 days)
Days 1-3: Find Your Project
GOAL: Choose 1 project to focus on
Action:
1. List 5 projects you use or care about
2. For each:
- Go to GitHub repo
- Check: last commit < 2 weeks? (Active)
- Count: open issues (< 100 = manageable)
- Search: "good-first-issue" label (exists?)
3. Pick top 3 finalists
Evaluate using the 6b_healthy-signals checklist:
□ Regular commits (weekly+)
□ Fast response time (< 3 days)
□ Clear documentation
□ Welcoming community
□ Multiple maintainers
Questions to ask yourself:
- Do I use this project?
- Does their code style appeal to me?
- Do I like the maintainers (tone, communication)?
- Can I see myself contributing long-term?Days 4-7: Setup & Exploration
GOAL: Get repo running locally
Action:
1. Clone repo: git clone [url]
2. Follow README setup instructions step-by-step
3. Get it running locally (can take 4-8 hours)
4. Explore the code:
- Read structure (folders/files)
- Find main code vs tests
- Look at one feature (understand flow)
Checkpoint: You can run the project + modify one thing
Test it:
- Change a comment in code
- Rebuild/restart
- Verify change appears
(This proves your environment is right)Week 2: Community & Learning (7 days)
Days 8-10: Join Community
GOAL: Get to know the people
Action:
1. Find community channels:
- GitHub Discussions
- Discord/Slack
- Twitter/social media
- Mailing list
2. Introduce yourself
- "Hi! I'm [name], just started exploring [project].
Really interested in [specific area].
Any tips for getting started?"
3. Follow conversations
Why this matters:
- You'll learn how project works
- Maintainers will see you engaged
- When you submit PR, they'll recognize you
- You'll feel less alone in the processDays 11-14: Deep Dive Learning
GOAL: Understand this project deeply
Action:
1. Read the architecture docs
2. Pick ONE feature:
- Find where it starts (entry point)
- Trace through code
- See how it ends
- Document your understanding
3. Look at merged PRs:
- Read last 5 merged PRs
- Understand: what did they fix/add?
- How long was review process?
- What did maintainers comment on?
Example trace: User login feature
- Entry point: /login route in auth.py
- Follows: Form validation → Database query → Session creation
- Ends: Redirect to home with logged-in status
This exercise teaches you how code flows.Week 3: First Contribution (7 days)
Days 15-18: Find Right Issue
GOAL: Pick one issue to solve
Action:
1. Filter issues by "good-first-issue" label
2. Read 5-10 issues
3. For each, ask:
- Can I understand what it's asking?
- Do I know where the code lives?
- Do I think I can fix it?
4. Pick ONE (start small!)
Example good first issue:
"Fix: User profile page shows error when username has special characters"
- Clear problem
- Likely one area of code to fix
- Should take 2-4 hours
Example BAD first issue:
"Redesign entire authentication system"
- Too big
- Too complex
- Requires understanding many systems
Comment on issue:
"Hi! I'd like to work on this. Here's my understanding:
[explain what you think the issue is asking]
Does this seem right?"
Maintainer response:
"Yes! Go ahead. Here's where the code is..."
→ Now you can start!Days 19-21: Implement Solution
GOAL: Write working code
Action:
1. Create feature branch:
git checkout -b fix/issue-name
2. Find the code to change
(Maintainer should have pointed you)
3. Make minimal changes:
- Only fix the stated problem
- Don't refactor other stuff
- Don't add new features
4. Test locally:
npm test (or pytest)
5. Add tests:
- Write test for your fix
- Confirm test fails without fix
- Confirm test passes with fix
6. Format and lint:
npm run lint --fix
npm run format
7. Final check:
- Does it run?
- Do tests pass?
- Does linter pass?Week 4: Ship It (7 days)
Days 22-24: Create PR
GOAL: Submit your work professionally
Action:
1. Create PR with title:
"[Issue #123] Fix: User profile with special characters"
2. PR description:
"Fixes #123
Problem:
User profile page crashed when username had
special characters like @, #, etc.
Solution:
Added HTML escaping in username display
(see src/profile.py line 42)
Testing:
- Added test for special character usernames
- All tests pass
- Manual tested with @, #, $ characters"
3. Self-review:
- Read your own code
- Ask: "Would I approve this?"
- Fix any obvious issues
4. Check CI:
- Wait for CI to run
- All checks should pass
- If they don't, fix itDays 25-28: Respond to Feedback
GOAL: Handle review gracefully
Action:
1. Wait for first review (usually 3-7 days)
2. Maintainer comments:
✓ Thank them
✓ Understand the feedback
✓ Make changes
✓ Push updated code
3. Respond professionally:
"Great catch! Fixed in abc123. Good point about
error handling - added a try/catch block now."
4. When approved:
"Thanks for the thorough review!
Great learning experience."
5. It gets merged:
🎉 Celebrate! You did it!Real Timeline Expectations
Days 1-7: Setup (might be slow, that's normal)
Days 8-14: Exploration (this is time well spent)
Days 15-18: Actually coding (shorter than expected!)
Days 19-28: PR review and iteration (longest part)
Total: 4 weeks to first merged PR
But here's the thing:
Week 4-5: First PR merged ✓
Week 6: Already planning second PR (faster now)
Week 8: Third PR (you know the codebase!)
Week 12: Core team starting to recognize you
This is the path. There's no shortcut.If You Get Stuck
Day 3: "Can't get project running"
→ Ask in community: "Getting error X when running setup.py.
Tried Y and Z. Am I missing something?"
→ They'll help you
Day 15: "Can't find where to make change"
→ Comment in issue: "Found the problem! It's in X file.
Should I make change in method Y?"
→ Maintainer confirms
Day 22: "My PR isn't being reviewed"
→ Comment: "Hi! Is there anything I can do to help
move this forward? Any feedback so far?"
→ Usually gets response within 48h
Day 28: "They rejected my approach"
→ Don't take it personally
→ Ask: "What would be better approach?"
→ Try again with new approach
→ This is learningSuccess Indicators
By end of week 1:
✓ Project runs on your computer
By end of week 2:
✓ You understand the codebase
✓ You're familiar with maintainers/community
By end of week 3:
✓ Code is written and tested
By end of week 4:
✓ PR is submitted
✓ You're getting feedback
✓ You're iterating
Success:
✓ PR merged (usually week 5-6)
✓ You feel proud
✓ You're ready for next issueFollow this plan. Exactly. Don't skip steps. You'll be contributing in 30 days.
- Wait for review feedback
- Respond to comments
- Make requested changes
- Re-request review
- Answer follow-up questions
Days 29-30: Celebrate
- Your PR gets merged! 🎉
- Thank the maintainers
- Share the experience
- Plan next contribution
Checkpoint: First PR merged. You're officially a contributor.
What's Next
After 30 days:
- Pick next issue
- Build on your momentum
- Go deeper into the project
- Start helping others
- Consider multiple projects
Staying Motivated
If you're stuck:
- Re-read why you started
- Celebrate small wins
- Talk to other contributors
- Take a short break
- Pick an easier issue
If you're bored:
- Tackle harder issues
- Start mentoring
- Look for new projects
- Contribute more
- Lead discussionsThe Marathon
This 30-day plan is week 1 of your open source journey.
Month 1: Get started (this plan)
Month 2-6: Build foundations
Month 6-12: Become familiar
Year 2: Become expert
Year 3+: Lead and mentorYou've got this. The hardest part is starting. Everything else flows from there.