Hacker News new | ask | show | jobs
by wavemode 900 days ago
There are four business models that I believe are sustainable for open source development.

1. Solo developer (or small group), funded via e.g. Patreon

2. Non-profit funded by sponsorships and donations

3. For-profit but the software is free; the company charges for support and/or cloud services

4. Open collective, where donations fund bounties that are paid out to people who contribute patches

In other words, I think the only models that can really work are models where you genuinely don't care about other companies taking your code and using it for their own purposes. (This shouldn't be surprising - that's literally the whole point of open source!)

When I see companies trying something other than these four business models (usually because they desire more money than being a non-profit can offer) I inevitably see companies that might as well just not be open-source companies, because their licensing has to be restrictive for them to compete.

3 comments

I'd slightly modify 3: a for-profit company that open-sources some software that is not a product in and of itself.

For instance, Facebook can open source React because it's something they need, but it would not be a viable product on its own. Releasing it as open source doesn't give them any disadvantage. Similarly, a GPU manufacturer can open source their drivers because this won't prevent them from selling their hardware (and in theory should allow them to sell more hardware).

In theory, I'd expect a printer manufacturer to be able to open source their software, because their product is the printer not the software. In fact, I don't get why open sourcing 3D printer software should be a disadvantage, and the article doesn't explain this.

> Similarly, a GPU manufacturer can open source their drivers because this won't prevent them from selling their hardware

I agree with your broader point, but GPU manufacturers can't, because then we'll see just how much is done in software which makes their cards better than their competitors, which means their competitors can adopt those software techniques in their drivers. Also the manufacturer may not have the rights to the code in the driver's to release them as open source.

Their product is the hardware but clearly without software the product has little value.

So they invest resources in building the software.

Another hardware company comes along. Their product I'd also hardware. The software they get with no investment at all.

The second company has a strategic advantage. Far fewer software development staff. No carried software investment to cover. Hence lower costs. Hence cheaper product.

In theory company 2 sells nothing because the buying public understand the models, and are prepared to pay a lot more for the same or lessor product.

In practice the buying public doesn't know about Open Source, and the tiny fraction that do, don't care enough to matter. Hence the success of iPhone and the lack of traction for the latest "OSS Phone".

I mean, in that case I'd see that as a company which makes its money in other ways, throwing their scraps at the open source public. (Which, let's be honest, has been greatly beneficial for the public - it's given us Kubernetes, TensorFlow, etc.) But I wouldn't call it a business model onto itself.
There’s a 5th one. While not fully open source companies, they have a whole bundle of open source libraries and packages that don’t threaten their core business.

Meta does OS well for their scale. React, Llama, PyTorch come to mind.

For MS: Typescript, vscode, .net come to mind.

> Llama

This is not open source. (but this does not take out the essence of your comment)

The huge caveat with this is that we often get nice open source developer tools out of these companies, but never good software targeted to end users. So others still need to work to provide open source software to actual users.

Consulting on the product is another important income, possibly higher than support. It can be:

- developing features or bug fixes in the open source product or an extension that are needed now by the customer

- developing a custom project (not in the open, or actually sometimes in the open) on top of your open source product for the customer

- supporting the customer for some integration with your open source product.

You can also try to sell paid extensions (that are still open source). That would be the case for XWiki Pro apps, or many WordPress extensions.

There's another way to do it, is develop your open source and sell your developer expertise for unrelated customer projects. I've worked somewhere working like this, but don't really believe it works well because you are not actually spending time in your project when you are doing this, and you are not incentivized to develop your own product when you do this. You are basically a consulting company. But you can still decide to do a bit of this.

Consulting and support can work for solo developers, but that might push quite some pressure and make it difficult to disconnect depending on the way you do this.