A pull request opened at 10:00 with a test plan, a changeset bot reply that is not a review, and no reply from a person by 18:00. Beside it, the share still waiting for a first response: 31.64% after an 8-hour workday, 19.84% after a day, 6.99% after a week.

How to contribute to open source frontend projects and get your first pull request merged

Most first pull requests stall for reasons written down in a file the author never opened. Here is how to read that file, size the change to it, and judge the silence that follows.

How do you contribute to open source frontend projects and get merged?#

Pick a library you already use, treat its contributing guide as the acceptance criteria, and send one small change with a reproduction and a test plan. Each of those three parts maps to a line a maintainer wrote. For example, Svelte's contributing guide, read in October 2026, says "Small pull requests are much easier to review" and more likely to get merged. Also, Vue's contributing guide wants a fix where "the bug has a proper reproduction either from a related open issue, or is included in the PR itself".

  1. Pick a library you already use

    You can only tell a real bug from expected behaviour in software you run.

  2. Treat its contributing guide as the acceptance criteria

    Each guide states its own terms, so read the one for the project you picked.

  3. Send one small change with a reproduction and a test plan

    Svelte's guide says small pull requests are much easier to review.

In short, the git commands are the easy part. The hard part is choosing a change the project wants, then making it easy to check.

What is a merged upstream fix worth to you and your team?#

A fix merged upstream ships in the library's next release, so your team deletes its local workaround instead of carrying a patch through every upgrade. React's contributing guide says "We should be able to release a new minor version from the tip of main at any time". So a merged fix is never far from a release your app can install.

The same holds for products, not only libraries. For example, the GitLab frontend guide explains how its Vue.js frontend sits on top of Ruby on Rails. As a result, someone who uses GitLab daily can find the component behind a bug and send the fix. When you report the work upward, the outcome is plain: one workaround removed, and one fewer patch to rebase.

Which project and which first contribution should you pick?#

Start with a library already in your package.json, and make the first change a documentation fix, a reproduction or a test before a feature. You can only tell a real bug from expected behaviour in software you run. Quansight Labs argued in March 2026 that "If you contribute to a project you already use and are familiar with, you will get more out of it."

DiagramChoosing the first project and the first kind of change. Source: Quansight Labs, 5 March 2026; GitHub label docs and MDN Web Docs, read 6 October 2026.

Labels still help once you have chosen. GitHub's label docs describe the good first issue label, which GitHub uses to surface approachable issues. Also, MDN Web Docs, updated 12 September 2026, lists good first issues on a contributors task board. Finally, the Open Source Guides note that you do not have to contribute code at all.

What do React, Vue, Svelte, MDN and GitLab ask for before they merge?#

Each guide states its own terms: React asks for a signed CLA, Vue asks you to tick allow edits from maintainers, and Svelte asks for a test plan. However, the details differ enough that one checklist cannot serve every project. Here is what each guide puts in writing.

What five contributing guides ask for before they merge. Source: the React, Vue, Svelte, MDN Web Docs and GitLab contributing guides, read 6 October 2026.

ProjectWhat the guide asks forBefore a big change
ReactA reduced test case, passing yarn test, yarn lint, a signed Contributor License AgreementClaim an issue; a claim idle over two weeks may be taken over
VueA clearly identified bug with a reproduction, a test, "Allow edits from maintainers" tickedAn RFC for any non-trivial API addition
SvelteOne thing per pull request, a test plan, pnpm lint and pnpm test passingAn RFC for a large new feature
MDN Web DocsA GitHub account, a comment on the issue you pickAsk questions on the issue
GitLabA tested change that does not lower stability, even as a small first stepFollow the frontend guide's architecture

Source: the React, Vue, Svelte, MDN Web Docs and GitLab contributing guides, read 6 October 2026.

Since the terms differ, read the guide of the project you picked. A summary of all five is no substitute.

How do you turn a frontend bug into a reproduction a maintainer can run?#

