Muhaiman.

I Think I Should Start Contributing to Open Source?

4 min read

Why I think I should start contributing to open source, what I want to learn from it, and why Quran.com is a project I’d eventually like to contribute to.

Quran.com was probably the first open-source project I ever wanted to contribute to.

I came across it while reading the Quran on the website and exploring it a little more. That's when I found out that the project was open source too. Their repositories were on GitHub, and there was actually activity happening there. Developers were adding features, people were opening issues, and other developers were picking those issues up and working on them.

I remember getting excited when I saw that. I wasn't just looking at a website anymore. I could actually see the people building it.

And because it was Quran.com, contributing to it had a meaning for me beyond just writing some code. If I could add something useful to a project that helps people read and understand the Quran, that would make me really happy. I would consider it a good deed.

At the time, I didn't really think much further than that. I didn't know how contributing to open source worked, where I would start, or whether I could actually be useful. It was just a thought I had: I'd like to contribute to this someday.

Why I Want To Contribute

I've written before about why open source interests me, but thinking about it more made me realize that being interested in open source and actually contributing to it are two different things.

I already build software. I've worked on my own projects and on client projects, including codebases I didn't create myself. So this isn't about learning Git or figuring out how GitHub works.

What I haven't done is contribute to a public project because I genuinely want to be part of what it's building.

That's the part that interests me.

When I find a project I like, I want to be able to look at what people are working on, understand something that needs to be done, and eventually say, "I can help with this." There's something satisfying about adding a small piece to something that was already there before you arrived and will continue after you're done.

Getting Out Of My Usual Way

Most of the time, when I build something, I already have a way of doing things in my head. I know the frameworks I like, the dependencies I usually reach for, the patterns I'm comfortable with, and the way I prefer to structure a project.

There's nothing wrong with having preferences. But I don't want those preferences to become boundaries.

One reason I want to contribute to different projects is that I would have to deal with decisions that aren't mine. I might find a codebase structured differently from how I would structure it. I might see a library I've never used or a solution I wouldn't have thought of. Sometimes I might even think something should be done differently and then understand why it was done that way after looking at the bigger picture.

I think that's a useful kind of discomfort for a developer.

Starting Small

I'm not planning to jump into a huge repository and pick the hardest issue I can find.

I want to start small on purpose. I want to find an active project, understand what it's doing, find something I can actually help with, and make a real contribution.

I think that's enough for a first step. Once I've gone through the process myself, I'll have a much better idea of what I want to do next.

Quran.com

And I'd still like to contribute to Quran.com eventually.

It's not that I think I can't contribute to it right now. It just holds a different place in my heart because of what the project is about. If I ever contribute to it, I want to take that seriously and make sure I'm actually bringing something useful to it.

For now, I'll start somewhere else.

I don't know which project I'll choose or what my first contribution will be. But I think contributing to open source is something I genuinely want to experience, not just something that sounds good to do.