DEV Community

Gabor Szabo
Gabor Szabo

Posted on

Should you start your own open source project or should you contribute to an existing one?

When talking about Open Source or contributing to Open Source many people immediately think of developing something new on their own and "making it Open Source", that is, publishing it under and an Open Source license

Writing your own project is really nice. It lets you make all the decisions in the world. It is also much easier to get started on a new green-field project than

to contribute to an existing code-base written by someone else or even just finishing the one you have started earlier.

We all start projects in the hope that many people will use it, but the reality is that most projects have very few users.

I personally started a lot of open source projects and most of them were never used by anyone. Some I have not even used myself.

I think the 80/20 rule applies here even more to the extreme. 1% of the open source libraries are used by 99% of the projects and the a huge percentage of projects are not used by anyone. Not even the author.

As a practice to gain experience it is great to write your own project, but unless your project somehow hits that sweet-spot that makes it popular the impact will be small.

Writing your own project, unless it becomes popular, also means you don't learn how to read other peoples code, you don't need to interact with users and developers who want to contribute to your project.

I don't want to discourage you from starting your own project, but I'd like to encourage you to also contribute to existing projects.

Here is an idea:

If you have an idea for a project start writing it. As you pull in dependencies check those dependencies and try to contribute to them and to their dependencies as well.

This will give you the opportunity to experience both working on your own and having all the freedom to make decisions on one hand and working with other people within the constraints of their projects.

Top comments (2)

Collapse
 
silent_mobius profile image
Alex M. Schapelle

In my opinion it depends. If I wish to learn a topic, may be jumping to open source project that uses that topic can be good learning curve, so while learning that topic, it could be useful to contribute to that project.
On the other hand, If i wish to learn something from ground zero build something that does not exists, then starting brand new opensource project could be a great way to learn, develop myself and may be create value to the market.

Collapse
 
xbardc42 profile image
Matthew Cummins

Go your own way!!