Cut the bug down to the smallest component and the fewest steps that still fail, because React calls a reduced test case the best way to get a bug fixed. In its words, "The best way to get your bug fixed is to provide a reduced test case." So remove your router, your store and your design system one at a time. Then stop when removing one more thing makes the bug go away.

  1. Remove your router

    Check the bug still fails without it.

  2. Remove your store

    Check again.

  3. Remove your design system

    Check again.

  4. Stop

    Stop when removing one more thing makes the bug go away. What is left is the reproduction.

What is left is the reproduction. Svelte's guide asks for steps anyone can "follow these steps to reproduce your issue with minimal effort", and it suggests the REPL. Meanwhile, Vue's guide prefers a live demo. In practice, ten lines of markup in the project's playground beat a link to your private app. If isolating the component is the hard part, a Storybook story is a good bench to cut it down on.

Which pages do you work from, and in what order?#

Work from three pages in order: the GitHub flow for the fork and branch, the project's own CONTRIBUTING file for setup and tests, then the changeset guide.

  1. GitHub's contributing to a project guide: the fork, clone, branch, commit, push and pull request steps.
  2. Svelte's CONTRIBUTING file: pnpm install, one test suite with pnpm test, and what a test plan holds.
  3. The Changesets guide to adding a changeset: what a changeset records, and the pnpm changeset prompt.
DiagramThe three pages to work from, in build order. Source: GitHub docs, Svelte CONTRIBUTING and Changesets docs, read 6 October 2026.

Swap step two for your own project's file. The order stays the same, because setup and tests come from the project and nowhere else.

What does the smallest contribution look like as commands?#

One contribution is a short loop of commands: clone your fork, branch, install, run the failing test, fix it, add a changeset, commit and push. Here it is against a Svelte fork, after you click Fork on GitHub.

bash
# 1. Clone your fork and create a branch (GitHub docs)
git clone https://github.com/YOUR-USERNAME/svelte
cd svelte
git branch fix-a11y-alt-text
git checkout fix-a11y-alt-text

# 2. Install and run one test suite (Svelte CONTRIBUTING)
pnpm install
pnpm test validator -t a11y-alt-text

# 3. After the fix, record the change for the changelog (Changesets docs)
pnpm changeset

# 4. Commit and push the branch to your fork
git add .
git commit -m "fix: report missing alt text on images with spread props"
git push -u origin fix-a11y-alt-text

# 5. On GitHub, use the banner on your fork to open the pull request

Then paste the test command and its output into the description. That is your test plan.

How small should the pull request be, and what goes in its description?#

Keep one change per pull request with a test plan, because 52.62% of pull requests in one study closed within a day of their first response (Hasan et al., arXiv, accessed October 2026). So a small change is one a maintainer can review and finish in one sitting.

Show data table
Most pull requests close soon after someone first replies. Source: Hasan et al., arXiv, 17 April 2023.
Item Value
closed within one day of the first response 52.62
closed within one week of the first response 76.96
took more than one week after the first response 23.04

Once someone replies, most pull requests close within a day.

Closing after the first reply Most pull requests close soon after someone first replies. Source: Hasan et al., arXiv, 17 April 2023. arXiv, Hasan et al., 17 April 2023

The description answers review questions before they are asked. Svelte's guide says "A good test plan has the exact commands you ran and their output". It also wants screenshots or video when the UI changes. Then Vue's guide asks you to tick "Allow edits from maintainers", so a reviewer can fix a typo instead of asking you to. Also, Vue wants the fix only, with no unrelated refactors. Finally, the naming and lint habits of clean JavaScript practice make the diff quicker to read.

How long does a pull request usually wait for a first response?#

Across 111,094 closed GitHub pull requests, 80.16% got a first response within a day and 93.01% within a week (Hasan et al., arXiv, accessed October 2026). The same April 2023 study found 68.36% heard back within an 8-hour workday.

Show data table
Most pull requests hear back within a day. Source: Hasan et al., arXiv, 17 April 2023.
Stage Value
within an 8-hour workday 68.36
within one day 80.16
within one week 93.01

Most pull requests hear back within a day, and nearly all within a week.

