Ask HN: How to Monetize Open-Source Software?

90 points by paydevs ↗ HN
We've collected 34 approaches to monetize open-source software in an open github repository (https://github.com/PayDevs/awesome-oss-monetization).

What have we missed?

54 comments

[ 3.5 ms ] story [ 113 ms ] thread
This is quite nice! Shouldn't it be show HN?
The rules for "Show HN" mention that this kind of info / contribution is off-topic so we placed it in "Ask HN" to get more feedback and hopefully some additional ideas to monetize OSS.

Maybe we will post it on Show HN in the future if we have more approaches.

Well, you don't directly monetize open source software.

What you do is you become a "VC" and get a bunch of guys to build on top of "open source" with a X-as-a-Service based subscription model, and then you contribute pennies back (and usually: just posting issues to the open source stuff you use to get slaves to slave away for free).

I feel you that the current situation is not good, but nobody is forcing developers to share their projects as open-source or to use a license that is company-friendly. If the maintainer(s) do not want companies to profit from the OSS without giving back they could easily use a copyleft License (e.g., GPL) or switch to a closed-source approach.

And btw. it's not super easy for companies to contribute on a voluntary basis - their investors or stakeholders would not allow/like it. What they can do is declaring it as "donations" and paying it from the marketing budget.

Nothing stops companies profiting from GPL software. Red Hat built an entire company doing so.
Citing one outlier does not disprove a rule of thumb.
Which means they contribute.
How about we as a society understand that not everything written is worth paying for?

People need to treat open source as contributing openly to society with no expectation of return. Conversely there is no guarantee the maintainer has to listen or do anything anyone says.

If people want to support you can charge to support.

I've got an idea I think you've missed. It's potentially a game changer for OSS developers and the industry. The question is whether there's any demand.

OSS developers: do you want to get paid for the work you've done (i.e. with no requirement to fix bugs or add new features)?

There is not "one" community of OSS developers who either all want money or not. Some devs want to monetize / get something back and maybe work full-time on their OSS projects and others are totally against monetizing OSS.

