38

Hello All,

TLDR:
I would like to contribute to an Open Source project but don't know where to start. Do you know any cool project that need help and have an "easy" codebase?

Long Version:
I am Coding for about 4 years now and did quite a few hobby-project on my own now. I would really like to step into some OpenSource Project for a few reasons:

  1. I hope to learn from others on that way. See how other devs write code or maybe improve mine or something along these lines.
  2. More users than on private projects. If I do a project on my own, no one ever finds it. And it would be really great to see my code "in action".
  3. Giving back to the community. I am using a lot of Open Source Software and would like to support the community that way.

My Problem is, I don't know where to start. There are so many repos on GitHub/GitLab that it is hard to find something with potential, that doesn't have a few hundred PRs waiting because there are already to many people working on it. Or Maybe I am just searching wrong. If that is the case, please give me a hint :D My skill-level is somewhere in the middle. Not terrible, but not a pro either. Because of that I would probably focus on smaller issues to get started. But I always strive to improve and get better.

My preferred languages are Python, Go or Javascript.

If anyone of you know a not to complex but cool project, that needs support, let me know.

I am happy about any feedback.

top 35 comments
sorted by: hot top controversial new old
[-] Lionir@beehaw.org 13 points 1 year ago

When you say you like Javascript, do you like web frontend dev? If so, you could try contributing to lemmy UI - could be pretty rewarding to see your work being deployed on the instance you use!

[-] JadBlackstone@lemmy.one 5 points 1 year ago

I did some projects in React and Vue. I see Lemmy is using inferno. I don't know that one yet, but I will look into it. Thank you for the hint.

[-] BitOneZero@beehaw.org 3 points 1 year ago* (last edited 1 year ago)

There is a new SvelteKit JavaScript project for a lemmy-ui alternative: https://lemmy.world/comment/258368

[-] Lionir@beehaw.org 1 points 1 year ago

From what I've heard - it's similar to React! Hopefully you like it

[-] Black616Angel@feddit.de 1 points 1 year ago

Look at the community-browser then. They don't support kbin yet.

Repo

[-] feyo@kbin.social 12 points 1 year ago

I like looking for issues that are tagged as „good first issue“.

There are sites that make this even easier.

https://goodfirstissue.dev/

Look for projects that you think you might want to support in a language you know and help them out in those issues.

[-] JadBlackstone@lemmy.one 2 points 1 year ago

Oh that is great! Thats exactly what I was searching for. Thank you!

[-] JWBananas@kbin.social 9 points 1 year ago

Any chance you know more than one human language? Some projects need translators!

[-] InternetPirate@lemmy.fmhy.ml 3 points 1 year ago* (last edited 1 year ago)
[-] nonneb@sopuli.xyz 1 points 1 year ago* (last edited 1 year ago)

That really depends on the language pair. Even a big language like Chinese has a lot of interesting stuff on github that never gets translated because the number of people can and are willing to translate isn't that high.

[-] JadBlackstone@lemmy.one 2 points 1 year ago

English and German. And that is an interesting idea as well.

[-] InternetPirate@lemmy.fmhy.ml 7 points 1 year ago* (last edited 1 year ago)
[-] tanjera@kbin.social 7 points 1 year ago

https://github.com/topics/good-first-issue

Any issue marked "good first issue" should be good for someone new to the project to tackle. The link I posted, the 2nd entry is a repo with docs on how to contribute to projects.

My best recommendation would be to find a project that is written in languages you're familiar with and maybe even is on a subject you're familiar with (e.g. data management, audio transformation, business logic, statistics, whatever) and just dive in.

[-] eskuero@lemmy.fromshado.ws 6 points 1 year ago

The most rewarding thing is contributing to some project you are using, helps keep it alive.

[-] psudo@beehaw.org 6 points 1 year ago

It's not as "glamorous" as coding often is seen as, but what almost every open source project needs is better documentation. It's also something that can help you be productive as you're learning a codebase.

[-] mrmanager 6 points 1 year ago* (last edited 1 year ago)

For me, it was starting to use neovim that got me into open source. Because it has so many plugins, and authors are usually super thankful for contributions (most of them have day jobs and limited free time).

I wrote my own neovim plugin and I got like 10 people making contributions to it within a few months. It doesn't sound like much but it actually feels really nice and fun.

But yeah, if you want python, it's not the right start for you. Plugins are written in lua and it's not as full featured as python. But much faster.

[-] notacat@lemmy.fmhy.ml 1 points 1 year ago

wait people still use lua?

[-] mrmanager 2 points 1 year ago

There is nothing better for small footprint and amazing speed, unless you want to write C directly. Neovim has it integrated in it's core, which means plugins are really fast.

[-] variouslegumes@reddthat.com 1 points 1 year ago

Lua is incredibly easy to embed.

[-] InternetPirate@lemmy.fmhy.ml 5 points 1 year ago* (last edited 1 year ago)
[-] pjb@lemmy.spacestation14.com 5 points 1 year ago

