Introduction
Entering the world of open source was more than just a technical decision — it was a turning point in how I understood collaboration, learning, and real-world software development. Until then, my experience with coding had been mostly limited to personal projects and tutorials, where I wrote code alone and controlled every part of it. But open source changed that.
Table of Contents:
1.Why I Started with Open Source
2.Setting Up My First Project: Nextcloud
3.Understanding and Choosing a License
4.My First Pull Requests
5.Contributing to Practice Repositories
6.Key Lessons Learned
7.Tips for Future Contributors
8.Final Thoughts
1.Why I Started with Open Source
Open source fascinated me because it blends learning, collaboration, and real-world problem-solving.
It’s not just about writing code — it’s about contributing to something larger than yourself.
My Initial Goals:
->Learn professional coding workflows beyond tutorials
->Understand version control and collaboration with Git and GitHub
->Connect with global developers and mentors
->Gain practical experience in debugging and documentation
->Build a portfolio of real-world contributions
->Each of these goals became achievable once I took my first small step.
2.Setting Up My First Project: Nextcloud
Why I Chose Nextcloud
I selected Nextcloud because it offered the perfect mix of challenge and support for beginners:
->Excellent documentation – clear setup guides and contribution rules
->Active community – maintainers respond quickly and encourage new contributors
->Meaningful impact – used by millions globally
->Modern tech stack – PHP, JavaScript, and Vue.js
->Beginner-friendly labels – “good first issue” and “easy fix” made it approachable
Setting Up the Development Environment
Challenges I Faced
Challenge 1: Large Codebase
Problem: Nextcloud is a massive project with thousands of files
Solution: Started by reading the CONTRIBUTING.md file and focused on one module at a time
Challenge 2: Development Environment
Problem: Setting up all dependencies was complex
Solution: Used Docker containers to simplify the setup process
Challenge 3: Understanding the Architecture
Problem: Didn't know where to start making changes
Solution: Read existing PRs and issues to understand common patterns
Understanding and Choosing a License
One crucial aspect of my project was understanding open source licenses. This was eye-opening!
Why Licenses Matter
A license:
Protects your work
Defines how others can use your code
Clarifies contribution terms
Prevents legal issues
Licenses I Considered
My Choice: MIT License
I chose the MIT License for my project because:
Simplicity - Easy to understand for contributors
Flexibility - Allows both open source and commercial use
Wide adoption - Most developers are familiar with it
Minimal restrictions - Encourages maximum collaboration
Pro Tip: Add a LICENSE file to your repository root. GitHub will automatically detect it!
My First Pull Requests
PR #1: Documentation Fix (MERGED ✓)
Repository: Nextcloud Documentation
Issue: Outdated installation instructions
Changes: Updated PHP version requirements and fixed broken links
What I learned:
Always reference the issue number
Test all links before submitting
Clear commit messages are crucial
PR #2: Bug Fix in User Management (MERGED ✓)
Repository: Nextcloud Server
Issue: User search not working with special characters
Changes: Added proper escaping for search queries
What I learned:
Security matters - always sanitize inputs
Write tests for your changes
Follow the project's coding standards
PR #3: UI Enhancement (UNDER REVIEW 👀)
Repository: Nextcloud Server
Issue: Improve accessibility of file sharing dialog
Changes: Added ARIA labels and keyboard navigation
What I learned:
Patience is key - reviews take time
Be open to feedback and suggestions
Iterate based on maintainer comments
Contributing to Practice Repositories
To build confidence, I also contributed to beginner-friendly practice repositories:
- first-contributions Task: Add my name to contributors list Status: MERGED ✓ Time to merge: 2 days Takeaway: Perfect for learning the fork-clone-PR workflow!
- HyunCafe/contribute-practice Task: Add name and inspirational quote Status: MERGED ✓ Time to merge: 3 days Takeaway: Great for understanding markdown formatting and git basics.
- EddieHubCommunity/hacktoberfest-practice Task: Add GitHub profile to community list Status: MERGED ✓ Time to merge: 1 day Takeaway: Active community with fast review cycles - highly recommended! Key Lessons Learned
Read CONTRIBUTING.md First
Every project has guidelines. Reading them saves time and shows respect to maintainers.Start Small
My first PRs were:
Documentation fixes
Typo corrections
Adding comments
Small bug fixes
Don't try to refactor the entire codebase on day one!
- Communication is Key Before working on an issue:
Comment on the issue expressing interest
Ask for clarification if needed
Propose your approach
Wait for maintainer approval
Then start coding
- Write Clean Commits Bad commit:
Good commit:
- Be Patient with Reviews
Remember: Maintainers are volunteers with day jobs!
- Handle Rejection Gracefully
Not all PR's get merged, and that's okay!
When your PR is rejected:
Thank the reviewer for their time
Ask for feedback on what to improve
Learn from the experience
Move on to the next contribution
- Test Everything Before submitting:
Tips for Future Contributors:
Getting Started Checklist
[ ] Create a GitHub account
[ ] Set up Git on your computer
[ ] Learn basic Git commands (clone, branch, commit, push, PR)
[ ] Find beginner-friendly projects
[ ] Read project documentation
[ ] Join project communities (Discord, Slack, Forums)
[ ] Start with "good first issue" labels
[ ] Make your first contribution
[ ] Celebrate!
Finding Projects to Contribute To
Websites:
1.Good First Issue
2.First Timers Only
3.Up For Grabs
4.CodeTriage
GitHub Search:
Essential Git Commands:
Writing Good PRs
Template:
My Statistics After 3 Months:
What's Next?
My journey is just beginning! Here's what I'm planning:
1.Contribute to larger projects - Dive deeper into complex issues
2.Become a maintainer - Help review others' PR's
3.Create my own OSS project - Give back to the community
4.Mentor new contributors - Share what I've learned
5.Participate in GSoC - Apply for Google Summer of Code
Final Thoughts:
Open source contribution has been one of the most rewarding experiences of my developer journey. It's not just about code – it's about:
1.Community - Meeting amazing developers worldwide
2.Learning - Exposure to real-world codebases
3.Impact - Contributing to software used by millions
4.Career - Building a portfolio that speaks for itself
5.Growth - Becoming a better developer every day
6.If you're thinking about starting – just do it! Your first 7.contribution doesn't have to be perfect. The community is 8.welcoming, and everyone started where you are now.
Useful Resources:
->GitHub Open Source Guide
->How to Contribute to Open Source
->First Contributions
->The Beginner's Guide to Contributing to Open Source
-> Nextcloud Developer Documentation
Let's Connect!
I'd love to hear about your open source journey!
GitHub: @niveshpadamata1218
LinkedIn: www.linkedin.com/in/nivesh-padamata-bb7370322
Have questions? Drop a comment below, and I'll be happy to help!
Summary
Key Takeaways:
1.Start with documentation and small fixes
2.Choose projects that interest you
3.Read and follow contribution guidelines
4.Be patient with the review process
5.Learn from feedback and keep improving
6.Give back to the community
Your turn: What's stopping you from making your first contribution? Let me know in the comments!
Thank you for reading! If you found this helpful, please share and follow me for more content about open source, web development, and my coding journey!










Top comments (0)