<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Ossium Blogs]]></title><description><![CDATA[Ossium Blogs]]></description><link>https://blogs.ossium.live</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 02:21:53 GMT</lastBuildDate><atom:link href="https://blogs.ossium.live/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[How to Prepare for GSoC Through Open Source (A Practical Guide for Students)]]></title><description><![CDATA[Preparing for Google Summer of Code (GSoC) is not about rushing contributions a few months before applications open.It’s about consistent open source involvement, understanding organizations, and building trust over time.
Yet, most students realize t...]]></description><link>https://blogs.ossium.live/how-to-prepare-for-gsoc-through-open-source-a-practical-guide-for-students</link><guid isPermaLink="true">https://blogs.ossium.live/how-to-prepare-for-gsoc-through-open-source-a-practical-guide-for-students</guid><dc:creator><![CDATA[Sumit Maurya]]></dc:creator><pubDate>Sun, 11 Jan 2026 04:37:07 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/imTy01VoV-Y/upload/055001973810d1bdbfa9c938f0355a8e.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Preparing for <strong>Google Summer of Code (GSoC)</strong> is not about rushing contributions a few months before applications open.<br />It’s about <strong>consistent open source involvement</strong>, understanding organizations, and building trust over time.</p>
<p>Yet, most students realize this <strong>too late</strong>.</p>
<p>This guide explains how to prepare for GSoC <em>properly</em> through open source — step by step, without hype.</p>
<h2 id="heading-why-most-students-start-gsoc-preparation-too-late">Why Most Students Start GSoC Preparation Too Late</h2>
<p>Every year, thousands of students aim for GSoC.<br />Only a small percentage get selected.</p>
<p>The biggest reason?</p>
<h3 id="heading-late-and-rushed-preparation">Late and rushed preparation</h3>
<p>Most students:</p>
<ul>
<li><p>start contributing just 2–3 months before GSoC</p>
</li>
<li><p>chase random “good first issues”</p>
</li>
<li><p>submit proposals without deep project understanding</p>
</li>
</ul>
<h3 id="heading-the-competition-reality">The competition reality</h3>
<ul>
<li><p>GSoC is <strong>highly competitive</strong></p>
</li>
<li><p>Mentors receive <strong>many strong proposals</strong></p>
</li>
<li><p>Passion alone is not enough</p>
</li>
</ul>
<p>By the time students understand what GSoC actually requires, the application window is already close.</p>
<h2 id="heading-what-gsoc-mentors-actually-look-for">What GSoC Mentors Actually Look For</h2>
<p>Mentors don’t select students based on resumes or certificates.<br />They look for <strong>signals of long-term commitment</strong>.</p>
<h3 id="heading-1-consistency-in-open-source-contributions">1. Consistency in open source contributions</h3>
<p>Regular contributions over months matter more than:</p>
<ul>
<li><p>last-minute PRs</p>
</li>
<li><p>sudden activity spikes</p>
</li>
</ul>
<p>Consistency shows:</p>
<ul>
<li><p>reliability</p>
</li>
<li><p>seriousness</p>
</li>
<li><p>trustworthiness</p>
</li>
</ul>
<h3 id="heading-2-understanding-the-organization-ecosystem">2. Understanding the organization ecosystem</h3>
<p>Mentors value students who:</p>
<ul>
<li><p>understand how the project works</p>
</li>
<li><p>know the codebase and workflows</p>
</li>
<li><p>engage in discussions and reviews</p>
</li>
</ul>
<p>They want contributors, not short-term participants.</p>
<h3 id="heading-3-past-contributions-as-proof">3. Past contributions as proof</h3>
<p>Strong GSoC proposals are backed by:</p>
<ul>
<li><p>merged pull requests</p>
</li>
<li><p>meaningful issue discussions</p>
</li>
<li><p>visible GitHub activity in the same org</p>
</li>
</ul>
<p>Experience beats promises.</p>
<h2 id="heading-how-to-find-gsoc-relevant-open-source-projects">How to Find GSoC-Relevant Open Source Projects</h2>
<p>Finding the <em>right</em> open source projects is one of the hardest parts of GSoC preparation.</p>
<p>Students often:</p>
<ul>
<li><p>jump between unrelated GitHub repositories</p>
</li>
<li><p>lose track of contributions</p>
</li>
<li><p>struggle to identify GSoC-friendly organizations</p>
</li>
</ul>
<p>What you need instead is <strong>focused discovery</strong>.</p>
<p>That’s where <a target="_blank" href="http://ossium.live"><strong>ossium.live</strong></a> fits naturally.</p>
<p>It helps you discover open source projects and organizations that align with <strong>long-term contribution</strong>, not random exploration.</p>
<h2 id="heading-using-ossiumlivehttpossiumlive-for-gsoc-preparation">Using <a target="_blank" href="http://ossium.live">ossium.live</a> for GSoC Preparation</h2>
<p>Ossium supports the exact workflow GSoC mentors expect.</p>
<h3 id="heading-org-wise-open-source-discovery">Org-wise open source discovery</h3>
<ul>
<li><p>Find organizations that have participated in GSoC in previous years</p>
</li>
<li><p>Explore their repositories with proper context</p>
</li>
<li><p>Avoid wasting time on irrelevant or inactive projects</p>
</li>
</ul>
<h3 id="heading-centralized-issue-and-pr-tracking">Centralized issue and PR tracking</h3>
<ul>
<li><p>Track all your issues and pull requests in one place</p>
</li>
<li><p>Maintain a clear contribution history</p>
</li>
<li><p>Stay organized even while contributing to multiple repos</p>
</li>
</ul>
<p>This makes your consistency visible — a key factor in GSoC selection.</p>
<h3 id="heading-long-term-contribution-focus">Long-term contribution focus</h3>
<p>Ossium is designed to:</p>
<ul>
<li><p>reduce context switching</p>
</li>
<li><p>encourage structured contributions</p>
</li>
<li><p>support long-term engagement</p>
</li>
</ul>
<p>Which aligns directly with how GSoC mentors evaluate students.</p>
<h2 id="heading-a-realistic-gsoc-preparation-roadmap">A Realistic GSoC Preparation Roadmap</h2>
<p>This roadmap focuses on <strong>what actually works</strong>.</p>
<h3 id="heading-step-1-start-early">Step 1: Start early</h3>
<p>Even if GSoC is months away:</p>
<ul>
<li><p>shortlist 1–2 organizations</p>
</li>
<li><p>read documentation and past PRs</p>
</li>
<li><p>follow discussions and updates</p>
</li>
</ul>
<p>Early familiarity gives a huge advantage.</p>
<h3 id="heading-step-2-contribute-consistently">Step 2: Contribute consistently</h3>
<p>Start with:</p>
<ul>
<li><p>documentation improvements</p>
</li>
<li><p>small bug fixes</p>
</li>
<li><p>issue discussions</p>
</li>
</ul>
<p>Small contributions done regularly build mentor trust.</p>
<h3 id="heading-step-3-focus-on-fewer-organizations">Step 3: Focus on fewer organizations</h3>
<p>Depth matters more than quantity.</p>
<p>Mentors prefer:</p>
<blockquote>
<p>“This student understands our project deeply”<br />over<br />“This student contributed everywhere.”</p>
</blockquote>
<h3 id="heading-step-4-track-your-contributions">Step 4: Track your contributions</h3>
<p>Keep a clear record of:</p>
<ul>
<li><p>issues worked on</p>
</li>
<li><p>PRs opened and merged</p>
</li>
<li><p>feedback received</p>
</li>
</ul>
<p>This becomes invaluable during proposal writing.</p>
<h3 id="heading-step-5-write-proposals-from-experience">Step 5: Write proposals from experience</h3>
<p>Your proposal should feel like:</p>
<ul>
<li><p>a continuation of your work<br />  not</p>
</li>
<li><p>a new beginning</p>
</li>
</ul>
<p>That’s how strong GSoC applications are built.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Preparing for GSoC is not about shortcuts.<br />It’s about <strong>showing up consistently</strong> in open source communities.</p>
<p>Start early.<br />Stay focused.<br />Use tools that reduce confusion and help you stay organized.</p>
<p>If you treat open source as a long-term journey, GSoC becomes a <strong>natural next step</strong>, not a last-minute gamble.</p>
]]></content:encoded></item><item><title><![CDATA[How to Find Open Source Projects as a Beginner (Without Getting Overwhelmed)]]></title><description><![CDATA[If you’ve ever searched “beginner open source projects” on GitHub and instantly felt tired — you’re not lazy.You’re just overloaded.
I’ve been there.Thousands of repositories.Stars everywhere.Zero clarity.
Let’s break this down calmly, like a real hu...]]></description><link>https://blogs.ossium.live/how-to-find-open-source-projects-as-a-beginner-without-getting-overwhelmed</link><guid isPermaLink="true">https://blogs.ossium.live/how-to-find-open-source-projects-as-a-beginner-without-getting-overwhelmed</guid><category><![CDATA[Open Source]]></category><category><![CDATA[open source beginners guide]]></category><category><![CDATA[Open Source Community]]></category><category><![CDATA[open source]]></category><category><![CDATA[Open source software]]></category><dc:creator><![CDATA[Sumit Maurya]]></dc:creator><pubDate>Mon, 29 Dec 2025 12:25:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ieic5Tq8YMk/upload/9237e50540daa7f94779cc56131aaced.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you’ve ever searched <em>“beginner open source projects”</em> on GitHub and instantly felt tired — you’re not lazy.<br />You’re just overloaded.</p>
<p>I’ve been there.<br />Thousands of repositories.<br />Stars everywhere.<br />Zero clarity.</p>
<p>Let’s break this down calmly, like a real human would.</p>
<h2 id="heading-why-beginners-struggle-with-open-source">Why beginners struggle with open source</h2>
<p>Open source sounds exciting… until you actually try to start.</p>
<p>Here’s what usually goes wrong:</p>
<ul>
<li><p><strong>Too many repositories</strong><br />  You search once and suddenly GitHub throws 50k+ repos at you. Your brain shuts down.</p>
</li>
<li><p><strong>No guidance</strong><br />  Most projects don’t clearly say <em>where</em> a beginner should start or <em>what</em> they should do first.</p>
</li>
<li><p><strong>Fear of choosing the wrong project</strong><br />  You keep thinking:<br />  <em>“What if this project is too advanced?”</em><br />  <em>“What if I waste my time?”</em><br />  So you end up doing nothing.</p>
</li>
</ul>
<p>This is not a skill issue.<br />It’s a discovery problem.</p>
<h2 id="heading-what-beginners-actually-need">What beginners actually need</h2>
<p>Not <em>another</em> list of “top open source projects”.<br />Not repos with thousands of stars but zero direction.</p>
<p>Beginners need <strong>clarity</strong> — and a system that supports it.</p>
<p>Here’s what that really looks like:</p>
<ul>
<li><p><strong>Active, relevant projects</strong><br />  Beginners should see projects that are alive, trending, and recently updated — not repositories that went silent years ago.</p>
</li>
<li><p><strong>Discoverable, beginner-friendly work</strong><br />  Instead of guessing which issue is safe to pick, beginners need issues that are easy to find, well-scoped, and suitable for first-time contributors.</p>
</li>
<li><p><strong>Clear contribution flow</strong><br />  From discovery → issue → PR → merge, everything should feel connected.<br />  No losing context. No wondering <em>“what do I do next?”</em></p>
</li>
<li><p><strong>One place to track progress</strong><br />  Beginners gain confidence when they can see:</p>
<ul>
<li><p>the issues they’re working on</p>
</li>
<li><p>the PRs they’ve opened</p>
</li>
<li><p>the organizations they’re contributing to<br />  All in one structured view.</p>
</li>
</ul>
</li>
</ul>
<p>When these pieces come together, something important happens:</p>
<p>Beginners stop overthinking.<br />They stop hopping between tabs.<br />And they finally start contributing.</p>
<p>That’s when confidence grows — naturally.</p>
<h2 id="heading-a-better-way-to-discover-open-source-projects">A better way to discover open-source projects</h2>
<p>Instead of randomly jumping between GitHub repos, imagine this:</p>
<p>You open one place.<br />You see <strong>only beginner-friendly open source projects</strong>.<br />Everything is filtered, organized, and intentional.</p>
<p>That’s where <a target="_blank" href="http://ossium.live"><strong>ossium.live</strong></a> fits in — naturally.</p>
<p>It doesn’t try to overwhelm you with options.<br />It helps you <em>start</em>.</p>
<h2 id="heading-how-ossiumlivehttpossiumlive-helps-beginners">How <a target="_blank" href="http://ossium.live">ossium.live</a> helps beginners</h2>
<p>Here’s how it actually helps:</p>
<ul>
<li><p><strong>Everything in one place</strong><br />  Discovery, tracking, and contribution live on a single surface.<br />  No more jumping between GitHub tabs, notes, and bookmarks.</p>
</li>
<li><p><strong>Trending feed (noise removed)</strong><br />  You discover open source projects that are:</p>
<ul>
<li><p>trending</p>
</li>
<li><p>filtered by language and topic</p>
</li>
<li><p>fresh and active<br />  So you don’t waste time on dead or irrelevant repos.</p>
</li>
</ul>
</li>
<li><p><strong>PR + Issue control</strong><br />  All your pull requests and issues are visible in one dashboard.<br />  This is huge for beginners who lose track easily after contributing to multiple repos.</p>
</li>
<li><p><strong>ORG-wise structured view</strong><br />  You can create organizations, attach PRs/issues to them, and maintain everything cleanly.<br />  No mental clutter. No confusion.</p>
</li>
<li><p><strong>GSoC-ready discovery</strong><br />  You can find organizations that have participated in GSoC in past years.<br />  This makes ossium especially useful if you’re aiming for serious open source involvement.</p>
</li>
<li><p><strong>Faster journey from idea → merged PR</strong><br />  The platform is designed to reduce context switching, so you can focus on contributing instead of figuring out <em>where things are</em>.</p>
</li>
</ul>
<p>In simple words:<br />ossium doesn’t just help you <em>find</em> open source projects —<br />it helps you <strong>stay consistent</strong>, <strong>stay organized</strong>, and <strong>move faster</strong> as a beginner.</p>
<p>And that’s exactly what most beginners are missing.</p>
<h2 id="heading-my-honest-advice-to-beginners">My honest advice to beginners</h2>
<p>Don’t try to be perfect.<br />Don’t wait until you “know everything”.</p>
<p>Your first contribution will feel small.<br />That’s okay.</p>
<p>Open source is not about big PRs.<br />It’s about <strong>showing up</strong>, reading code, and slowly building confidence.</p>
<p>Use tools that reduce confusion.<br />Choose environments that support beginners.<br />And most importantly — <strong>start somewhere</strong>.</p>
<p>Because once you make your first contribution,<br />everything after that feels possible.</p>
<p>You’re not behind.<br />You’re just at the beginning.</p>
<blockquote>
<p>If open source has been on your list but you never knew where to begin, <strong>ossium.live</strong> is worth exploring.<br />It’s built to help beginners move from confusion to contribution — faster and with clarity.</p>
<p>Start here: <a target="_blank" href="https://ossium.live"><strong>https://ossium.live</strong></a></p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[A Practical Tool Stack to Build and Ship Your SaaS Faster]]></title><description><![CDATA[Building a SaaS today is not about using every new tool.
It is about choosing a simple and reliable stack that lets you move fast, stay focused, and scale when needed.
This blog walks through a modern and practical tool stack you can use to go from i...]]></description><link>https://blogs.ossium.live/a-practical-tool-stack-to-build-and-ship-your-saas-faster</link><guid isPermaLink="true">https://blogs.ossium.live/a-practical-tool-stack-to-build-and-ship-your-saas-faster</guid><dc:creator><![CDATA[Manish Kumar]]></dc:creator><pubDate>Fri, 26 Dec 2025 07:34:09 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1766734404461/6776085f-6825-4a89-99a7-06d7964aa6bf.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Building a SaaS today is not about using every new tool.</p>
<p>It is about choosing a simple and reliable stack that lets you move fast, stay focused, and scale when needed.</p>
<p>This blog walks through a modern and practical tool stack you can use to go from idea to production without overengineering.</p>
<p>Whether you are a solo founder, indie hacker, or early stage team, this setup covers the entire SaaS lifecycle.</p>
<h2 id="heading-planning-and-documentation">Planning and Documentation</h2>
<p>Every good product starts with clarity.</p>
<p>Before writing a single line of code, you need a place to think, write, and organize.</p>
<p>Notion works well for this purpose.</p>
<p>You can use it to write product requirements, maintain documentation, track tasks, and plan future features.</p>
<p>For visual thinking, Eraser is extremely useful.</p>
<p>It helps you create wireframes, architecture diagrams, and system designs without friction.</p>
<p>When your idea is clear on paper, implementation becomes much easier.</p>
<h2 id="heading-development-environment"><strong>Development Environment</strong></h2>
<p>Your development setup should feel invisible.</p>
<p>VS Code is a great editor for most SaaS builders.</p>
<p>It is fast, extensible, and works well with almost every language and framework.</p>
<p>GitHub is where your code lives.</p>
<p>It handles version control, pull requests, issues, and continuous integration workflows.</p>
<p>Together, VS Code and GitHub form a solid foundation for daily development.</p>
<h2 id="heading-databases-and-data-storage">Databases and Data Storage</h2>
<p>Most SaaS products need both structured and flexible data.</p>
<p>For relational data, Neon is a great choice.</p>
<p>It provides serverless PostgreSQL with easy scaling and minimal operational overhead.</p>
<p>For unstructured or flexible data, MongoDB fits well.</p>
<p>It is especially useful for logs, activity feeds, and evolving schemas.</p>
<p>Choosing the right database early saves a lot of refactoring later.</p>
<h2 id="heading-authentication-and-security">Authentication and Security</h2>
<p>Authentication is one area where building everything yourself rarely pays off.</p>
<p>Using managed auth solutions like Auth.js, Clerk, or Supabase Auth can save weeks of work.</p>
<p>For API security, JWT and OAuth are still reliable standards.</p>
<p>On the infrastructure side, Cloudflare adds an extra layer of protection with DNS management, DDoS mitigation, and security rules.</p>
<p>Security is not optional for SaaS. It is foundational.</p>
<h2 id="heading-payments-and-billing">Payments and Billing</h2>
<p>Monetization should be simple for both you and your users.</p>
<p>For founders in India, Razorpay works smoothly with local payment methods.</p>
<p>Dodo Payments is a good option for simple SaaS subscriptions.</p>
<p>For global reach, Stripe remains the most widely supported payment platform.</p>
<p>A good payment system reduces churn and support issues.</p>
<h2 id="heading-analytics-and-monitoring">Analytics and Monitoring</h2>
<p>You cannot improve what you do not measure.</p>
<p>Umami provides privacy friendly analytics without tracking users aggressively.</p>
<p>It tells you what matters without violating trust.</p>
<p>Sentry helps you catch errors before users complain.</p>
<p>It gives visibility into crashes and performance issues.</p>
<p>Uptime monitoring tools ensure your SaaS stays available even when you are asleep.</p>
<h2 id="heading-design-and-product-experience">Design and Product Experience</h2>
<p>A clean user experience builds trust instantly.</p>
<p>Figma is excellent for designing interfaces and user flows.</p>
<p>Tailwind CSS helps you move fast without writing repetitive styles.</p>
<p>Shots allows you to create polished screenshots for landing pages and marketing.</p>
<p>Good design does not require perfection. It requires consistency.</p>
<h2 id="heading-hosting-and-deployment">Hosting and Deployment</h2>
<p>Deployment should not slow you down.</p>
<p>Vercel is ideal for hosting frontends with minimal setup.</p>
<p>For backend services, a VPS from providers like Hetzner, DigitalOcean, or AWS gives you full control.</p>
<p>Coolify is a powerful self hosted platform that turns a VPS into a developer friendly deployment system.</p>
<p>It acts like your own private cloud platform.</p>
<p>Docker ties everything together by making your services portable and predictable.</p>
<h2 id="heading-emails-and-background-tasks">Emails and Background Tasks</h2>
<p>Communication matters.</p>
<p>Transactional email services like Resend or Brevo help you send reliable emails without landing in spam.</p>
<p>Background jobs handle tasks like cleanup, scheduled emails, and data syncing.</p>
<p>Caching tools like Redis improve performance and reduce database load.</p>
<p>Search engines like Meilisearch or Typesense help users find what they need instantly.</p>
<h2 id="heading-final-thoughts">Final Thoughts</h2>
<p>You do not need dozens of tools to build a successful SaaS.</p>
<p>You need a stack that is understandable, maintainable, and flexible.</p>
<p>Start small. Ship early. Learn from users. Improve continuously.</p>
<p>The best tool stack is the one that helps you focus on solving real problems</p>
]]></content:encoded></item><item><title><![CDATA[How to Contribute to Open Source]]></title><description><![CDATA[Want to contribute to open source? A guide to making open source contributions, for first-timers and veterans.
Table of Contents

Why contribute to open source?
Working on [freenode] helped me earn many of the skills I later used for my studies in un...]]></description><link>https://blogs.ossium.live/how-to-contribute-to-open-source</link><guid isPermaLink="true">https://blogs.ossium.live/how-to-contribute-to-open-source</guid><dc:creator><![CDATA[Manish Kumar]]></dc:creator><pubDate>Mon, 22 Dec 2025 09:21:15 GMT</pubDate><content:encoded><![CDATA[<p>Want to contribute to open source? A guide to making open source contributions, for first-timers and veterans.</p>
<p>Table of Contents</p>
<p><img src="https://opensource.guide/assets/images/illos/contribute.svg" alt="How to Contribute to Open Source" /></p>
<h2 id="heading-why-contribute-to-open-source"><strong>Why contribute to open source?</strong></h2>
<p>Working on [freenode] helped me earn many of the skills I later used for my studies in university and my actual job. I think working on open source projects helps me as much as it helps the project!</p>
<p>— <a target="_blank" href="https://github.com/errietta">@errietta</a>, <a target="_blank" href="https://www.errietta.me/blog/open-source/">“Why I love contributing to open source software”</a></p>
<p>Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.</p>
<p>Why do people contribute to open source? Plenty of reasons!</p>
<h3 id="heading-improve-software-you-rely-on"><strong>Improve software you rely on</strong></h3>
<p>Lots of open source contributors start by being users of software they contribute to. When you find a bug in an open source software you use, you may want to look at the source to see if you can patch it yourself. If that’s the case, then contributing the patch back is the best way to ensure that your friends (and yourself when you update to the next release) will be able to benefit from it.</p>
<h3 id="heading-improve-existing-skills"><strong>Improve existing skills</strong></h3>
<p>Whether it’s coding, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open source project.</p>
<h3 id="heading-meet-people-who-are-interested-in-similar-things"><strong>Meet people who are interested in similar things</strong></h3>
<p>Open source projects with warm, welcoming communities keep people coming back for years. Many people form lifelong friendships through their participation in open source, whether it’s running into each other at conferences or late night online chats about burritos.</p>
<h3 id="heading-find-mentors-and-teach-others"><strong>Find mentors and teach others</strong></h3>
<p>Working with others on a shared project means you’ll have to explain how you do things, as well as ask other people for help. The acts of learning and teaching can be a fulfilling activity for everyone involved.</p>
<h3 id="heading-build-public-artifacts-that-help-you-grow-a-reputation-and-a-career"><strong>Build public artifacts that help you grow a reputation (and a career)</strong></h3>
<p>By definition, all of your open source work is public, which means you get free examples to take anywhere as a demonstration of what you can do.</p>
<h3 id="heading-learn-people-skills"><strong>Learn people skills</strong></h3>
<p>Open source offers opportunities to practice leadership and management skills, such as resolving conflicts, organizing teams of people, and prioritizing work.</p>
<h3 id="heading-its-empowering-to-be-able-to-make-changes-even-small-ones"><strong>It’s empowering to be able to make changes, even small ones</strong></h3>
<p>You don’t have to become a lifelong contributor to enjoy participating in open source. Have you ever seen a typo on a website, and wished someone would fix it? On an open source project, you can do just that. Open source helps people feel agency over their lives and how they experience the world, and that in itself is gratifying.</p>
<h2 id="heading-what-it-means-to-contribute"><strong>What it means to contribute</strong></h2>
<p>If you’re a new open source contributor, the process can be intimidating. How do you find the right project? What if you don’t know how to code? What if something goes wrong?</p>
<p>Not to worry! There are all sorts of ways to get involved with an open source project, and a few tips will help you get the most out of your experience.</p>
<h3 id="heading-you-dont-have-to-contribute-code"><strong>You don’t have to contribute code</strong></h3>
<p>A common misconception about contributing to open source is that you need to contribute code. In fact, it’s often the other parts of a project that are <a target="_blank" href="https://github.com/blog/2195-the-shape-of-open-source">most neglected or overlooked</a>. You’ll do the project a <em>huge</em> favor by offering to pitch in with these types of contributions!</p>
<p>I’ve been renowned for my work on CocoaPods, but most people don’t know that I actually don’t do any real work on the CocoaPods tool itself. My time on the project is mostly spent doing things like documentation and working on branding.</p>
<p>— <a target="_blank" href="https://github.com/orta">@orta</a>, <a target="_blank" href="https://academy.realm.io/posts/orta-therox-moving-to-oss-by-default/">“Moving to OSS by default”</a></p>
<p>Even if you like to write code, other types of contributions are a great way to get involved with a project and meet other community members. Building those relationships will give you opportunities to work on other parts of the project.</p>
<h3 id="heading-do-you-like-planning-events"><strong>Do you like planning events?</strong></h3>
<ul>
<li><p>Organize workshops or meetups about the project, <a target="_blank" href="https://github.com/nodeschool/organizers/issues/406">like @fzamperin did for NodeSchool</a></p>
</li>
<li><p>Organize the project’s conference (if they have one)</p>
</li>
<li><p>Help community members find the right conferences and submit proposals for speaking</p>
</li>
</ul>
<h3 id="heading-do-you-like-to-design"><strong>Do you like to design?</strong></h3>
<ul>
<li><p>Restructure layouts to improve the project’s usability</p>
</li>
<li><p>Conduct user research to reorganize and refine the project’s navigation or menus, <a target="_blank" href="https://www.drupal.org/community-initiatives/drupal-core/usability">like Drupal suggests</a></p>
</li>
<li><p>Put together a style guide to help the project have a consistent visual design</p>
</li>
<li><p>Create art for t-shirts or a new logo, <a target="_blank" href="https://github.com/hapijs/contrib/issues/68">like hapi.js’s contributors did</a></p>
</li>
</ul>
<h3 id="heading-do-you-like-to-write"><strong>Do you like to write?</strong></h3>
<ul>
<li><p>Write and improve the project’s documentation, <a target="_blank" href="https://github.com/open-sauced/docs/pull/151">like @CBID2 did for OpenSauced’s documentation</a></p>
</li>
<li><p>Curate a folder of examples showing how the project is used</p>
</li>
<li><p>Start a newsletter for the project, or curate highlights from the mailing list, <a target="_blank" href="https://news.opensauced.pizza/about/">like @opensauced did for their product</a></p>
</li>
<li><p>Write tutorials for the project, <a target="_blank" href="https://packaging.python.org/">like PyPA’s contributors did</a></p>
</li>
<li><p>Write a translation for the project’s documentation, <a target="_blank" href="https://github.com/freeCodeCamp/freeCodeCamp/pull/19077">like @frontendwizard did for the instructions for freeCodeCamp’s CSS Flexbox challenge</a></p>
</li>
</ul>
<p>Seriously, [documentation] is mega-important. The documentation so far has been great and has been a killer feature of Babel. There are sections that could certainly use some work and even the addition of a paragraph here or there is extremely appreciated.</p>
<p>— @kittens, <a target="_blank" href="https://github.com/babel/babel/issues/1347">“Call for contributors”</a></p>
<h3 id="heading-do-you-like-organizing"><strong>Do you like organizing?</strong></h3>
<ul>
<li><p>Link to duplicate issues, and suggest new issue labels, to keep things organized</p>
</li>
<li><p>Go through open issues and suggest closing old ones, <a target="_blank" href="https://github.com/eslint/eslint/issues/6765">like @nzakas did for ESLint</a></p>
</li>
<li><p>Ask clarifying questions on recently opened issues to move the discussion forward</p>
</li>
</ul>
<h3 id="heading-do-you-like-to-code"><strong>Do you like to code?</strong></h3>
<ul>
<li><p>Find an open issue to tackle, <a target="_blank" href="https://github.com/Leaflet/Leaflet/issues/4528#issuecomment-216520560">like @dianjin did for Leaflet</a></p>
</li>
<li><p>Ask if you can help write a new feature</p>
</li>
<li><p>Automate project setup</p>
</li>
<li><p>Improve tooling and testing</p>
</li>
</ul>
<h3 id="heading-do-you-like-helping-people"><strong>Do you like helping people?</strong></h3>
<ul>
<li><p>Answer questions about the project on e.g., Stack Overflow (<a target="_blank" href="https://stackoverflow.com/questions/18664074/getting-error-peer-authentication-failed-for-user-postgres-when-trying-to-ge">like this Postgres example</a>) or Reddit</p>
</li>
<li><p>Answer questions for people on open issues</p>
</li>
<li><p>Help moderate the discussion boards or conversation channels</p>
</li>
</ul>
<h3 id="heading-do-you-like-helping-others-code"><strong>Do you like helping others code?</strong></h3>
<ul>
<li><p>Review code on other people’s submissions</p>
</li>
<li><p>Write tutorials for how a project can be used</p>
</li>
<li><p>Offer to mentor another contributor, <a target="_blank" href="https://github.com/rust-lang/book/issues/123#issuecomment-238049666">like @ereichert did for @bronzdoc on Rust</a></p>
</li>
</ul>
<h3 id="heading-you-dont-just-have-to-work-on-software-projects"><strong>You don’t just have to work on software projects!</strong></h3>
<p>While “open source” often refers to software, you can collaborate on just about anything. There are books, recipes, lists, and classes that get developed as open source projects.</p>
<p>For example:</p>
<ul>
<li><p>@sindresorhus curates a <a target="_blank" href="https://github.com/sindresorhus/awesome">list of “awesome” lists</a></p>
</li>
<li><p>@h5bp maintains a <a target="_blank" href="https://github.com/h5bp/Front-end-Developer-Interview-Questions">list of potential interview questions</a> for front-end developer candidates</p>
</li>
<li><p>@stuartlynn and @nicole-a-tesla made a <a target="_blank" href="https://github.com/stuartlynn/puffin_facts">collection of fun facts about puffins</a></p>
</li>
</ul>
<p>Even if you’re a software developer, working on a documentation project can help you get started in open source. It’s often less intimidating to work on projects that don’t involve code, and the process of collaboration will build your confidence and experience.</p>
<h2 id="heading-orienting-yourself-to-a-new-project"><strong>Orienting yourself to a new project</strong></h2>
<p>If you go to an issue tracker and things seem confusing, it’s not just you. These tools require a lot of implicit knowledge, but people can help you navigate it and you can ask them questions.</p>
<p>— @shaunagm, <a target="_blank" href="https://readwrite.com/2014/10/10/open-source-diversity-how-to-contribute/">“How to Contribute to Open Source”</a></p>
<p>For anything more than a typo fix, contributing to open source is like walking up to a group of strangers at a party. If you start talking about llamas, while they were deep in a discussion about goldfish, they’ll probably look at you a little strangely.</p>
<p>Before jumping in blindly with your own suggestions, start by learning how to read the room. Doing so increases the chances that your ideas will be noticed and heard.</p>
<h3 id="heading-anatomy-of-an-open-source-project"><strong>Anatomy of an open source project</strong></h3>
<p>Every open source community is different.</p>
<p>Spending years on one open source project means you’ve gotten to know one open source project. Move to a different project, and you might find the vocabulary, norms, and communication styles are completely different.</p>
<p>That said, many open source projects follow a similar organizational structure. Understanding the different community roles and overall process will help you get quickly oriented to any new project.</p>
<p>A typical open source project has the following types of people:</p>
<ul>
<li><p><strong>Author:</strong> The person/s or organization that created the project</p>
</li>
<li><p><strong>Owner:</strong> The person/s who has administrative ownership over the organization or repository (not always the same as the original author)</p>
</li>
<li><p><strong>Maintainers:</strong> Contributors who are responsible for driving the vision and managing the organizational aspects of the project (They may also be authors or owners of the project.)</p>
</li>
<li><p><strong>Contributors:</strong> Everyone who has contributed something back to the project</p>
</li>
<li><p><strong>Community Members:</strong> People who use the project. They might be active in conversations or express their opinion on the project’s direction</p>
</li>
</ul>
<p>Bigger projects may also have subcommittees or working groups focused on different tasks, such as tooling, triage, community moderation, and event organizing. Look on a project’s website for a “team” page, or in the repository for governance documentation, to find this information.</p>
<p>A project also has documentation. These files are usually listed in the top level of a repository.</p>
<ul>
<li><p><strong>LICENSE:</strong> By definition, every open source project must have an <a target="_blank" href="https://choosealicense.com/">open source license</a>. If the project does not have a license, it is not open source.</p>
</li>
<li><p><strong>README:</strong> The README is the instruction manual that welcomes new community members to the project. It explains why the project is useful and how to get started.</p>
</li>
<li><p><strong>CONTRIBUTING:</strong> Whereas READMEs help people <em>use</em> the project, contributing docs help people <em>contribute</em> to the project. It explains what types of contributions are needed and how the process works. While not every project has a CONTRIBUTING file, its presence signals that this is a welcoming project to contribute to. A good example of an effective Contributing Guide would be the one from <a target="_blank" href="https://www.codecademy.com/resources/docs/contribution-guide">Codecademy’s Docs repository</a>.</p>
</li>
<li><p><strong>CODE_OF_CONDUCT:</strong> The code of conduct sets ground rules for participants’ behavior associated and helps to facilitate a friendly, welcoming environment. While not every project has a CODE_OF_CONDUCT file, its presence signals that this is a welcoming project to contribute to.</p>
</li>
<li><p><strong>Other documentation:</strong> There might be additional documentation, such as tutorials, walkthroughs, or governance policies, especially on bigger projects like <a target="_blank" href="https://docs.astro.build/en/contribute/#contributing-to-docs">Astro Docs</a>.</p>
</li>
</ul>
<p>Finally, open source projects use the following tools to organize discussion. Reading through the archives will give you a good picture of how the community thinks and works.</p>
<ul>
<li><p><strong>Issue tracker:</strong> Where people discuss issues related to the project.</p>
</li>
<li><p><strong>Pull/Merge requests:</strong> Where people discuss and review changes that are in progress, whether it’s to improve a contributor’s line of code, grammar usage, use of images, etc. Some projects, such as <a target="_blank" href="https://github.com/mdn/content/blob/main/.github/workflows/markdown-lint.yml">MDN Web Docs</a>, use certain GitHub Action flows to automate and quicken their code reviews.</p>
</li>
<li><p><strong>Discussion forums or mailing lists:</strong> Some projects may use these channels for conversational topics (for example, <em>“How do I…“</em> or <em>“What do you think about…“</em> instead of bug reports or feature requests). Others use the issue tracker for all conversations. A good example of this would be <a target="_blank" href="https://chaoss.community/news/">CHAOSS’ weekly Newsletter</a></p>
</li>
<li><p><strong>Synchronous chat channel:</strong> Some projects use chat channels (such as Slack or IRC) for casual conversation, collaboration, and quick exchanges. A good example of this would be <a target="_blank" href="http://discord.eddiehub.org/">EddieHub’s Discord community</a>.</p>
</li>
</ul>
<h2 id="heading-finding-a-project-to-contribute-to"><strong>Finding a project to contribute to</strong></h2>
<p>Now that you’ve figured out how open source projects work, it’s time to find a project to contribute to!</p>
<p>If you’ve never contributed to open source before, take some advice from U.S. President John F. Kennedy, who once said:, <em>“Ask not what your country can do for you - ask what you can do for your country.”</em></p>
<p>Ask not what your country can do for you - ask what you can do for your country.</p>
<p>— <a target="_blank" href="https://www.jfklibrary.org/learn/education/teachers/curricular-resources/ask-not-what-your-country-can-do-for-you"><em>John F. Kennedy Library</em></a></p>
<p>Contributing to open source happens at all levels, across projects. You don’t need to overthink what exactly your first contribution will be, or how it will look.</p>
<p>Instead, start by thinking about the projects you already use, or want to use. The projects you’ll actively contribute to are the ones you find yourself coming back to.</p>
<p>Within those projects, whenever you catch yourself thinking that something could be better or different, act on your instinct.</p>
<p>Open source isn’t an exclusive club; it’s made by people just like you. “Open source” is just a fancy term for treating the world’s problems as fixable.</p>
<p>You might scan a README and find a broken link or a typo. Or you’re a new user and you noticed something is broken, or an issue that you think should really be in the documentation. Instead of ignoring it and moving on, or asking someone else to fix it, see whether you can help out by pitching in. That’s what open source is all about!</p>
<blockquote>
<p>According to a study conducted by Igor Steinmacher and other Computer Science researchers, <a target="_blank" href="https://www.igor.pro.br/publica/papers/saner2016.pdf">28% of casual contributions</a> to open source are documentation, such as typo fixes, reformatting, or writing a translation.</p>
</blockquote>
<p>If you’re looking for existing issues you can fix, every open source project has a <code>/contribute</code> page that highlights beginner-friendly issues you can start out with. Navigate to the main page of the repository on GitHub, and add <code>/contribute</code> at the end of the URL (for example <a target="_blank" href="https://github.com/facebook/react/contribute"><code>https://github.com/facebook/react/contribute</code></a>).</p>
<p>You can also use one of the following resources to help you discover and contribute to new projects:</p>
<ul>
<li><p><a target="_blank" href="https://github.com/explore/">GitHub Explore</a></p>
</li>
<li><p><a target="_blank" href="https://opensourcefriday.com/">Open Source Friday</a></p>
</li>
<li><p><a target="_blank" href="https://www.firsttimersonly.com/">First Timers Only</a></p>
</li>
<li><p><a target="_blank" href="https://www.codetriage.com/">CodeTriage</a></p>
</li>
<li><p><a target="_blank" href="https://24pullrequests.com/">24 Pull Requests</a></p>
</li>
<li><p><a target="_blank" href="https://up-for-grabs.net/">Up For Grabs</a></p>
</li>
<li><p><a target="_blank" href="https://firstcontributions.github.io/">First Contributions</a></p>
</li>
<li><p><a target="_blank" href="https://web.archive.org/web/20201111233803/https://www.sourcesort.com/">SourceSort</a></p>
</li>
<li><p><a target="_blank" href="https://opensauced.pizza/">OpenSauced</a></p>
</li>
<li><p><a target="_blank" href="https://gitlab.com/explore/projects/starred">GitLab Explore</a></p>
</li>
</ul>
<h3 id="heading-a-checklist-before-you-contribute"><strong>A checklist before you contribute</strong></h3>
<p>When you’ve found a project you’d like to contribute to, do a quick scan to make sure that the project is suitable for accepting contributions. Otherwise, your hard work may never get a response.</p>
<p>Here’s a handy checklist to evaluate whether a project is good for new contributors.</p>
<p><strong>Meets the definition of open source</strong></p>
<p>Does it have a license? Usually, there is a file called LICENSE in the root of the repository.</p>
<p><strong>Project actively accepts contributions</strong></p>
<p>Look at the commit activity on the main branch. On GitHub, you can see this information in the Insights tab of a repository’s homepage, such as <a target="_blank" href="https://github.com/Virtual-Coffee/virtualcoffee.io/pulse">Virtual-Coffee</a></p>
<p>When was the latest commit?</p>
<p>How many contributors does the project have?</p>
<p>How often do people commit? (On GitHub, you can find this by clicking "Commits" in the top bar.)</p>
<p>Next, look at the project’s issues.</p>
<p>How many open issues are there?</p>
<p>Do maintainers respond quickly to issues when they are opened?</p>
<p>Is there active discussion on the issues?</p>
<p>Are the issues recent?</p>
<p>Are issues getting closed? (On GitHub, click the "closed" tab on the Issues page to see closed issues.)</p>
<p>Now do the same for the project’s pull requests.</p>
<p>How many open pull/merge requests are there?</p>
<p>Do maintainers respond quickly to pull requests when they are opened?</p>
<p>Is there active discussion on the pull requests?</p>
<p>Are the pull requests recent?</p>
<p>How recently were any pull requests merged? (On GitHub, click the "closed" tab on the Pull Requests page to see closed PRs.)</p>
<p><strong>Project is welcoming</strong></p>
<p>A project that is friendly and welcoming signals that they will be receptive to new contributors.</p>
<p>Do the maintainers respond helpfully to questions in issues?</p>
<p>Are people friendly in the issues, discussion forum, and chat (for example, IRC or Slack)?</p>
<p>Do pull requests get reviewed?</p>
<p>Do maintainers thank people for their contributions?</p>
<p>Whenever you see a long thread, spot check responses from core developers coming late in the thread. Are they summarizing constructively, and taking steps to bring the thread to a decision while remaining polite? If you see a lot of flame wars going on, that’s often a sign that energy is going into argument instead of into development.</p>
<p>— @kfogel, <a target="_blank" href="https://producingoss.com/en/evaluating-oss-projects.html"><em>Producing OSS</em></a></p>
<h2 id="heading-how-to-submit-a-contribution"><strong>How to submit a contribution</strong></h2>
<p>You’ve found a project you like, and you’re ready to make a contribution. Finally! Here’s how to get your contribution in the right way.</p>
<h3 id="heading-communicating-effectively"><strong>Communicating effectively</strong></h3>
<p>Whether you’re a one-time contributor or trying to join a community, working with others is one of the most important skills you’ll develop in open source.</p>
<p>[As a new contributor,] I quickly realized I had to ask questions if I wanted to be able to close the issue. I skimmed through the code base. Once I had some sense of what was going on, I asked for more direction. And voilà! I was able to solve the issue after getting all the relevant details I needed.</p>
<p>— @shubheksha, <a target="_blank" href="https://www.freecodecamp.org/news/a-beginners-very-bumpy-journey-through-the-world-of-open-source-4d108d540b39/">A Beginner’s Very Bumpy Journey Through The World of Open Source</a></p>
<p>Before you open an issue or pull request, or ask a question in chat, keep these points in mind to help your ideas come across effectively.</p>
<p><strong>Give context.</strong> Help others get quickly up to speed. If you’re running into an error, explain what you’re trying to do and how to reproduce it. If you’re suggesting a new idea, explain why you think it’d be useful to the project (not just to you!).</p>
<blockquote>
<p>😇 <em>“X doesn’t happen when I do Y”</em></p>
<p>😢 <em>“X is broken! Please fix it.”</em></p>
</blockquote>
<p><strong>Do your homework beforehand.</strong> It’s OK not to know things, but show that you tried. Before asking for help, be sure to check a project’s README, documentation, issues (open or closed), mailing list, and search the internet for an answer. People will appreciate it when you demonstrate that you’re trying to learn.</p>
<blockquote>
<p>😇 <em>“I’m not sure how to implement X. I checked the help docs and didn’t find any mentions.”</em></p>
<p>😢 <em>“How do I X?”</em></p>
</blockquote>
<p><strong>Keep requests short and direct.</strong> Much like sending an email, every contribution, no matter how simple or helpful, requires someone else’s review. Many projects have more incoming requests than people available to help. Be concise. You will increase the chance that someone will be able to help you.</p>
<blockquote>
<p>😇 <em>“I’d like to write an API tutorial.”</em></p>
<p>😢 <em>“I was driving down the highway the other day and stopped for gas, and then I had this amazing idea for something we should be doing, but before I explain that, let me show you…“</em></p>
</blockquote>
<p><strong>Keep all communication public.</strong> Although it’s tempting, don’t reach out to maintainers privately unless you need to share sensitive information (such as a security issue or serious conduct violation). When you keep the conversation public, more people can learn and benefit from your exchange. Discussions can be, in themselves, contributions.</p>
<blockquote>
<p>😇 <em>(as a comment) “@-maintainer Hi there! How should we proceed on this PR?”</em></p>
<p>😢 <em>(as an email) “Hey there, sorry to bother you over email, but I was wondering if you’ve had a chance to review my PR”</em></p>
</blockquote>
<p><strong>It’s okay to ask questions (but be patient!).</strong> Everybody was new to the project at some point, and even experienced contributors need to get up to speed when they look at a new project. By the same token, even longtime maintainers are not always familiar with every part of the project. Show them the same patience that you’d want them to show to you.</p>
<blockquote>
<p>😇 <em>“Thanks for looking into this error. I followed your suggestions. Here’s the output.”</em></p>
<p>😢 <em>“Why can’t you fix my problem? Isn’t this your project?”</em></p>
</blockquote>
<p><strong>Respect community decisions.</strong> Your ideas may differ from the community’s priorities or vision. They may offer feedback or decide not to pursue your idea. While you should discuss and look for compromise, maintainers have to live with your decision longer than you will. If you disagree with their direction, you can always work on your own fork or start your own project.</p>
<blockquote>
<p>😇 <em>“I’m disappointed you can’t support my use case, but as you’ve explained it only affects a minor portion of users, I understand why. Thanks for listening.”</em></p>
<p>😢 <em>“Why won’t you support my use case? This is unacceptable!”</em></p>
</blockquote>
<p><strong>Above all, keep it classy.</strong> Open source is made up of collaborators from all over the world. Context gets lost across languages, cultures, geographies, and time zones. In addition, written communication makes it harder to convey a tone or mood. Assume good intentions in these conversations. It’s fine to politely push back on an idea, ask for more context, or further clarify your position. Just try to leave the internet a better place than when you found it.</p>
<h3 id="heading-gathering-context"><strong>Gathering context</strong></h3>
<p>Before doing anything, do a quick check to make sure your idea hasn’t been discussed elsewhere. Skim the project’s README, issues (open and closed), mailing list, and Stack Overflow. You don’t have to spend hours going through everything, but a quick search for a few key terms goes a long way.</p>
<p>If you can’t find your idea elsewhere, you’re ready to make a move. If the project is on GitHub, you’ll likely communicate by doing the following:</p>
<ul>
<li><p><strong>Raising an Issue:</strong> These are like starting a conversation or discussion</p>
</li>
<li><p><strong>Pull requests</strong> are for starting work on a solution.</p>
</li>
<li><p><strong>Communication Channels:</strong> If the project has a designated Discord, IRC, or Slack channel, consider starting a conversation or asking for clarification about your contribution.</p>
</li>
</ul>
<p>Before you open an issue or pull request, check the project’s contributing docs (usually a file called CONTRIBUTING, or in the README), to see whether you need to include anything specific. For example, they may ask that you follow a template, or require that you use tests.</p>
<p>If you want to make a substantial contribution, open an issue to ask before working on it. It’s helpful to watch the project for a while (on GitHub, <a target="_blank" href="https://help.github.com/articles/watching-repositories/">you can click “Watch”</a> to be notified of all conversations), and get to know community members, before doing work that might not get accepted.</p>
<p>You’ll learn <em>a lot</em> from taking a single project you actively use, “watching” it on GitHub and reading every issue and PR.</p>
<p>— @gaearon <a target="_blank" href="https://twitter.com/dan_abramov/status/819555257055322112">on joining projects</a></p>
<h3 id="heading-opening-an-issue"><strong>Opening an issue</strong></h3>
<p>You should usually open an issue in the following situations:</p>
<ul>
<li><p>Report an error you can’t solve yourself</p>
</li>
<li><p>Discuss a high-level topic or idea (for example, community, vision or policies)</p>
</li>
<li><p>Propose a new feature or other project idea</p>
</li>
</ul>
<p>Tips for communicating on issues:</p>
<ul>
<li><p><strong>If you see an open issue that you want to tackle,</strong> comment on the issue to let people know you’re on it. That way, people are less likely to duplicate your work.</p>
</li>
<li><p><strong>If an issue was opened a while ago,</strong> it’s possible that it’s being addressed somewhere else, or has already been resolved, so comment to ask for confirmation before starting work.</p>
</li>
<li><p><strong>If you opened an issue, but figured out the answer later on your own,</strong> comment on the issue to let people know, then close the issue. Even documenting that outcome is a contribution to the project.</p>
</li>
</ul>
<h3 id="heading-opening-a-pull-request"><strong>Opening a pull request</strong></h3>
<p>You should usually open a pull request in the following situations:</p>
<ul>
<li><p>Submit small fixes such as a typo, a broken link or an obvious error.</p>
</li>
<li><p>Start work on a contribution that was already asked for, or that you’ve already discussed, in an issue.</p>
</li>
</ul>
<p>A pull request doesn’t have to represent finished work. It’s usually better to open a pull request early on, so others can watch or give feedback on your progress. Just open it as a “draft” or mark as a “WIP” (Work in Progress) in the subject line or “Notes to Reviewers” sections if provided (or you can just create your own. Like this: <code>**## Notes to Reviewer**</code>). You can always add more commits later.</p>
<p>If the project is on GitHub, here’s how to submit a pull request:</p>
<ul>
<li><p><a target="_blank" href="https://guides.github.com/activities/forking/"><strong>Fork the repository</strong></a> and clone it locally. Connect your local to the original “upstream” repository by adding it as a remote. Pull in changes from “upstream” often so that you stay up to date so that when you submit your pull request, merge conflicts will be less likely. (See more detailed instructions <a target="_blank" href="https://help.github.com/articles/syncing-a-fork/">here</a>.)</p>
</li>
<li><p><a target="_blank" href="https://guides.github.com/introduction/flow/"><strong>Create a branch</strong></a> for your edits.</p>
</li>
<li><p><strong>Reference any relevant issues</strong> or supporting documentation in your PR (for example, “Closes #37.”)</p>
</li>
<li><p><strong>Include screenshots of the before and after</strong> if your changes include differences in HTML/CSS. Drag and drop the images into the body of your pull request.</p>
</li>
<li><p><strong>Test your changes!</strong> Run your changes against any existing tests if they exist and create new ones when needed. It’s important to make sure your changes don’t break the existing project.</p>
</li>
<li><p><strong>Contribute in the style of the project</strong> to the best of your abilities. This may mean using indents, semi-colons or comments differently than you would in your own repository, but makes it easier for the maintainer to merge, others to understand and maintain in the future.</p>
</li>
</ul>
<p>If this is your first pull request, check out <a target="_blank" href="http://makeapullrequest.com/">Make a Pull Request</a>, which @kentcdodds created as a walkthrough video tutorial. You can also practice making a pull request in the <a target="_blank" href="https://github.com/Roshanjossey/first-contributions">First Contributions</a> repository, created by @Roshanjossey.</p>
<h2 id="heading-what-happens-after-you-submit-your-contribution"><strong>What happens after you submit your contribution</strong></h2>
<p>Before we start celebrating, one of the following will happen after you submit your contribution:</p>
<h3 id="heading-you-dont-get-a-response"><strong>😭 You don’t get a response</strong></h3>
<p>Hopefully you <a target="_blank" href="https://opensource.guide/how-to-contribute/#a-checklist-before-you-contribute">checked the project for signs of activity</a> before making a contribution. Even on an active project, however, it’s possible that your contribution won’t get a response.</p>
<p>If you haven’t gotten a response in over a week, it’s fair to politely respond in that same thread, asking someone for a review. If you know the name of the right person to review your contribution, you can @-mention them in that thread.</p>
<p><strong>Don’t reach out to that person privately</strong>; remember that public communication is vital to open source projects.</p>
<p>If you give a polite reminder and still do not receive a response, it’s possible that nobody will ever respond. It’s not a great feeling, but don’t let that discourage you! 😄 There are many possible reasons why you didn’t get a response, including personal circumstances that may be out of your control. Try to find another project or way to contribute. If anything, this is a good reason not to invest too much time in making a contribution before other community members are engaged and responsive.</p>
<h3 id="heading-someone-requests-changes-to-your-contribution"><strong>🚧 Someone requests changes to your contribution</strong></h3>
<p>It’s common that you’ll be asked to make changes to your contribution, whether that’s feedback on the scope of your idea, or changes to your code.</p>
<p>When someone requests changes, be responsive. They’ve taken the time to review your contribution. Opening a PR and walking away is bad form. If you don’t know how to make changes, research the problem, then ask for help if you need it. A good example of this would be <a target="_blank" href="https://github.com/Codecademy/docs/pull/3239#pullrequestreview-1628036286">the feedback that another contributor has given to @a-m-lamb on their pull request to Codecademy’s Docs</a>.</p>
<p>If you don’t have time to work on the issue anymore due to reasons such as the conversation has been going on for months, and your circumstances have changed or you’re unable to find a solution, let the maintainer know so that they can open the issue for someone else, like <a target="_blank" href="https://github.com/open-sauced/app/issues/1656#issuecomment-1729353346">@RitaDee did for an issue at OpenSauced’s app repository</a>.</p>
<h3 id="heading-your-contribution-doesnt-get-accepted"><strong>👎 Your contribution doesn’t get accepted</strong></h3>
<p>Your contribution may or may not be accepted in the end. Hopefully you didn’t put too much work into it already. If you’re not sure why it wasn’t accepted, it’s perfectly reasonable to ask the maintainer for feedback and clarification. Ultimately, however, you’ll need to respect that this is their decision. Don’t argue or get hostile. You’re always welcome to fork and work on your own version if you disagree!</p>
<h3 id="heading-your-contribution-gets-accepted"><strong>🎉 Your contribution gets accepted</strong></h3>
<p>Hooray! You’ve successfully made an open source contribution!</p>
<h2 id="heading-you-did-it"><strong>You did it! 🎉</strong></h2>
<p>Whether you just made your first open source contribution, or you’re looking for new ways to contribute, we hope you’re inspired to take action. Even if your contribution wasn’t accepted, don’t forget to say thanks when a maintainer put effort into helping you. Open source is made by people like you: one issue, pull request, comment, or high-five at a time.</p>
<p><a target="_blank" href="https://opensource.guide/"><strong>Back to all guides</strong></a></p>
<h2 id="heading-related-guides"><strong>Related Guides</strong></h2>
<p><img src="https://opensource.guide/assets/images/illos/beginners.svg" alt="Starting an Open Source Project illustration" /></p>
<h3 id="heading-starting-an-open-source-projecthttpsopensourceguidestarting-a-project"><a target="_blank" href="https://opensource.guide/starting-a-project/"><strong>Starting an Open Source Project</strong></a></h3>
<p><a target="_blank" href="https://opensource.guide/starting-a-project/">Learn more about the world of open source and get ready to launch your own project.</a></p>
<p><img src="https://opensource.guide/assets/images/illos/building.svg" alt="Building Welcoming Communities illustration" /></p>
<h3 id="heading-building-welcoming-communitieshttpsopensourceguidebuilding-community"><a target="_blank" href="https://opensource.guide/building-community/"><strong>Building Welcoming Communities</strong></a></h3>
<p><a target="_blank" href="https://opensource.guide/building-community/">Building a community that encourages people to use, contribute to, and evangelize your project.</a></p>
<p>Scroll to Top</p>
<p><img src="https://opensource.guide/assets/images/illos/squirrel.svg" alt="squirrel illustration" /></p>
<h3 id="heading-contribute"><strong>Contribute</strong></h3>
<p>Want to make a suggestion? This content is open source. Help us improve it.</p>
<p><img src="https://opensource.guide/assets/images/illos/bird.svg" alt="bird illustration" /></p>
<h3 id="heading-stay-in-touch"><strong>Stay in touch</strong></h3>
<p>Be the first to hear about GitHub's latest open source tips and resources.</p>
<p><a target="_blank" href="https://opensource.guide/notices/">fine print</a></p>
<p>with by and <a target="_blank" href="https://github.com/github/opensource.guide/graphs/contributors">friends</a></p>
]]></content:encoded></item></channel></rss>