Resources

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.
A one-line README fix shown as a diff, with a blue card labelled Merged drifting onto it, beside the headline Your first pull request can be one line.
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:

TypeExamplesWhat it asks of youUsed by
PermissiveMIT, Apache-2.0, BSDKeep the copyright and license noticeReact (MIT), Kubernetes (Apache-2.0)
CopyleftGPL, AGPL, MPLShare your changes under the same license when you distribute the softwareLinux (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.

  1. Pick a project you use

    You already know what it does. Check that it’s alive: recent commits, and pull requests that get replies.

  2. Find an issue

    Filter by the good first issue label. Skip anything already assigned or linked to an open pull request.

  3. Read the rules

    Most projects have a CONTRIBUTING.md that covers setup, tests and how to claim work. Read it before you touch code.

  4. Claim the issue

    Comment that you’re taking it, so two people don’t do the same work.

  5. 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-command
  6. Make 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 HEAD
  7. Open 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 #123 so the issue closes on merge.

  8. 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.

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.