Honestly, just contribute to whatever software you're already using! The most obvious example (that somebody else mentioned already) is Lemmy itself, but surely there are many other open source pieces of software that you use on a daily basis. If there's something that annoys you, or think it could be improved... there you go.

At least, that's how I got into programming.

[-] InternetPirate@lemmy.fmhy.ml 4 points 1 year ago* (last edited 1 year ago)
[-] elxeno@lemmy.one 3 points 1 year ago

First check if anything you're using is on github, accepts contributions and has some open issues that looks simple to solve, or if theres some new feature u want to propose, then follow their steps for contributing.

Don't go looking for issues on stuff u don't use or don't plan to use, or at least some friend/family uses, it'll feel like a chore and you will have to spend a lot of time figuring out how stuff is supposed to be used what anything does and why...

[-] MoistKinkajou@lemmy.tf 3 points 1 year ago
[-] nii236@lemmy.jtmn.dev 3 points 1 year ago

This is an unusual question, but how have you been programming for four years and not know how OSS works?

Don’t you interact regularly with GitHub for work?

[-] psudo@beehaw.org 3 points 1 year ago

I have met a lot of people that don't interact with most of the outside code world for various reasons. Mostly it's draconian rules (sometimes company mandated, sometimes regulatory), but sometimes what they've been working on is just so niche that there really aren't anything out there for them to interact with.

[-] nii236@lemmy.jtmn.dev 1 points 1 year ago

I'd be so sad if I were in that position :(

But maybe I'd also be making so much money that I'd be happy :)

[-] floofloof@lemmy.ca 2 points 1 year ago* (last edited 1 year ago)

They asked how to discover good projects to work on. They didn't say they didn't know how GitHub works. I've been a developer for almost 20 years and, while I love open-source software, I don't interact with many open-source projects on GitHub because my day job and my own projects take up a lot of time. I've made a couple of contributions but time has never permitted me to get too deeply involved. Anyway, it's quite possible to be a decent, even experienced developer and not to be an regular contributor to the open-source scene.

[-] nii236@lemmy.jtmn.dev 2 points 1 year ago

Eh its fair enough, but the actual process of OSS isn't much different to just working software at a job.

Now finding a project to get your teeth stuck in, that's a bit harder. But that's less a technical skill and more about having enough introspection to figure out what you'd like to work on for free haha

[-] gmg@beehaw.org 2 points 1 year ago

yq ("jq for yaml" written in go) seems like a cool project and the dev seemed like a nice (but busy) person when I implemented a feature for it. Maybe it could be a nice place to start.

[-] thgs@beehaw.org 1 points 1 year ago

Could this be of any help ? https://www.firsttimersonly.com/

Personally I was wondering the same too, so I thought to focus on libraries/projects that I already like or find the codebase exciting in some way. Haven't done any major contribution though, with the little time I have available. So.. i dont know if that is good advice or not, just something that makes sense to me.

[-] variouslegumes@reddthat.com 1 points 1 year ago

Sounds like you want to contribute to something for the sake of contributing (hopefully that's not true). You're skill is worth something.

Going to spew some jaded bs: Don't pick a project that makes you sign some bullshit release, pick something that some rando started and released with no intention of monetizing. Volunteer to work on a passion project that you're also passionate about. Not something that will be used by some 9-5 300k a year tech bro. That's just my opinion though. "Open source" has been used by big companies to generate free labor (looking at you Adobe, etc).

Off the top of my head, the SignalK project is something I've wanted to volunteer for. They make some software that lets marine sensors (depth sounders, Windex, speed paddles, temp sensors, etc.) Communicate in one standard format. They built a web app with node and react as a proof of concept. It could for sure be improved. It'd be neat if it caught on because vendor lock-in is huge in marine hardware / software.

[-] redcalcium@c.calciumlabs.com 1 points 1 year ago

When I released my chrome extension a few years ago, someone went in and immediately send a pull request for dark mode support, then gone in a flash. I was super impressed.

[-] Darohan@lemmy.sdf.org 1 points 1 year ago

Searching github by the "good first issue" tag can be a good way to get your feet wet on open-source contribution with small, often low-risk tasks that'll get you used to the contrivution flow. Then, you can find a project you care about, find (and open) an issue with it, and make the improvement yourself! It doesn't have to be big, a lot of small contributions add up quickly.

[-] fishcharlie@eventfrontier.com 1 points 1 year ago

If you're into JavaScript, https://github.com/dynamoose/dynamoose is a project I maintain, and has a lot of great documentation, Slack channels, and more.

Although my attention on it goes in waves, it could for sure use more help. I'm also totally willing to help answer questions and point people in the right direction.

We currently have 80 open issues, 6 open PRs. 9 of those issues are marked as "good first issues" and 8 are marked as "help wanted".

So there are for sure some easy jumping off points to get started. But I'm also always happy to answer questions and assist in anyway I can as well.


Beyond that, it's all about diving into something. I found Dynamoose when it was much smaller, and just started with small contributions and built up from there. Following developers on social media, and following programming communities and newsletters can be helpful too.

load more comments
view more: next ›
this post was submitted on 17 Jun 2023
38 points (100.0% liked)

Programming

13226 readers
1 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS