How Not To Get Paid For Open Source Work

[Avi Press] recently made a Medium post sharing his thoughts on a failed effort to allow for paid users of an open source project. [Avi] is the author of Toodles, a tool to help organize and manage TODO items in software development. Toodles enjoyed unexpected popularity, and some of its users were large organizations. It seemed that Toodles was of value to people who could afford to pay, and they might even be willing to do so if [Avi] provided a way for them to do it. It turned out that the monetizing process was far from simple, and he ultimately wasn’t successful.

Before he even started, [Avi] thought carefully about things and found that even basic and preliminary questions were difficult to answer, such as:

  • How many people were actually using the software on a regular basis? Were they gaining quantifiable value from it?
  • What exactly would someone be buying? How would they pay, and how would it get delivered to them?
  • How could companies be charged for the tool while still offering it freely to individuals?
  • Is it even ethical to accept money for a project to which others have contributed? How could money be shared with contributors? How to fairly decide who gets how much?

In short, [Avi] discovered that much of the data he felt he needed in order to make these decisions didn’t exist, wasn’t easily accessible, or couldn’t be reliably measured. His experiment in adding a license and payment system (which always seemed to need more work than it should) yielded no fruit, as there were zero paid users anyway.

Regardless of whether “difficulty in shoehorning a paid license system into an open source project” should be filed under “Feature, not Bug” [Avi] does thoughtfully present the issues he encountered. Open source and getting paid are not necessarily mutually exclusive. Octoprint is one example of an open source project that eventually navigated these waters, but that doesn’t mean it was easy, nor does it mean there are established tools and processes.

