Imagine you're a developer and you've just developed an awesome new JavaScript library and you decide to open-source it. Soon, a lot of people start seeing value on it and even start using it in their websites, apps, platforms or wherever they want. Look how this is awesome: you can share your work and help people build better software through reusability at the same time that you help them to avoid "reinventing the wheel".
This anarchic movement called open-source is revolutionizing all the technology industry. From linux to firefox, every day thousands of libraries, projects and platforms are created and backed by a huge community of developers, companies and all kinds of stakeholders.
This creates new opportunities for developers, who can live to code what they most like, without depend on salaries. But how can they make money from it?
To understand that, I'm going to explain, in a very simple way, the steps to publish an open-source library, using the steemjs-lib created by svk31 as an example.
Creating and publishing your library
Let's say you're JavaScript developer and you put all your efforts in developing a library to interact with Steem using JavaScript. Boom! Your new baby is born. Now, you want to spread to the world that you've created the most amazing thing and you want that everyone starts using it. So your next step will be publish it online. Without any doubts, the best place to publish it nowadays is on GitHub] (take a look at these stats from 2014 and imagine that they've been growing since then).
How does GitHub works?
In a nutshell, you will upload your code to their servers. Then, it will become public available in a page linked to your profile. Like this:
And people will be able to clone it in their computers to use it.
git clone https://github.com/svk31/steemjs-lib.git
Simple, no? But very powerful!
Monetizing it
Once it's public available, you need to make money. Now it's time to be creative: you can sell stickers or t-shirts, write a blog, do some standup comedy, whatever...
Jokes aside, there's a few common ways to earn cash with your project:
- You can be backed by a company, like MongoDB is;
- You can provide support, tutorials or courses to other people or companies;
- You can receive donations through third-party services like:
There are many successful cases, but at the same time, we can see a lot of problems in theses "business models":
- Companies won't back every project that appears.
- You may not want to have your name related to a company.
- Provide support, tutorials or other products can consume time that you could spend coding.
- Donations sucks. Even people who have enough money to donate and see value in a project, don't do it for many reasons (I would say that mostly it's because it requires some effort to send the money).
The new idea
I met Steem and Steemit yesterday and I thought "Holy shit, this can be used everywhere". So I imagined it:
put this awesome reward system in the open-source community and Boom! again. We can have more motivated developers producing awesome code, being curated by an awesome community. In other words: bring GitHub + Steemit together and let's blow this world up.
The cool part is that GitHub already has a "curation" system, which is the star button. You can star projects that you like and the most starred ones will be trending.
But I don't believe that a move like adding some reward system would be taken by the GitHub team. At least in the next few years. So, maybe the community could post their projects here and get rewarded for it, like @svk did with steemjs-lib (@svk/ann-steemjs-steemjs-lib). Would this be cool? What do you think?