Giving your code to the community

- 4 mins

Header

The hardest thing to give for free is your code. Why?!

About two years ago, I started putting pieces of code on my GitHub page. And soon I have noticed that nobody was looking at it. My profile was dead. At that point, I realized that there is no need for me to pay for private repositories 😄. And also, that people don’t want my code, not even for free.

And why was that?! I was clueless! But now, from this perspective, it’s pretty obvious. I had a horrible README and messy incomprehensible (even for me) code of an application that had very limited applicability. My code didn’t solve any problems that developers were facing and was hard to understand, so why would anyone use it?

You may be convinced that you are making it open-source for the community, but don’t fool yourself, you are selling your project. Maybe you are not asking for money, but you are not doing it for free either. Some do it for ⭐️🌟⭐️, some do it for fame, some do it to get a job at Google. All of us have different reasons, but we still have one common goal: to get people to use our code.

So if you want to get those users, you need to sell them your code. And to do that you need to approach it in the same way as you would if you were selling any other product. Make a valuable, quality product, place it in a nice-looking package, promote it, and make constant improvements to it. Easy! Right?!

It needs to bring some value to users, otherwise there is no reason for someone to use it. It may seem obvious, but this is the main reason behind most of the dead repos on GitHub. If you have a great, stable app, with fancy animations, and beautiful design, and you make it open-source, it may seem to you that you just made a contribution to the community. But if your app has unreadable code, or is hard to modify, or has a very specific use-case that’s not applicable to a lot of users; well, in that case, no one will use it.

None of us writes perfect code, but that’s not an excuse to write bad code. Code that you put into your open-source project should be the best that you were able to write at that point in time. Putting someone else’s code in your project brings huge risk, so your code needs to be pristine. That way, it will boost confidence in your product, and people will more likely contribute to it.

If you have a finished product, now it’s time to place it in a nice package, wrap it in a most beautiful wrapping paper that you have and tie the fanciest bow around it, or in our case you need to write a good README. This step will bring you the most value. README will be a landing page for your product, so that’s the place where you sell it. That will be the first thing that people will see, and you have to make sure that it’s not the last. Make them stay.

The following step would be marketing, the arch enemy of every software developer. But in this case you have to do it, you have to be that marketing guy 🤢. I know, I know … but it’s not that hard. Show your product to people, promote your library/app as much as you can, and wherever you can. And that’s it.

Spam

The final step would be to support it. Keep your project up-to-date, stable, fix bugs as fast as possible, listen to the community, and implement most requested features.

This is not some magical recipe, but following these steps should greatly improve your chance of having a successful product.

These are things that I have learned from my own mistakes. One thing that I still don’t know how to do is how to bring contribution to my projects. If you are an Android developer, and you would like to contribute to open-source, but are not sure where to start, check out my super cool Lemniscate library. It doesn’t have to be much, find a better name for one variable and I will be grateful.

Thanks for reading! If you enjoyed this story, please share it! Also, feel free to leave a comment 💬 below.

Vladimir Jovanovic

Vladimir Jovanovic

Android Developer

comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora