Open-source project
firstcontributions/first-contributions avatar
firstcontributions/first-contributions

first-contributions: a fork, one line in a list, and 83 translations above the instructions

GitHub describes it as 🚀✨ Help beginners to contribute to open source projects. The metadata lists the MIT license. This article stays within the project description and details documented in the GitHub repository README.

56,159 stars110,222 forksUnknownMIT

At a glance

What is it?
The repository teaches a git workflow rather than a codebase, which is the right design for the stated goal. The parts that will stop a beginner are all in the details: the clone step assumes an SSH key you may not have, and the language links sit above the actual instructions.
Who is it for?
This is the right repository to send someone who wants to make their first open source contribution, and the reason is the design rather than the content. It has no code to understand, so the only thing being taught is the sequence of git operations, and every step is a real command you would use on a real project.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The clone step assumes you already have an SSH key

Step two is where a genuine beginner gets stuck, and the reason is buried in the wording. You are told to go to your GitHub account, open the forked repository, click the code button, then click the SSH tab, then click the copy url to clipboard icon. What comes back is an SSH remote, and the example makes that explicit:

bash
git clone [email protected]:this-is-you/first-contributions.git

There is no mention of the HTTPS tab, no instruction to add a remote by hand, and no step for generating a key or adding one to your account. The git prerequisite is handled, with a link to GitHub's own setup documentation, but the authentication prerequisite is not.

The consequence is specific. A user with an SSH key configured completes this in ten seconds. A user without one gets a permission error on the first push rather than on the clone, and the visible text offers them nothing, because the only error recovery documented anywhere in the file is for a git version problem. For a tutorial aimed at people who have never contributed before, that is the most likely dead end and the least likely to be anticipated by whoever is running the session.

Eighty-three language badges come before the instructions

Before the `# First Contributions` heading there are 83 links to translated copies, one per language file, plus a link to a translations index. The row is rendered as keyboard-key badges rather than as a readable list of languages, and the file names use locale codes such as `README.pt_br.md` and `README.pt-pt.md` for two separate Portuguese versions, `README.sr-Cyrl.md` and `README.sr-Latn.md` for Serbian in two scripts, and `README.zh-cn.md` and `README.zh-tw.md` for Simplified and Traditional Chinese.

Some of the codes are not what a reader would guess from the language name. There is an English pirate variant, `README.en-pirate.md`, alongside the main file, and several codes that look like project shorthand rather than language identifiers, among them `afk`, `igb`, `mx` and `hb`.

The consequence is twofold. Structurally, a row of 83 badges above the content puts the actual instructions far below the fold on a phone or a small terminal window, and a non-English reader has to recognise a locale code rather than read a language name to find their file. The separate translations index is linked at the very top as the intended way in, which is the right fix, but the badge row is what most people see first and the index is one more click away.

Add your name anywhere but the top or the bottom

The exercise itself is one sentence. Open `Contributors.md` in a text editor, add your name, and do not add it at the beginning or the end of the file. Put it anywhere in between. Then save it.

That instruction is doing more work than it looks. Contributors.md is a single shared list that hundreds of people append to, and every insertion near the top or the bottom guarantees a conflict against every other insertion in the same place. Inserting in the middle of an alphabetical list, which is what the file is, means concurrent edits land in different places and merge without anyone resolving a conflict. The README states the rule without explaining it, which is arguably the right call for a beginner tutorial, since an explanation invites the question of why and a rule is easier to follow.

The rest of the commit sequence is the ordinary one, and each step names the file explicitly. You check `git status` to see the changes, then `git add Contributors.md`, then `git commit -m "Add your-name to Contributors list"`, then `git push -u origin your-branch-name`. The consequence is that a first-time user performs a complete fork, branch, stage, commit and push cycle in one sitting, which is the actual objective, and the commit message template tells them what a good one looks like before they write their own.

The only version accommodation is a deprecated command

The branch step prefers the modern form:

bash
git switch -c your-new-branch-name

and then hides an alternative in a collapsed section for people who see an error. The error text is quoted exactly, that `switch` is not a git command, and the diagnosis is given: you are likely on an older version of git, in which case use `git checkout` instead.

bash
git checkout -b your-new-branch-name

Two observations. Quoting the literal error string is a good decision, because a beginner searching for help will paste exactly what they saw, and the collapsed format means the alternative does not distract anyone whose git is current. But the remedy is to fall back to a command the project has moved away from, rather than to say which git version introduced `switch` or to suggest upgrading, so a user on an old git stays on the deprecated path indefinitely.

The consequence is that the tutorial's minimum git version is implied by an error message rather than stated as a requirement, and the same file handles a missing SSH key with no recovery at all. Error recovery here is thorough for version problems and absent for authentication problems, which is close to the inverse of where beginners actually get stuck.

Six files, no releases, and a badge pointing at a personal account

The repository is six top-level entries: `.github/`, `.gitignore`, `Contributors.md`, `LICENSE`, `README.md` and `docs/`. There is no source directory, no build, no test suite and no configuration. `docs/` holds the translations. It is MIT licensed, the last push was 2026-09-29, and no GitHub release has ever been published.

The badges at the top are worth reading closely. One links to a separate open source badges repository, one to the MIT licence text on opensource.org, and one to CodeTriage, where the path in the link points at a repository under an individual account rather than under the `firstcontributions` organisation that owns this one.

The consequence is that this is a stable artefact rather than software. There is nothing to version, nothing to upgrade and nothing that can break, which is exactly right for a teaching repository and exactly wrong to treat as a dependency. The CodeTriage path is a small inconsistency, and the kind that matters only if you assume every link in a well-maintained repository resolves to the organisation that owns it.

What the exercise teaches is the workflow, not the code

The stated purpose is to simplify and guide the way beginners make their first contribution, and the design follows from that. There is no bug to find and no feature to build, so the only variable is whether the person can get a change from their laptop onto a remote branch. Every heading in the file is one of those steps: fork this repository, clone the repository, create a branch, make necessary changes and commit those changes, push changes to GitHub.

The examples are concrete where it helps. The clone example uses `this-is-you` as a placeholder username, and the branch example is `git switch -c add-alonzo-church`, a branch name that looks like a real branch rather than `my-branch`. The push step goes back to a generic `your-branch-name`, which is a small inconsistency, and the push section ends with a collapsed section for push errors, mirroring the one for the branch step.

For anyone who already knows git, none of this is new, and the article is not claiming otherwise. The value is in the shape: a complete, real, end-to-end contribution in a repository with no code to understand, which means the practice is genuine even though the diff is one line. That is a better first exercise than a toy project, because the commands are the ones a real contribution uses.

There is a GUI path, and it is a single anchor

Two alternatives are offered and both are one link. Near the top, the file says that if you are not comfortable with the command line there are tutorials using GUI tools, pointing at an anchor in the same document. And the translations row links a separate index as the way to read this in other languages.

The command-line route is the main one, written out in full with every command, and the GUI route is referenced rather than reproduced. That is a defensible choice for a repository whose contributors are expected to learn git, but it does mean the two paths are not equivalent in depth. Someone who needs the GUI version gets whatever that section contains, and the visible text gives no indication of whether it covers the full sequence or only the first few steps.

The consequence is that the file has two audiences of very different sizes, one served in detail and one by reference, and the smaller audience is the one that cannot use a command line at all. For a workshop, that asymmetry is worth checking before you assume everyone can follow along, particularly since the authentication step in the command-line path is the part most likely to need a human helping anyway.

Editorial conclusion

This is the right repository to send someone who wants to make their first open source contribution, and the reason is the design rather than the content. It has no code to understand, so the only thing being taught is the sequence of git operations, and every step is a real command you would use on a real project. The translation coverage is the strongest thing about it, with 83 maintained versions and a translation index linked as the intended entry point. Two limits are worth stating. The clone instructions go through the SSH tab of the code menu and never mention HTTPS, so the first genuinely blocking step for a new user is authentication, and the file's only documented fallback covers an old git rather than a missing key. And the 83 language badges come before the heading, which puts the instructions below the fold on a small screen. Before you point a workshop at it, check three things: whether your learners have SSH keys configured, whether you will need a local fork of the README to reorder the translation row, and what you will tell them about pull request review, which the repository does not cover in the visible text.

Frequently asked questions

What is a good first issue?

This repository does not use issues as the entry point. It teaches the workflow instead: fork the repository, clone your fork, create a branch, add your name to `Contributors.md` somewhere in the middle of the file rather than at the top or bottom, then add, commit and push, and open a pull request. The exercise is a single line edit, chosen so nothing else can get in the way.

What is an open source contribution?

As this repository defines it, a contribution is the sequence of git operations rather than a piece of work. You fork the project, clone your fork over SSH, branch with `git switch -c`, edit a file, `git add`, `git commit`, `git push -u origin your-branch-name`, and open a pull request. The commands used are the same ones you would use on a real project.

What is my first open source contribution?

If you have never contributed before, this repository walks you through one end to end: add your name to the shared `Contributors.md` list in the middle of the file so your edit does not conflict with everyone else's, commit it, push the branch and open a pull request. It also links tutorials using GUI tools for people who are not comfortable with the command line.

How do I write open source contributions in a resume?

The documentation says nothing about CVs or portfolios, and it would be a strange place to look. What the repository does produce is a merged pull request against a real project with a real licence and a long list of prior contributors, which is the artifact a resume line would refer to. The mechanics of describing it are left to you.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/firstcontributions-first-contributions.svg)](https://hysenlabs.com/projects/firstcontributions-first-contributions)