Final Check
30-Day Action Plan

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 process

Days 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 it

Days 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 learning

Success 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 issue

Follow 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 discussions

The 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 mentor

You've got this. The hardest part is starting. Everything else flows from there.