Support the ongoing development of Laravel.io →

Find Open-Source Laravel/PHP Projects to Contribute to

24 Apr, 2024 5 min read

Introduction

I love open-source software. I love the idea of being able to contribute to a project that I use and give back to the community. I love the idea of being able to learn from others and share my knowledge with them. I love the idea of other people being able to collaborate with me and help me improve my code.

I think contributing to open-source software has been the number one thing that has opened doors for me in my career.

I can remember getting my first PR merged into the Laravel framework. It wasn't a big fancy feature. It just added a new doesntExpectOutput assertion for testing Artisan commands. But that feeling was amazing!

Typically, I get around 1 or 2 enquiries a week from companies that want to hire me. I don't know how this compares to other freelance developers, but it's been pretty consistent over the past few years. But after I managed to get my very first pull request merged into Laravel, I started getting 4 or 5 enquiries a day for a couple of weeks (this has died back down to the 1 or 2 a week).

But I think this suggests there are lead developers, CTOs, recruiters, etc who are watching these types of things to find new developers. So I use this to my advantage and use my open-source contributions as a form of marketing to find new work.

But it can be really hard to find projects to contribute to.

I've spoken to quite a lot of developers that have never made a PR to an open-source project but that wanted to. Almost every one of them said their main reason for not contributing was that they didn't know how to find PHP or Laravel projects to contribute to.

So I built "Find A PR" to help with this.

What is Find A PR?

Find A PR (findapr.io) is a completely free website that helps you find open-source PHP and Laravel projects on GitHub that are looking for contributors.

It does this by searching across 697 PHP repositories, finding any issues that have the one of the following labels attached to them:

  • findapr
  • good first issue
  • first issue
  • first pr
  • help wanted

So by looking on Find A PR, you can find a list of issues that are specifically looking for contributors to help out with.

Find A PR is Open-source Itself

One of the cool things about Find A PR is that it's open-source itself. You can find the source code on GitHub at https://github.com/ash-jc-allen/find-a-pr.

It's built using the TALL stack:

  • Tailwind
  • Alpine
  • Laravel
  • Livewire

When I was building it, I decided to make it open-source and leave a lot of the simpler tasks as issues for people to pick up. This way, other developers could contribute to the project and get over that scary feeling of making their first contribution to an open-source project.

At the time of writing, 18 developers have contributed to the project.

X/Twitter

If you don't want to keep checking back on Find A PR every day, you can follow the X/Twitter account: @findapr.

Whenever Find A PR detects a new issue, it will tweet out the details of the issue. This way you can stay in the loop with any new issues that you may be able to contribute to.

PWA Support

If you want to keep Find A PR at the front of your mind so you can check it every day, you can even install it as a progressive web app (PWA) on your phone or desktop.

That way, you can quickly check for new issues.

I have it in my laptop's dock:

Can I List My Repo?

Of course! I want to help as many people as possible find open-source projects to contribute to.

It'll help you get more contributors to your project and it'll help other developers find projects to contribute to. It's a win-win!

To add your repo to Find A PR, you'll just need to make a pull request to the repo and add your GitHub repository to the config/repos.php file.

Then, whenever Find A PR runs its search, it'll include your repository in the results and look for any issues with the labels mentioned above.

How Else Can I Find Projects to Contribute to?

Aside from using Find A PR, I usually find projects to contribute to when using packages in my Laravel projects. For example, I might be using a package and think "I wish it did this" or "Oooh, that looks like it might be a bug!".

I'll usually have a quick investigation and if I think I can help, I'll attempt to make a PR to fix the issue or add the feature.

These types of contributions are usually the most likely to be merged because they're usually valuable to other developers. If you're using a package and you find a bug, it's likely that other people are experiencing the same issue.

It's important to remember that you shouldn't just start making PRs to projects for the sake of it to try and get one merged. If you do this, there's a chance it might get merged. But more than likely, it'll get closed and you'll feel disheartened. So only make PRs to projects that you're genuinely interested in and that you think you can add value to.

Last updated 1 week ago.

driesvints, ash-jc-allen, djosekispy liked this article

3
Like this article? Let the author know and give them a clap!
ash-jc-allen (Ash Allen) I'm a freelance Laravel web developer from Preston, UK. I maintain the Ash Allen Design blog and get to work on loads of cool and exciting projects 🚀

Other articles you might like

September 21st 2021

Using Database Transactions to Write Safer Laravel Code

Introduction In web development, data integrity and accuracy is really important. So, making sure th...

Read article
April 18th 2024

Draw a dynamic SVG pattern with Vue

How to create an animated SVG pattern in a Laravel Vue project. You will find a link to a CodeSandb...

Read article
April 17th 2024

Using the "Conditionable" Trait In Laravel

Introduction Conditions are an integral part of any codebase. Without being able to conditionally ex...

Read article

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2024 Laravel.io - All rights reserved.