47 thoughts on “How Not To Get Paid For Open Source Work

  1. What about, implement addons – sell the addons.

    Built your licensing around these addons.

    one way to force companies to pay this “addon” is by implementing a watermark of some sort so they would want to remove that.

    That’s how CMS system do it.

    You can setup a marketplace but not necessary.

  2. Economics is often derided, but does have some “natural laws” which are generally useful. In this case, supply and demand. If a product or service has infinite supply, the price tends towards zero. In order to support a price point, there needs to be some exclusive ownership of the product. e.g. by exclusively owning a brand name, trade mark, copyright or patent.
    Open Source deliberately removes most exclusivity of ownership restrictions, effectively creating infinite supply.
    So if you are trying to make money from “Open Source”, you are fighting this law of economics. The fact that a lot of companies fail or at least find it quite difficult is actually reassuring, because it supports the notion that supply and demand is a real law, and not just something economists dreamed up.
    The corollary is that to make money from Open Source you need to have some exclusive angle (that does not owning exclusive rights to IP). That doesn’t leave much, since offering the software as a software has a very low barrier, anyone could do that.
    Perhaps the only place left to go is to provide expert support services, so although anyone can gain knowledge about an open product, mostly speaking becoming an expert is quite difficult to do.

    tldr; understand economics before going into business.

      1. No thanks I would rather buy it outright. I am sick of software as a service and lots of really useful programs that I enjoyed just dieing on the vine. I like open source software but It is not the only answer.

    1. Slartibart beat me to it (Slartibart, fast!), but I’ll echo that sentiment and expand on it: We could maybe debate whether software is or isn’t a product, or can or can’t be a business, but what’s certain is that source code is not a product. That’s why you generally don’t (read: almost never) receive a copy of the program’s source code when you buy a commercial software license.

      So, open source can’t possibly be creating infinite supply, because an open-source project isn’t supplying anything with any commercial value anyway.

      And that’s the secret. It’s plenty possible to make money developing open-source software. Look at Red Hat, they’ve made millions (billions?) doing exactly that. But the way to do it isn’t to emulate the closed-source business model, and simply ask people to pay money to receive exactly what they’ve been obtaining for no cost up until then. You need to be selling something more than that, something that having access to the source code doesn’t get them. Whether it’s support, training, consulting, etc. “A compiled copy of some software, and a limited license to use it” does not constitute a product, however shamefully the closed-source companies have reduced their product offerings to nothing more than that, these days.

      1. Another, less “corporate” example of an individual making money creating open-source: the author of curl and libcurl, Daniel Stenberg, recently posted a Stack Overflow answer in which he explains that he now works full-time developing it.

        curl is free but my time is not. I still have a job and someone still has to pay someone for me to get paid every month so that I can put food on the table for my family. I charge customers and companies to help them with curl. You too can get my help for a fee, which then indirectly helps making sure that curl continues to evolve, remain free and the kick-ass product it is.
        curl was my spare time project for twenty years before I started working with it full time. I’ve had great jobs and worked on awesome projects. I’ve been in a position of luxury where I could continue to work on curl on my spare time and keep shipping a quality product for free. My work on curl has given me friends, boosted my career and taken me to places I would not have been at otherwise.

        And that’s curl, software that basically nobody “just uses” in and of itself, and certainly software that nobody buys. But libcurl is the de facto standard HTML client library, it’s in everything, and if a company is doing something with it and needs an expert consult, they could hardly do better than Stenberg. So, they pay him.

        1. The Curl example is a perfect one for those stuck at the economics. Put the product development on the marketing budget. It is available globally and free, if its popular, it provides massive exposure in markets you could not dream of reaching. The initial product is what brings in the work. I have this with my open source hardware and software development page.Inadvertently I found it brings in customers, and the best part is the goodwill they have. No other marketing delivers customers like these. One customer, after paying me for the development of a new product, just kept paying more every month, after asking what was going on he said he decided to give me a royalty on each sale.

          1. Just because you charge 0 does not mean it has no value. It means you are not making anything and willing to take the hit. You may make money in other ways that subsidize that thing. It still does not mean it has 0 value. Back in the day I would pay thousands of dollars for some controls. By themselves they do nothing. Some even came with the code so I could change them. It was usually one of the features of the thing I was buying. Some of those packages would have monthly/yearly/onetime costs. These days people give away their work. Because the supply and demand is there for ‘free’ things. Saying ‘economics does not apply’ probably means you do not understand economics or want them to mean something else, both are untrue. “open source” has changed the dynamics of what the market demands in price and features. Those features usually at a minimum include the code. For more you get some sort of support. In economic academic terms it means the supply curve is flat and perfectly elastic. Add in support and the supply curve on the same software is probably an L shape.

    2. If my understanding is correct, a patent is an authorized monopoly on an invention. Couldn’t someone devellop a system, patent it and make it opensource? It is trully open source and any individual has the right to make his own (also stated in the patent definition, at least in France (Europe?)) and you can still control the market, through your patent.
      Would that work? Why don’t more companies do that?

      Nb: yes, it doesn’t concern only software “product”, because if i recall correctly you can’t patent software.

      But I’m still curious about why companies don’t follow this path, when you see how successful some opensource/openhardware are.

      1. A patent is supposed to *be* the inventions source code. Note the last part of the definition:

        “A patent is a form of intellectual property that gives its owner the legal right to exclude others from making, using, selling, and importing an invention for a limited period of years, in exchange for publishing and enabling public disclosure of the invention.”

        Most opt to use copyright protection instead, since patent protection in the US is max 20 years, where copyright is a minimum of 70 years (if you die the day you file) and a maximum of unlimited (if a company registers it)

        1. Copyright is much easier to enforce. A DMCA take down can be done even without a lawyer.
          A patent on the other had requires filing, approval, lawyers and time/money defending it. some say unless you make at least a million, don’t bother.

      2. Most software developers hate software patents. They are supremely unpopular among developers. (COMPANIES love them, which should tell you something right there.)

        Most of us feel that software patents fail to achieve the goals for which the patent system supposedly exists: To foster competition, encourage innovation, and ensure that a new entrant with a really good idea can’t get curb-stomped out of the market by a larger player with more resources to exploit that idea. But in traditional industries, the idea isn’t the product: It’s the process by which the product is created. Exploiting it is how you create the product you’re selling.

        In software, though, the idea effectively is the product. (Which is a can of worms right there, see other responses in this thread.) So, exploiting it becomes the thing you’re selling, rather than how you make the thing you’re selling. And when you’re selling something, exclusivity is a hindrance to its marketability.

        Nobody wants to own the weird thing that doesn’t work the same way every other product works. Humans are lazy, and we expect predictability and familiarity from the products we buy. So, as much as we revere innovation and competition, people still want the products they buy to basically all work the same, because having to completely re-learn how to use something every time you change brands is… well, you’ve seen how that’s worked out in the mobile phone industry. Nobody wants that.

        Imagine if someone had patented the idea of a steering wheel, so their company was the only one that could sell cars with a steering wheel. That would hurt the entire car industry, the patent-holder included. Or, how about this?

        Introducing the new Ford Strapon, now with our patented Seat Belt® restraint technology! Motor around in a safe, reliable automobile with significantly reduced* danger you’ll be flung through the windshield to meet a grisly death — exclusively from Ford!*Note: Safety not guaranteed, Ford is not responsible for grisly deaths met while wearing patented Seat Belt® restraints.

        I don’t know what your nightmares look like, but that’s pretty close to mine.

        Software patent trolls would have the software industry look exactly like that. They’d patent the design of, say, the file storage system for their BS operating system, and expect everyone writing software to run on that BS OS to buy a BSFS license, so their software has the ability to save files. What kind of moron would buy a computer that runs on BS? What kind of moron would write software for it, if they have to put up with that kind of BS?

        1. That’s one way of looking at things. The other is that having something patented forces others to come up with a different, and maybe even better way than the original. The current back and forth between NVIDIA and AMD over ray-tracing could be considered such.

          1. That’s the thing, though: Nvidia’s patents, for the most part, aren’t software patents. Nearly every one of the patents listed in this Reddit rundown includes a block-storage (memory) layout diagram, or a hardware-bus communication diagram, or etc. What they’re patenting is how the hardware implements real-time ray-tracing. The software components, the side that developers use to access that technology? Those are all implemented through standardized, open interfaces like Vulkan (developed by a non-profit industry consortium), Nvidia OptiX (developed by Nvidia, but explicitly free for commercial and non-commercial use alike), and Microsoft DirectX (…I have no idea what the status of DirectX is, but I assume it’s similar to OptiX).

            Nobody, including and especially the people who created the technology, wants to limit developers’ access to it by making them license the software it uses, or by holding a patent over their heads. In fact, more common in the software industry is for (non-troll) companies/organizations to buy up existing software patents and explicitly declare the patented software to be covered under a free-use license unencumbered by patent protections, in a manner similar to how Nvidia is making OptiX available for all uses, license-free. (Google has run a few such programs, for instance.)

            In the software world, things like APIs, protocols, and algorithms have a utility that’s directly proportional to their reach and availability. If you want people to buy your snazzy graphics hardware or whatever, the absolute best thing you can do is give away all of the software necessary to take full advantage of it to anyone and everyone who wants it, in the hopes that they will, and in doing so increase the value of your hardware. The dumbest mistake you can make is to charge them a software license fee on top of the premium hardware cost they’re already paying. Nvidia and AMD are both well aware of that.

    3. Economics is rarely derided, unless like you have its misapplied.

      And it’s very vulnerable to people using it to justify their view as opposed to inform their view (just like you have).

    4. Economics is not a science and therefore there can be no laws. Economics is just a set of theories that works for us given the circumstances of the present day but even then it is not the greatest of fits as can be seen by the repetitive market crashes (unless you declare that to be a feature and not a bug)

      For proof that it is not a science try to test an alternate hypothesis, quite simply there is no way to test an alternative to the suggested “laws” of economics as there is no way to isolate the alternatives from the current theory. The reason that you cant isolate economic theory is because of its inherent interaction in the political and social realm meaning that as society changes over the years so will economics. So it is a wonderful idea to think about the implications of supply and demand but one could not consider them to be laws as the application is often quite fuzzy and can be interpreted differently depending on the situation. Economics as a whole is based on the human interpretation of what is considered a liability and what is considered an asset, that interpretation is different from person to person and company to company. Science has laws and constants and set formulas that you can easily isolate for and test for an alternative hypothesis.

      TLDR; you cant claim that a subject matter has “laws” when the implementation of that subject is based on individual interpretation. You also cannot claim “laws” when alternatives cannot be tested in a real world environment.

      1. Economics is a Science Just as much as Astrophysics is a Science. You can make experiments for some parts of it, but you can’t do it on the whole system. There are not things subject to opinions more than otin any other science. It’s possible to be completely wrong on economics issues.
        It’s just that many economists are not scientists, they are hidden politicians. And many non-economists think the understand economy just because they have a bank account.

  3. Why not offer a paid priority support tier for the project? For most companies they need something tangible to justify//document the expense and a “priority support” item is somewhat standard in the Industry. Here one could provide the clarification/details on what this paid support entails… like a more rapid response to bug issues, etc. This approach removes the “licensing” issues and concerns, etc.

  4. First, from his article it seems that “someone” convinced him of selling the software ( that kind of person that says ” I know a bunch of people that will *surely* buy it if you do so and so and also give me a discount” .
    And since he implemented the paying modifications when the activity in the github was already slow ( the only measure of interest he could have at the time ) , not that many people would be starting to use the software. Coupled with the very few % maybe that are bigger businesses, that justifies the lack of interest.

    Second, he was already giving the software for free. So it didn´t need a very complex, hard to break, yadda yadda licensing scheme. Implementing limits inside the source , and coupling that with a simple license file are not a monstrous endeavour. Seems again that he was either misguided by others or too much involved in the problem and did not see ( or wasn´t told ) that he didn´t need to make thing too much complex.

    And with the beauty of opensource, he can offer support just to paying customers, and those that use the free version can use the online resources. If the sofware is stable enough, and the documentation good enough for people not needing support, then more points to him, and even if not earning money from it, he also doen´t need to spend much time on it.

  5. like others have said, and has been proven time and time again:

    The best way to make money from opensource code is to offer a priority support system to users. Have it include technical support on the use of the software, priority bug fixes and even specialty feature programming. You can even have limits and tiers for levels of support, all much less than a company paying to have a programmer onsite and if you get enough people using it then you can make more money than you would at a typical programming job.

    When someone tries to implement some sort of licensing system into the code or something like paid addons it just makes it so that corporations would more than likely fork the source and find someone else to implement it with the changes that they need. It isnt just the cost of the programmer but the risk of loss of use down the road. When it comes to feature rich software such as a CAD package or an ERP system then these risks make sense for a company as the return on investment is immense and more often than not the software is required for the business to function. So for smaller opensource projects it is always better to offer a premium service than it is to implement anything in software that would force people to pay for your opensource code.

    Then there is the fact that whatever license system you devise can be bypassed by someone who wants the software bad enough. Back to CAD packages for example, the licensing system for almost every package has already been cracked and not only can you easily find copies online but you can use them with out fear of getting caught if you are a little bit careful. YMMV and IANAL but even if the company knows that you have pirated it they may not be able to come after you unless they can show that they suffered commercial damages from your piracy. For example in some jurisdictions it is a valid defense to say that you copied the software so that you could learn the software for better job prospects and as long you didnt use it to make any commercial products for sale. Thats why i believe autodesk made the maker license for fusion 360, a brilliant bit of strategy of collecting all those software pirates and giving them legitimacy while taking control of all their data all the while helped along by the prevalence of youtubers

    In conclusion, making money through open source is quite simply the way anyone should make money off of software. That is to offer services around the code (support, priority bug fixes and feature development), even with closed source this would be a winning business strategy as it would allow for the maximum market penetration (everyone loves free software) while still providing a revenue stream (5 companies paying 1/5 of your sallary each is pretty sweet) and minimizing cost and risk for your customers

    1. “That is to offer services around the code (support, priority bug fixes and feature development)”

      If heard the occasional accusation that open-source intentionally cripple’s itself so that it NEEDS (not optional) things like support, and bug fixes to be useful. Even reflected in documentation that’s so inadequate some kind of PAID support is needed. Clever, if true.

      1. id be quite curious to know who those accusations come from. It logically doesnt make sense even on the face of it, anyone could look at the source and therefore submit better code thus code that was intentionally written badly for future bug fixes has no guarantee that the person offering the services would be the one fixing it. It also seems that accusations like that are based on some idea that it is possible to write bug free and perfect code on the first go. It also doesnt take into account that new features and compatibility fixes will always be required as time goes on. So people may make those accusations but they seem more politically driven than logically driven as it doesnt make sense to intentionally write bad code that can be viewed by everyone and thus lower the reputation of the person who is asking to be paid to write more code in the same project.

        There will always be bugs in any software, there are too many permutations of hardware and software that software has to run on to write bugless code.

        The same accusations could be leveled on closed source programs as well, the only difference is that you will see such things before putting down money with opensource code

        As for in adequate documentation, thats a problem for every piece of software and i have yet to find a piece of software that has what i would consider adequate documentation. Yes, Open source is typically worse at the documentation but that is because there usually isnt a project manager getting on the case of making sure there is a unified documentation style and level for the code. That being said, opensource tends to embrace wiki’s more which distributes the load of writing documentation as well as the code.

      2. I’ve never heard that. A popular open-source project usually has a vibrant community, which helps find and kill bugs, suggests or requests refinements, and provides information and support.

        But it’s not inconceivable that the occasional misguided open-source developer might think that’s a viable move.

  6. Yeah, “Open Source” projects are acting more and more like the WinTelOogle corps they claim to replace. Add Nitrux Linux to the mix. You need to donate first to get an ISO image, then use a scan code to get a link, except the email expires within a few hours. And, in my opinion it’s a half baked product. But I’m seeing this every where in the “Open Source” realm. So many “free” apps and programs are so limited as to make them nearly useless, until you subscribe or purchase. The better model is Suse Enterprise/OpenSuse and Red Hat/Fedora…look ok what happened to Red Hat. That model worked pretty well I’d say.

    1. After a quick google, i have to say good luck to those Nitrux guys… and i hope no one takes them seriously that they will not sell any information that they gather from you (they might not monitor the OS, but they get your data from your purchasing the ability to access their download servers)

      The funny thing i think about is what is stopping someone from just hosting their ISO once they get it? Also i just wouldnt trust any company that isnt upfront and honest, like their “you can still download the development version for free” yet provide no link anywhere that i can see to access it. The entire Distro has warning flags all over the place with the biggest one being their insistence on using znx.

    2. Yeah, there’s something shady going on with this Nitrux (I’d never heard of them before, either), and as far as I can tell it’s a recent shady.

      DistroWatch tracks the OS, including (as is their norm) linking directly to the hosted download locations for the OS media. There are links there for various Nitrux release ISOs that point to SourceForge.

      But the SourceForge project’s Files area has been emptied out completely. As recently as a month ago, the project history shows the latest 1.1.7 release being made available on SF — but that’s gone now, too. They seem to have decided to experiment with some sort of guilt-trip-ware model for this new 1.1.8 release, and if that includes removing all downloads of their previous versions, then that’s all the reason I need to write them off as open-source scammers. Beware.

  7. I feel his pain. I developed HPN-SSH. It’s in pretty widespread use but appeals for donations have largely been ignored. I get it though as I rarely donate money to other OSS developers. That’s just how this works sometimes.

  8. The easy way would be to offer the hosted version as a paid service, but still allow people to download the source and host it on their own server for non-commercial use. If anyone wants to use it commercially, they either use the hosted version, or you a support subscription to help them host it themselves and keep it running.

  9. 1. Release under copyleft license.
    2. Wait for developers at [billion-dollar-company] to find that your product will add great value to to their work.
    3. Sell non-copyleft license to [billion-dollar-company] so they can add it to their in-house closed distro.

  10. 1)leave some features on a paid-only version (or newly versions with new features paid only during x time), 2) older version under copyleft , 3) well documented software and show a list/compare functions avaliable on free/paid version 4) continue upgrading your software (dont leave it alone)

  11. The way I’ve seen it most successfully applied is to offer “enterprise” features for pay, over and above the open source features.

    By way of example, HashiCorp has done a good job with this. They offer the open source version of Vault, which is a web server that securely stores key/value pairs. It’s on github, and you can get everything you need from https://www.vaultproject.io . But if you want to use it in an enterprise setting, there are some features that you probably want to include, such as multi-data center clustering, and HSM storage of the master unseal key. Those are available only with an enterprise license. They’ve followed this model for all of their products, including Consul, Terraform, Nomad, etc. And it must be working for them, as they’re currently over 200 employees.

    So for a product like Toodles, perhaps he could add features that would be more valuable to teams, such as collaboration, change tracking, integration with Jira or github, stuff like that. If they provide enough value to a developer that he or she would download and use the tool on their own, then bringing them into the development organization for everyone might be worth a license to the company.

    Licensing is also hard. Licensing fees need to be realistic. Nobody likes paying license fees, but different companies react differently to them. Some companies don’t like per-seat licensing; others don’t like per-use volume licensing; still others think they’re too small to pay for a full “one-size-fits-all” license price. Everyone hates license managers, so enforcement is always an issue. Take a look at successful companies and try to emulate their model.

  12. “You need to be selling something more than that”. That is precisely the issue. Only huge companies can offer additional services. Indie developers are completely busy with writing the software already.
    Not to mention that a lot of open source software, if you are honest, profits from work of others that provide their work power for free.

  13. I wrote a utility software in the early 2000’s, sold vs. releasing free or open source version. I tried a limited ‘free’ version and downloads were modest, not overwhelming. When I evaluated doing ‘open source’. I decided to go against and try commercial. The questions I asked myself:

    1) does my tool provide value?
    2) people are willing to pay for
    3) is anyone else doing the same thing?
    4) Are there 20 enterprises looking for this functionality and willing to pay for it?

    My answer was simple, all four questions were an easy YES?! Open source was still trying to figure out a true business model, which in some cases has been resolved in certain categories. Sounds like the intention with this was meant well but as one responder says, I still need to pay for my time and put food on the table. My hope for this team or developer is make money off their software, advance software for a community and they learn a few things along the way!

  14. I’ve spent the majority of my career getting paid for open source work.

    When it comes down to it, it’s really no different than getting paid for any other software. You need to:

    * Make something that a lot of people need or want
    * Be in the right place at the right time
    * Solve a problem that is too difficult for somebody else to solve economically

    Pick two.

    There are a dozen “correct” ways to monetize after that – get help from an expert, sales people pay for themselves.

    The problem here is almost certainly that this project only checked one of the three boxes.

    (The alternative, and much easier method to get paid for open source work is to get hired on at an already profitable/funded company that does open source work. Just like how most people get paid for closed source work.)

  15. I’m not a lawyer, but my strong impression is that many folks (and even sizeable businesses), like those who write “licensed” plugins for WordPress, are doing so in contravention of the GPL under which WordPress is licensed… they clearly haven’t read the GPL (you cannot add another license to an already GPL licensed work unless you’re the copyright holder of the original code), nor have they “got” the way it works… so many of these models are very very tenuous – they’re one cease-and-desist letter away from insolvency. This also goes for other platforms with, for example, “licensed” themes. You *can* legitimately sell a “service contract” for easy updating themes, or getting assets from a CDN for example, but you can’t sell a proprietary “license” in addition to the existing GPL.

    1. That’s the paranoiac’s view of the GPL, as a “virus” that infects everything it touches. It’s the sort of FUD that marketing people from companies like Microsoft and Oracle used to spread back in the 1990s, trying to convince businesses that if they used any free software alternatives to their incredibly expensive proprietary solutions, they were putting their entire business at risk. It’s simply wrong.

      First off, nobody can dictate what you do with your OWN code, and the GPL does not change that. If what you were saying is true, there could be no commercial entities at all that offer any products based on GPL’d code, but in fact there are countless such companies, representing billions of dollars in revenue each year. Writing a WordPress plugin and offering it for sale does not involve relicensing WordPress, and there is no requirement that a WordPress plugin be licensed under the GPL, because only the author of that plugin has the power to choose how they license their own code.

      Second, who’s going to slap the plugin vendors with a C&D? Automatic, the company behind WordPress? They created the plugin system, which is a fully-supported component of their overall architecture, and they explicitly encourage monetization as a way of enhancing their very profitable commercial enterprise so that everyone involved gets to make money.

Leave a Reply to RobertaCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.