6 Answers
6

Whether or not you can make money with an open source project, depends on many things. Based on experience, I see three factors that are important:

Which license did you choose? Take a look at the schema in this answer and you'll see that on one end, you have permissive licenses and on the other hand you have licenses with a strong copyleft.

Which type of product are you offering? There's a huge difference between offering a tool for consumers (something they can just download, run and use) and offering a library in a B2B context, for instance: a piece of software that parses XML, but that doesn't work unless you write some code around it.

What is your business? Are you in the business of selling software (e.g. you sell a game that can be downloaded and that can be played off line) or are you in the business of selling a service (e.g. a game that can't be downloaded and that is played on line).

When to use a license with strong copyleft?

Although it was different in the past, I see that small "developer-driven" companies, wanting to create a software business in a B2B context, often benefit from a license such as the AGPL.

Warning: the original authors of the AGPL consider what I am going to write next as nefarious use of the AGPL, but this is the way companies such as MongoDB, SugarCRM, and others make money.

I have my open source project of my own, and in the past 15 years I have tried making money in the following ways:

Donations: In the early years, users of my software would buy my kids Lego. I would receive books for my birth day. Somebody even sent me cookies. While this was certainly appreciated. That doesn't make a business. Also: I live in Belgium: when somebody sent me a DVD from the US, (1) I had to pay taxes on it (customs could be excessive), (2) I couldn't play it because the DVD could not be played in my region (unless I fiddled with my DVD player).

Making money with ads: I was an early adopter of Google AdSense. In 2004, I made $8,900 with ads, in 2005 $14,500, but the revenue dropped to $6,200 in 2006, $2,350 in 2007 and $1,900,... I had more content, more clicks, but less revenue. I noticed two things: (1) most of the people advertising on my site, were competitors, (2) if you want to make money with ads, you need to specialize in making money with ads. As a result, I removed all ads. Ads as a business model are dead. See for instance what Codehaus wrote when they shut down their business: the hosting cost was exceeding the cost of the revenue from ads. You can also see that SourceForge has taken the wrong path

Writing documentation: I wrote two books for Manning Publications about my project. Manning sold about 11,600 copies of the first edition and almost 9,200 of the second edition. Illegal copies of the book were already available before FedEx had the chance to deliver me my first paper copies. As an author, I received 10% on the profits. I made approximately $33K with the first book and approximately $30K with the second book. I used this money as seed funding for my company. Writing documentation is hard work and when you compare the time you spend on writing such a book versus the money you make selling the book, you soon understand that this is not a sustainable source of money.

Selling support and maintenance: this works, but it's hard. It's not something you can do on your own, because it's not scalable: the more customers you have, the more employees you need to answer support tickets. Also: you face competition of professional players who offer support for a stack of open source products. By supporting more than one product, such a company can afford hiring more employees. In my case: I couldn't compete with OpenLogic when I first started doing business with my product. I had to find a different business model.

Offering professional services: you offer the software for free, but you sell professional services to install the software and to integrate your product into a tailor-made project. This is even harder than offering support, because you have to compete against all the large software integrators who have more money, more employees, more everything than you. Your business will even be less scalable than support and worse: all the time you spend on projects for customers is time you don't spend on further developing your product. The Heartbleed disaster is an example of how that can go wrong.

If you are a single developer looking to start a business, making money with open source software, your best chance at being successful, is by offering the software under a dual license.

In the software industry, there are friends, foes, and food. BSD makes most people see us as lunch. Closed source makes most people see us as enemies. GPL, however, makes most people our allies.

How does one make money with a copyleft license? That's explained in this video. You offer the software as free, open source software free of charge for every one who obeys the rules of the license. Companies who don't want to follow those rules, can still use the software, provided that they buy the software under another, commercial license. This model is called dual licensing. The weaker the copyleft of the license, the harder it will be to sell your product.

When to use open source with a permissive license?

If you are not a developer and you want to start a business offering a service. Or if you work a large corporation (say Google, Amazon,...), then you probably won't like what I wrote in the previous section.

You want to use software and do whatever you want with it. You don't like GPL-style licenses, because those limit what you can do with the software. You may even have to pay for the software you're using! The horror!

In this case, it is in your best interest to brainwash developers into thinking that open source software should be free as in free beer, that the GPL is bad and that open source software should not be offered commercially. You'll sponsor the most radical zealots that are popular among developers looking for a role model. As a result, these developers will start producing software under a permissive license that you can use any way you want to.

Your task will be to make choices: to separate the wheat from the chaff. It is not your business to sell software:

You are offering software as a service (e.g. Google)

You have a totally different business that relies on software (e.g. Amazon)

You sell closed source, proprietary products and you make a lot of money in professional services (e.g. IBM or Wipro)

Your main business is ads; your users are your product (e.g. Facebook)

Once you are successful enough in one of the above, you can afford giving away your software for free (as in free beer). As you have gained a monopoly, it doesn't matter if competitors can also use your software. If they are peers, they may improve the code and redistribute it, in which case you benefit too. If they are contenders just starting a new business, you either crush them (because your brand is king and your marketing budget is bigger) or buy them (and possibly kill them afterwards).

This is a great way to make money with open source software, but I see some disadvantages. The moment a large corporation decides that the value created by a project doesn't justify the investment, the "charity" will stop. Oracle dropped GlassFish, IBM backed away from Geronimo, Pivotal left Groovy,... Only when disaster strikes (like was the case with Heartbleed), these companies suddenly start raising money to "save the developers."

That's not a sustainable model for open source, is it?

I don't know if there are any numbers about this, but it wouldn't surprise me if you'd see that most of the software distributed under a permissive license is written by employees (people working for a large corporation), whereas most of the software distributed under a copyleft license is written by entrepreneurs (people owning or working for a small to medium-sized company).

Has it always been this way?

No, free and open source software has undergone an enormous change. Large companies used to distribute FUD about software that was offered for free. Often these are the same companies who are now claiming that open source software should be free as in free beer. If you want to know how it was in the early days, I recommend watching OS Revolution.

How am I making money today?

If you want to read more about my history in open source, I recommend reading the 1M/1M blog by Sramana Mitra. I founded my first open source company in 2008, 8 years after the first open source release of my product. In 2014, the group was profitable with a revenue of 5 million euro and an EBITDA of 43%. The company ranked 28th place in Deloitte's Technology Fast 500 in the EMEA region and it won first place as the fastest growing technology company in Belgium in the period 2009-2014.

I created an account just to upvote this answer. I was one of those taken in by the "Gpl is evil" propaganda, until I read this. Thanks for the great links & answer.
– Shantnu TiwariAug 19 '15 at 12:54

10

I still hate the viral nature of GPL (I've no business telling anyone what to do with code they wrote, just the code I wrote), but you've made me hate it in general a little bit less. Very nice answer.
– RubberDuckSep 29 '15 at 16:19

11

While a very good answer, I think its worth mentioning one possible down-side with dual-licensing approach is it means all copyright holders must agree, in practice it normally means being the copyright holder to the entire code-base. That may inhibit you using code from other GPL projects and even be off-putting to other developers contributing larger changes (assuming they need to hand over copyright of their work for the project to include it, sign CLA's... etc).
– ideasman42Jan 3 '16 at 4:54

There are a huge number of ways earning money with free software -- but none of them is guaranteed. Just a few examples:

Donations: Many users are willing to give a few coins each month for a project they like. If a huge number of people are doing it, your servers are paid for. Payment methods could be e.g. Flattr, Patreon, Paypal, Bitcoin or any other micro-payment service

Custom developments: A feature is missed by somebody who likes to spend money for it? Great. Go for it.

Education and Support: Many software projects lack good documentation. Therefore education and giving support can be a way to earn some money

There are several methods, often dependent on the type of software you've produced.

If you have space in a GUI, you could consider adding some adverts to it. There are plenty of services that provide you with money in return for taking some adverts.

Generosity. Users who genuinely like your product can be persuaded to give you some small donation in return. In general, the easier you make it the better - a Donate button on your distribution page is a good idea.

Monetization of features. Offer some features for a premium 'account' (or whatever the alternative is)

Further generosity. Some people may be willing to donate equipment or time instead of money. These people are useful, because they usually end up donating more value than the actual money - perhaps they're willing to host something, or monitor your servers for a while each week.

Often, it depends heavily on how much you're willing to let it impact the software experience: ads are invasive but effective, whereas a donation button is almost invisible but as such less effective.

Some projects sell the right to companies to use their code under a proprietary license. This is covered by Wikipedia in the Multi-licensing page.
From
Multi-licensing: Business models:

Multi-licensing is commonly done to support free software business
models in a commercial environment. In this scenario, one option is a
proprietary software license, which allows the possibility of creating
proprietary applications derived from it, while the other license is a
copyleft free software/open-source license, thus requiring any derived
work to be released under the same license. The copyright holder of
the software then typically provides the free version of the software
at little or no cost, and profits by selling proprietary licenses to
commercial operations looking to incorporate the software into their
own business. This model can be compared to shareware.

To answer @Air, yes. These companies typically dual license under GPL and proprietary. Open source projects can use the GPL version. Proprietary projects have to buy a license.
– Max XiongMay 21 at 19:23

There is no general guide for making money using open source projects because it highly depends on what the project is about.

Some projects are combining open source + premium features (that are mostly sold to the companies) like GitHub is doing. Some projects might depend solely on the donations like elementary OS is. Other projects might be paying for the full time support for their product.

GitHub isn't open source; perhaps you were thinking of GitLab?
– congusbongusJun 29 '15 at 4:14

3

No I wasn't. Lots and lots of GitHub's resources and features are open source and you can find their code on GitHub. Of course, you can't really run your own version of it, so that's what I meant by premium features. They're basically selling the intranet version to companies. Therefore, I think of GitHub as a combination of open source + premium features.
– r3blJun 29 '15 at 14:43

1

More "offer a service based on open source" to me...
– vonbrandJan 16 '16 at 0:36

Large projects like MariaDB or some of the many under the Apache Foundation umbrella rely on sponsorship from big companies who benefit from using the software. Others sell support/training services of their software or make alternative versions with restricted features.