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.

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.