Time to a first response Most pull requests hear back within a day. Source: Hasan et al., arXiv, 17 April 2023. arXiv, Hasan et al., 17 April 2023 (111,094 closed pull requests, ten GitHub projects)

However, read "response" with care. The April 2023 study found that bots often post the first reply. In its sample of very fast replies, 35 of 50 came from a bot. A CLA check or a changeset bot is not a review. Still, the April 2023 study found that less complex pull requests heard from a person sooner.

When is it fair to follow up on a quiet pull request?#

Follow up once your pull request is in the small share still waiting, which by arithmetic from the same study is 19.84% after one day and 6.99% after one week. Each share is what remains once you take away the cumulative shares in Hasan and colleagues' April 2023 arXiv study.

Say you open a Vue fix at 10:00 and hear nothing by 18:00. In that April 2023 study, you are among the 31.64% still waiting after an 8-hour workday, which is common. By the end of the next day the share is 19.84%, and after a week it is 6.99%. So a short, polite comment is fair after a week, and not before a day.

Try it
Hours since your pull request was opened
Jump to

The three published steps

  1. [now] after an 8-hour workday31.64%
  2. after one day19.84%
  3. after one week6.99%

A normal wait

31.64%

of closed GitHub pull requests still waiting for a first response after an 8-hour workday

Your pull request has been open for 8 hours

Most pull requests hear back within a day. Keep working; a follow-up now is too early.

Arithmetic from Hasan et al., arXiv, 17 April 2023: 100 minus the cumulative share with a first response. Modelled, not measured.

Set the hours since your pull request was opened to see the share still waiting for a first response. Arithmetic from Hasan et al., arXiv, 17 April 2023. Modelled, not measured.

When is an upstream pull request the wrong fit?#

An upstream pull request is the wrong fit when the change adds API surface nobody has discussed, or when the project has not answered anyone in a month. For example, Vue's guide sends any non-trivial API addition to its RFC repository first. Likewise, Svelte asks for an RFC before a large new feature. For those, open the discussion and wait for agreement before you write code.

Show data table
A small tail waits a month or more. Source: Hasan et al., arXiv, 17 April 2023.
Item Value
first response after one week to one month 4.38
first response after more than one month 2.61

Only a small tail of pull requests waits a week or more for any reply.

The slow tail A small tail waits a month or more. Source: Hasan et al., arXiv, 17 April 2023. arXiv, Hasan et al., 17 April 2023

A quiet repository is the second case. In the April 2023 arXiv study, 2.61% of pull requests waited over a month for any reply. If a project's recent pull requests all sit in that tail, keep the fix as a local patch. Then send it later if the project wakes up. Also, a change that only your app needs belongs in your app, not upstream.

Where do you go from your first merged pull request?#

After the first merge, take the next issue in the same project, where you already know the setup, the tests and the people who review. The April 2023 arXiv study found newcomers who got a human reply within a day were more likely to contribute again.

  1. Next

    The next issue in the same project

    You already know the setup, the tests and the people who review.

  2. Then

    Branch and commit habits

    The post on Git branching and GitFlow covers them.

  3. After

    Read a component's API before you change it

    The guide to building scalable UI components shows how.

For the next skills, the post on Git branching and GitFlow covers branch and commit habits. Then the guide to building scalable UI components shows how to read a component's API before you change it. If your team would rather have someone do this work, see hiring frontend developers or hiring React developers. Otherwise, the contributing guide of the project you picked is all you need to start.

Questions this post answers

How do you contribute to open source frontend projects and get merged?
Pick a library you already use, treat its contributing guide as the acceptance criteria, and send one small change with a reproduction and a test plan.
How long does a pull request usually wait for a first response?
Across 111,094 closed GitHub pull requests, 80.16% got a first response within a day and 93.01% within a week (Hasan et al., arXiv, accessed October 2026).
When is it fair to follow up on a quiet pull request?
Follow up once your pull request is in the small share still waiting, which by arithmetic from the same study is 19.84% after one day and 6.99% after one week. Each share is what remains once you take away the cumulative shares in Hasan and colleagues' April 2023 arXiv study. So a short, polite comment is fair after a week, and not before a day.

Keep reading