Hello,
I have been thinking about making the jump towards Open Source, not just using OSS but also contributing to it.
First, some OSS projects/apps I know of are Peertube, Lemmy (right now using Voyager app), Mastodon, Matrix (used to use the Element app, gave up because I realized it was too hard for those around me who got used to Whatsapp), OpenStreetMap (through OrganicMaps), Jellyfin, and Actual Budget, Godot Engine, Luanti, GrapheneOS… I might know more, but those are the ones I remember right now.
Second, I have some basic experience with programming (mainly Java [haven’t learnt GUI yet tho], SQL, and C# for Unity videogames), but no experience entering an already created codebase yet, let alone making changes and sending them (and I admit I might need to get some practice with Git), so it is pretty intimidating. Do you have any advice about it?
Third, I’d like to hear about projects you find interesting or useful. Not neccesarily to contribute or even use them myself, but I’m interested in which other projects there are out there.
Edit: Thank you for the responses, what I got was basically find OSS to replace not-OSS I currently use, and contribute either fixing issues myself, helping with other stuff (making issues, writting or translating documentation, helping newer users), or giving feedback on the project.
Surprised more people arnt mentioning FOSS projects they like. The one I’ll throw out is Immich, a self hostable Google photos alternative.
A lot of the replies so far focus on fixing the problem yourself, which is awesome if you’re a coder.
But even reporting problems is a big help to all projects. Found a bug? Report it - give the right information and be cordial.
Also, contribute sensible suggestions. Some smaller projects suffer from a single owner not understanding how others might use their work because they don’t have that perspective (certainly an issue for me). Plus, getting involved and contributing this way can be a huge motivator to these small projects. It can be pretty disheartening to work hard on a passion project and not hear anything back from users.
So making sure all bugs are accounted for, and making suggestions/giving feedback to developers, thanks for the advice
You can also contribute to OpenStreetMap in your area using simple apps like StreetComplete or EveryDoor. This has a way lower barrier to entry than contributing code in my opinion. And it has the immediate benefit of a better local map for a LOT of services that are built on top of OSM.
Thank you! Got StreetComplete now and started contributing through it on my way home :b
If code is where you’d like to contribute, a lot of large projects label some non-critical and low-complexity fixes for known issues as “beginner contributions”. They should be relatively easy contributions, for folks with some background in code.
Of course, if you have spare cash flow, donate a fiver to your favorite open source project. It goes a long way.
If simply using it is the goal, check out f-droid for android, an alternative app store for open source apps, and look into open source replacements for your usual suite of apps. It feels good to use, and to know you’re keeping your own data yours.
Okay, wil lcheck for begginer contributions- I do use some apps from f-droid already, might donate once I do have spare cash flow, thanks for the advice :3
You don’t need to get into Open Source as a developer unless you’re comfortable doing so. But that doesn’t mean you can’t jump in as a user. It really is as simple as typing “Best Open Source ‘fill-in-the-blank’” and finding some projects that interest you.
Once you start using Open Source, you’ll enter a community of other users who are always discussing different aspects of projects; which projects need maintainers/coders, which group is planning a fork, etc… You’ll get to know the community by simply being part of the community.
Secondly, and this is one that I don’t think get’s mentioned often enough, just because you’re not contributing code, doesn’t mean you’re not contributing. Again it comes back to that community we’ve built around us; if you’re comfortable with the FOSS software that you use, you’ll invariably stumble across new users with questions or advice, whether it be on the github or on forums or here on Lemmy, or even that site that must not be named.
Your involvement in helping others IS contributing.
That makes sense, will bear it in mind, too. Not neccesarily need to contribute directly, but just being part of the community.
Basically two choices:
- Find a project you’re interested in and make a contribution. Many projects tag certain issues with something like “Good First Issue” as a way of lowering barriers to entry. Other things are updating documentation, fixing typos, then you can branch out into patches and pull requests.
- Make your own FOSS project.
Thank you for the advice!
Welcome to the community!
Pretty much on point.
You don’t have to touch the whole codebase to contribute, you can only touch the parts you are familiar with.
Lots of good advice here. Best method arises but cannot be sought. When you run into something broken or you don’t like, don’t set it aside hoping somebody else will fix it. Fix it.
Even if the maintainer doesn’t want your change. This is the best way to grow the seeds of software freedom you’ve already planted by caring. This is the fundamental ethos in my view of a good steward of the community. When something isn’t ideal, they make it work for themself and then are willing to share if others find it useful.
Okay, get practice with it even if it gets rejected, thanks for the advice
Find something broken or missing something, fix it.
Yep … the pipeline to becoming an open source developer:
1: Use open source software.
2: Get annoyed by some small, incredibly specific bug.
3: Fix that bug yourself.
I’ve fallen victim to that a couple times personally.
And @TotallyWorthLife – it doesn’t take a whole lot of knowledge, as long as you’re working on a project that’s willing to humor beginners’ mistakes. I contributed to OpenRCT2 and KDE, both written in C++ … and I know basically zero C++. (I only knew a bit of Python and some half-forgotten PHP.) But I knew enough to look at the source code, ask devs questions about which files do what, and understand the code enough to zero in on the issue I was experiencing. In both cases, I ended up asking more experienced devs there if I’d gotten the changes right, but in both cases, I actually had. (Admittedly, one of those cases was basically by pure luck. They were using bitwise operators, which I knew nothing about, but I’d copied the line from elsewhere in the codebase where similar operations were done, and it happened to be the right one.)
Just two pieces of advice I’d have for starting out:
1: Look for something that should be a very simple fix. In both of my cases, I only needed to change one file, and only a couple lines in that file.
2: Look into fixing a bug, not implementing a new feature. Or, at least, if you want to add a new feature, you should definitely be talking to that project’s devs first to see if they even want to implement that feature, and if so, get their advice on how they’d want to implement it. Yes, you’re doing free work, but if you’re adding more code for them to maintain and then expecting them to maintain it, you’re kind of demanding that they do free work as well. A simple bug fix, though, is a one-and-done that should (at least in theory) reduce the amount of maintenance work the regular devs of that project need to do.
Okay, thank you for your experience and advice! Will keep eyes more open for bugs and stuff, and try to start small.
Agreed with starting small.
You’ve already done the first step, which is actually using FOSS software. That’s the only way to get real context on what you’re contributing to and find issues or lack of features that bothers you or is incredibly specific to your system or use case, and fix something that maybe would not have come up otherwise or no one would have time to get to.
Filtering issues by ‘Good First Issue’ as someone said is also a really good way to find tasks that are relatively easy to get your feet wet with a codebase. Don’t feel bad about taking on too many of them, it’s better that someone does them all and gains enough experience to become a regular contributor, than the rest of them collecting dust until someone else like you shows up.
Don’t worry too much about not knowing X or Y language, the great thing about being into FOSS is that you get to become a multilingual developer, which is very eye opening and educational as opposed to sticking to a language like Java and never realizing the limitations it has or even the benefits it has relative to other languages, and use that knowledge to be a better engineer overall. It’s easier to learn new languages nowadays, plenty of guides and docs to find, and AI can help for more specialized and context aware questions, just don’t fall into the trap of letting AI do the job for you, you would only be fooling yourself.
Also don’t underestimate the value of small contributions like documentation updates, translations, creating issues, etc. You don’t need to come up with a PR for every issue you create, just finding things and keeping active is enough when you don’t have the time or energy to go the whole way.
Okay, thank you for the advice! Definitely, if I’m gonna get into the codebase, I’m not gonna let AI do the work for me, if I wanted to I’d just straight up tell the maintainers to lol.
Find something wrong or something you think could be improved. Check if it’s a raised issue or on a roadmap. If not, raise the issue. Fork the repo, fix the issue, make a pull request.
Github is probably the most accessible for doing this, create an account and learn the basics.
Already got the Github account, and know some basics, but I think I should learn further as I only know the basics (forking, making branches, uploading the modified code to my fork, and making pull requests, don’t even know to do these in detail so I guess I’ll look at more extensive Git and Github tutorials lol)
Use a software you like, find something you would change about it, report a bug and get maintainer approval, try your hand at it.
Okay, thanks for the advice :3
It’s not actually important to succeed, you will learn a kot trying. But it sure does feel good using software you helped create.




