6 min read
What open source is and how to contribute
A guide for students: what open source means, how a pull request works from fork to merge, and why Hacktoberfest stopped counting pull requests in 2026.
TL;DR
- Open source means the license lets anyone use, study, change and share the code. A public repo with no license doesn’t count.
- A contribution works the same way on most GitHub projects: find an issue, fork, branch, open a pull request and answer the review.
- You don’t have to write code. Docs, translations, bug reports and triage all help.
- Hacktoberfest stopped counting pull requests in 2026, so “four PRs for a T-shirt” advice is out of date.

On this page
You can make your first open source contribution this week, and it can be a one-line docs fix. If you have run git commit or npm install, you already depend on open source: Git, Node.js and React are public code that anyone can read and change.
What open source means
Open source software is published with its source code under a license that lets anyone use, study, change and share it. The license is what counts. A public GitHub repo with no license is still under exclusive copyright: you can view and fork it on GitHub, but that gives you no right to use or modify the code.
The Open Source Initiative publishes the Open Source Definition, a list of ten criteria. Two of them catch people out: a license cannot restrict who uses the software or what field they use it in. So “free for non-commercial use” is not open source, even when the code is public.
You will also hear “free software”. That term comes from the Free Software Foundation, whose definition lists four freedoms: to run a program, to study and change it, to share copies, and to share your changed versions. The “free” is about liberty, as in free speech, and has nothing to do with price.
Licenses fall into two broad groups:
| Type | Examples | What it asks of you | Used by |
|---|---|---|---|
| Permissive | MIT, Apache-2.0, BSD | Keep the copyright and license notice | React (MIT), Kubernetes (Apache-2.0) |
| Copyleft | GPL, AGPL, MPL | Share your changes under the same license when you distribute the software | Linux (GPL-2.0), Firefox (MPL-2.0) |
Why contribute
A merged pull request is public proof of work. Anyone can read your code, the review comments, and what you changed after feedback. A line on a resume can’t show that.
You also practice what coursework skips: reading a codebase you didn’t write, running someone else’s test suite, and taking review from a stranger. And if a library you use has a bug that annoys you, you can fix it yourself.
You don’t have to write code
We would take a bug report with exact reproduction steps over a drive-by refactor every time. Projects also need:
- Docs fixes, especially from someone who just got confused
- Translations
- A failing test that proves a reported bug
- Issue triage, like confirming a bug still happens
How a contribution works
The flow is the same on almost every GitHub project. You copy the repo to your account, change your copy, and ask the project to pull your change in.
Pick a project you use
You already know what it does. Check that it’s alive: recent commits, and pull requests that get replies.
Find an issue
Filter by the
good first issuelabel. Skip anything already assigned or linked to an open pull request.Read the rules
Most projects have a
CONTRIBUTING.mdthat covers setup, tests and how to claim work. Read it before you touch code.Claim the issue
Comment that you’re taking it, so two people don’t do the same work.
Fork, clone and branch
Click Fork on GitHub, then:
Terminal git clone https://github.com/<you>/<project>.git cd <project> git remote add upstream https://github.com/<owner>/<project>.git git switch -c fix/123-install-commandMake the change and run the tests
Change only what the issue asks for. Then commit and push to your fork:
Terminal git add README.md git commit -m "docs: fix install command" git push -u origin HEADOpen the pull request
GitHub shows a Compare & pull request banner on the original repo. Say what changed and why, add a screenshot for visual changes, and write
Closes #123so the issue closes on merge.Answer the review
Maintainers will ask for changes, and that’s normal. Push fixes to the same branch and the pull request updates on its own.
What Hacktoberfest is, and what changed in 2026
Hacktoberfest is a month-long open source event held every October. DigitalOcean ran it from 2014 through 2025, and for most of that time the deal was simple: get pull requests accepted in October and earn a T-shirt.
The shirt caused the event’s worst year. In 2020, a viral YouTube video showed people how to submit low-effort pull requests to reach the four needed for a shirt, and thousands copied it. Maintainers were buried in junk. Within days the organizers made the event opt-in: a repo had to add the hacktoberfest topic, and a pull request counted only once a maintainer accepted it.
In 2026 the rule went away entirely. The official FAQ says “pull requests and merge requests will no longer count toward Hacktoberfest rewards”. MLH and DEV now manage the event in partnership with DigitalOcean, and MLH’s announcement gives the reason: AI tools make low-effort pull requests easy to generate, and maintainers were paying for it.
The 2026 edition ran on virtual stickers, earned by attending local Fests, joining livestreams and Global Hack Week, and entering DEV Challenges. Three stickers got you a sticker pack in the mail. Its theme was “AI belongs to everyone”, with a focus on open-weight models.
Programs that pay you to contribute
Once you have a few merged pull requests, these programs are worth an application. Check each site for current dates and terms.
| Program | Who it’s for | What you get |
|---|---|---|
| Google Summer of Code | Students and open source beginners, 18 or older | A 90, 175 or 350 hour project with a mentor. Stipends run from $750 to $6,600 by project size and country. India’s are $750, $1,500 and $3,000. |
| LFX Mentorship | People who want to work under a project mentor | A mentored term on a Linux Foundation program. Check each listing for its length and stipend. |
| Outreachy | People who face under-representation, systemic bias or discrimination in tech where they live | A three-month remote internship with a $7,000 stipend, starting in May or December |
How not to get your pull request closed
- Don’t skip the claim. Work that duplicates an open pull request gets closed however good it is.
- Keep one issue to one pull request. A fix bundled with a reformatted file is hard to review.
- Don’t open a pull request just to have one. Adding your name to a README or rewording a sentence that was fine is how Hacktoberfest got its spam problem.
- Read the project’s AI policy. In an October 2026 Linux Foundation study, an estimated 25% of incoming pull requests were low quality, and some projects have responded with bans: Zig bans LLM use across its repos and chat. Where AI tools are allowed, you still own the result. If you can’t explain every line of the diff, don’t open it.
- Give maintainers time. Many are volunteers, so wait a few days before you follow up, and follow up once.
Start with drift-ui
drift-ui is an MIT-licensed set of React components that shadcn/ui doesn’t ship, and it was built to take first-time contributors. The smallest contribution is a new example on a component’s docs page, which means one file and one list entry.
Pick from the good first issues, follow CONTRIBUTING.md, and ask on Discord if you get stuck. A maintainer reads every pull request, and once yours merges, your handle goes on the contributors page.