From a current survey it looks like 41% of OSS developers want to monetize and 33% would like to work full-time [https://dev.to/joergrech/state-of-oss-monetization-2022-surv...]

So if you have a better approach to monetize OSS go for it.

For my two open-source projects, Fugu [0] (privacy-first product analytics) and Mapzy [1] (store finder), everyone can self-host for free without any feature restrictions (AGPLv3 license). We then offer a hosted version that people can use who don't care about self-hosting at a price that makes self-hosting not worth it for most users. Of course, there are other reasons to self-host outside of cost.

0: https://github.com/shafy/fugu

1: https://github.com/mapzy/mapzy

Good idea. Looks like Paid Hosting similar to Elasticsearch, MongoDB, etc. that can later be converted into a Startup.

Btw. the benefit of a hosted version is not only that you do to not have to host it yourself, but also that the maintenance (updating, upgrading, scaling servers, backups, etc.) is done by the hoster.

Thanks! Yes, exactly.
The Inkscape's "funded development" system link leads to a Page Not Found page.

Also Bounties Network link is https://bounties.network/, without the www. With the www it doesn't work on my browser.

Can you tell which page you had the problem on? I only see links to bounties.network without the "www" subdomain (see https://github.com/PayDevs/awesome-oss-monetization/search?q...) and I couldn't find any link to inkscape - maybe you were on another list we referenced at the end?
It is hard. If you get paid directly, it will be a low salary and you support lavish lifestyles of foundation directors and those who have made a career out of running consultancy sweat shops with 10% open source work for bait-and-switch hiring.

If you work at a huge corporation that has vanity projects, expect churn, politics, infighting, useless initiatives for promotion and mediocre code quality.

excuse the long quote, i'm hoping to engage you in some of its critiques.

"The failure of the open-source movement is ultimately a failure of imagination.

Let’s back up a bit. When I talk about the “failure” of the open-source movement, I don’t simply mean that systemic underfunding of crucial open-source projects has led to incidents like the Heartbleed saga, whereby a vulnerability in an important software library called OpenSSL undermined the integrity of a large part of the internet. [...] Open source’s biggest failure is philosophical.

Free as in Freedom

For me, the best parts of the open-source movement were always the remnants of the “free software movement” from which it evolved. During the early days of the movement in the 1980s, best captured by Richard Stallman’s book Free Software, Free Society, there were no corporate conferences featuring branded lanyards and sponsored lunches. Instead, it was all about challenging the property rights that had granted software companies so much power in the first place. Stallman himself was possibly the movement’s best-known evangelist, traveling around the world to preach about software freedom and the evils of applying patent law to code.

Stallman framed the argument for free software in moral terms, positioning it as not only technically but ethically superior to proprietary software, which he saw as a “social problem.” And he practiced what he preached: in his personal life, Stallman went to great lengths to avoid using proprietary software, even to the point of not owning a cell phone.

But it wasn’t until the free software movement shed its rebellious roots and rebranded as the more business-friendly “open-source movement” that it really took off. One of the most crucial figures in this effort was Tim O’Reilly, founder and CEO of O’Reilly Media, who built his business empire by identifying the pieces of the free software movement that could be commodified. Suddenly, corporations that had previously considered open source to be dangerously redolent of “communism” were starting to see its value, both as a way of building software and as a recruitment tactic. From there, an entire ecosystem of virtue-signaling opportunities sprang up around the marriage of convenience between the corporate world and open source: conference and hackathon sponsorships, “summers of code,” libraries released under open licenses but funded by for-profit corporations.

If that counts as a victory, however, it was a pyrrhic one. In the process of gaining mainstream popularity, the social movement of “free software”—which rejected the very idea of treating software as intellectual property—morphed into the more palatable notion of “open source” as a development methodology, in which free and proprietary software could happily co-exist. The corporations that latched onto the movement discovered a useful technique for developing software, but jettisoned the critique of property rights that formed its ideological foundation."

https://logicmag.io/failure/freedom-isnt-free/

Use a special license that makes large corporations like Amazon and Google pay, while small companies and individuals use your work for free. I think this is fair because big companies won't mind paying a relatively small fee; and they benefited most from the advancement of society, so it is good if they fund future development. You can set a limit on revenue, number of employees, number of users, etc.
But you can not enforce it.
A friendly email should work for most companies, but contacting a lawyer should do the trick. Some simple telemetry can determine what IP addresses, computer names, etc are running the software.

Hi legal@example.com, I'm the developer of $product. I noticed you don't have an active license [or support contract]. My records show recent use of $product at your corporate IP address: 1.2.3.4.

You may purchase a Large Company license for $product at this link.

Please let me know when you've addressed this issue.

No large company would begin using unlicensed code like that, they have many rules in place to avoid license violations. Which means anyone at the company evaluating it would see the license scheme. Most would probably switch to a different library in order to avoid the hassle of requesting budget to pay for it.
> No large company would begin using unlicensed code like that, they have many rules in place to avoid license violations.

I've seen it happen at multiple large companies, even though they have policies. I've seen a lawyer miss a GPL license violation in a license review, the team caught it before a public release. Especially when you have internal only projects or developers who are admin on their company owned dev machines.

This only works if Google/Amazon actually find your software so useful that they are willing to pay. If all of your customers are small companies, then you won't receive any payments.
That's a fine idea, but this would not be an open source (https://opensource.org/osd) license.

> 5. No Discrimination Against Persons or Groups

> The license must not discriminate against any person or group of persons.

> 6. No Discrimination Against Fields of Endeavor

> The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

Depends on what you call open source. In my view, it's open source if the source code is open for viewing by anyone. That doesn't say anything about the cost of using the code in a commercial situation. Anyway, you could start a new movement and call it "fair source", where programmers are properly compensated for code used by large companies who make millions using it.
>if the source code is open for viewing by anyone

That would be _source-available_. Open source is well understood to also enable modification and redistribution - see Wikipedia's[0] or Merriam-Webster's[1] entry on open source.

Also, open source says nothing about using the code in a commercial situation to begin with. The most popular open source licenses (MIT, Apache, GPL, ...) don't distinguish commercial and noncommercial usage.

I agree that the situation with large companies is not easy. Either you pick a stricter license like GPL, and risk your software being left unpopular, or pick one that enables popularity more, like MIT, but then risk being taken advantage of by the lack of restrictions. I think it's a tough call.

[0] https://en.wikipedia.org/wiki/Open_source

[1] https://www.merriam-webster.com/dictionary/open-source

How about an open core under something like GPL and a set of extensions under something like MongoDB's SSPL (server side public license)?
(comment deleted)
Asking how you could “Monetize Open-Source Software” is essentially asking how you could monetize a useful but mainly social activity which produces no physical product. I’m not sure it’s possible, and if you find something, it’s not necessarily related to the social activity, or it may actually be harmful to it.

This is because free software is not a business model. Free software is an ethical stance, around which any number of business models may conceivably be constructed.

> This is because free software is not a business model. Free software is an ethical stance

Very true. And I like encouraging a world where people can make a living serving by their values instead of sacrificing them. I view this topic as "how can I earn money in spite of giving away my software", not "by giving it away".

Agreed, with a caveat. Many big projects have multiple components. A company may make a strategic decision to open source one (or more) component explicitly to use it as a marketing strategy.

A startup side project I'm working on is going to do this. We're hoping that by providing something useful to other dev teams, we will raise the profile for the company that's giving the tech away.

If we can earn a good reputation for our tech, we hope that will translate to more signups for the company's product, which uses the tech.

I don’t think majority of people open source software because of ethics.

A lot of it is just social pressure and societal norms.

It always looked to me strange that excellent software requiring years of work is made available free, also maintained over years, also with service provided by answering questions in GitHub and forums.

> Monetization via Paid Premium Version / Open Core

This point is interesting, because it assumes the only way to do premium is with a closed-source version, losing the open-source benefits.

Personally I've had good success (i.e. comfortably enough income as a solo bootstrapped project that I can work on open source full time) doing a freemium approach that's 100% open-source for http://httptoolkit.tech

Yes, anybody can fork the project and remove the payment checks (here: https://github.com/httptoolkit/httptoolkit-ui/blob/5cf0b10c6...) but it's a non-trivial hassle to fork everything and hook it all up, and means ongoing maintenance work to manage a fork forever, so at the price it's not really worth any serious professional's time (and I give out free licenses for everybody who contributes to the code anyway).

Works well, lets you stay 100% open source, which is good for everybody and encourages contributions, and you can still make enough money to fund development (never going to make anybody a billionaire, but that's not the point).

Interesting, can you elaborate how a "premium user" pays if he wants to host the system by himself? Does he contact you directly or is there a payment system where he gets a code?
To access the paid bits, you log in with your email (passwordless: it emails you a code to login) either online (https://httptoolkit.tech/get-pro/) or in the app itself, and you complete an online checkout (managed by Paddle.com) to subscribe for X duration.

As long as you're logged into the app itself, it makes a check on startup with your auth token to see if your current subscription is still active. If it's active, all the paid features turn on.

No passwords, no license keys, auth & subscription data storage managed by Auth0, and one tiny accounts server that glues the checkout & auth0 together (which is also open source: https://github.com/httptoolkit/accounts/).

That's the normal flow, but assuming you don't change the code it works the same whether you use the hosted deployment or you fully self-host the core app.

I really like this approach. Typically, we're building some sort of tool that does some undifferentiated heavy lifting that is not core to our customer's business. The last thing they want is to dedicate their most expensive resource (dev time) to maintain a tool that they themselves didn't even build from scratch.

Nice :)

Exactly. You do probably lose income from a small percentage of dedicated hobbyists who're determined to use it for free and self-host, but those are probably not your core target market anyway.

And I think many of those people are the kind of people likely to add their own features and contribute them back, and making it easier makes to fork & self host makes that far more likely.

I agree with the required effort needed, but doesn't it only take one person to fork it? Once that fork is out there and maintained, the obvious choice for most people would be to use the free fork
Could happen! There's a bunch of reasons why I'm not super worried about this though:

- It is a fair bit of work for the person forking, including ongoing work to keep up to date indefinitely into the future as new features come out and the code changes, for no clear personal benefit to distributing it more widely.

- Doing this properly is not free. Distributing desktop apps means paying for code signing certificates, which cost you a few hundred dollars every year. Without this, both Apple & Windows will loudly complain and show many scary warnings to very firmly discourage all users from using your software.

- For the same effort (and zero cost) anybody doing this could instead contribute a feature, or bug fix, or docs improvement to the app, and I'd give them a free Pro account anyway. Seems like a strictly better deal.

- Even if/when somebody does do this, the marketing moat is pretty strong. Making a significant number of users aware of such a fork would be a huge amount of work on its own, for no real benefit.

- From a funding perspective, the most relevant users are well-paid software professionals, where the product is usually being bought by their boss and they just want something that works ASAP. Even if a free fork existed, they don't want to spend an hour digging around to find one that's trustworthy & up to date.

- Most of the features are free anyway. The Pro features are literally targetted at professionals: people working in teams, setting up mocks for entire APIs, dealing with enterprise proxies & certs, etc. Not people trying to do some quick reverse engineering & testing. That means the people who want Pro are almost exactly the people for whom doing the work to fork & maintain the project isn't worthwhile.

- There's a meaningful percentage of users who pay in part because they explicitly want to fund ongoing development on the software they're using, because they like the project. Those users don't even want to switch to a free fork.

- Empirically, I've done this for a few years now, and AFAIK not one person has ever forked it for anything but their own personal use :-)

Its also a dick-move, and might get you a bad rep as reward for the hard work of forking and maintaining the "free" fork. Seems it'd be more likely a non FOSS competitor stealing some of the IP to make a competing product and take your payed customers.
Could also happen! All the core product code is AGPL though (while general-purpose reusable libraries are Apache-2), so there'd have to either go open-source too or take a pretty substantial IP risk in doing so.
Maybe I missed them but it would be nice to see actual examples of each monetization strategy.
Look at the dude who made sidekiq. Mike Perham. He’s written some stuff on this.

He’s been tremendously successful with open core + paid pro features.

Working at an open core company with a little over a year of existence.

I think the open core model works, and is great marketing strategy.

Customers at the end of the day are willing to pay for polished finished products, but giving them an exit path-way should you fail and burn all your VC money, gives some ease vs going for a fully closed-source commercial product, even if some parts of the product aren't available (or only under enterprise edition)

YMMV, but I think it's a good think for open source to have found an hybrid model between free vs paid software dichotomy

So glad you already cover my favorite ideas for monetization! I'm considering how to monetize my own startup- currently the whole codebase is permissively licensed.

I plan to sell a hosted service, but hopefully I will be in a position where I actually WANT AWS to yoink the code and run a competitive service, so it can feed into better business models.

Open Core is distasteful in my opinion because it limits the growth of the open project. (no no I won't accept that relevant Pull Request, because I want to sell this feature as proprietary)

GPL/copyleft is not right for me either, in fact I want to HELP people fork for their own companies and profits.

So, once Amazon finally launches their competitor service, I can still:

  - compete with AWS on product and User Experience
  - sell early access/license to the open source code
  - sell courseware subscriptions+packages
  - sell first-party support
  - crowdfund feature development
  - sell consulting services
Love this!

Thankfully I've managed to get sustainable growth as a solo open source maintainer by offering licenses for advanced features only businesses would need.

If I did start an open source project, I think I would do a very simple licensing that I have never encountered, like: "Dual licensing: Paid software now, and GPL starting 2032". I guess in the oss monetization list it is covered by "paid early access: Delayed open-sourcing".

The software source code is released day one, but it won't be a FOSS license until YEAR+N. The license switch will be automatic after the deadline.

That way I think I can have the best of both worlds: making sure development is paid (which is often necessary to sustain any large project) and any additional valuable development being be paid for, but also giving your customers the guarantee that they'll have an exit against vendor lock-in, and releasing in the long term to the FOSS community.

Basically I sell software normally, but commit to a future FOSS license at the same time. It's not unlike patents actually, at least what they should be.