Software companies make money in a variety of ways, including selling licenses to use software, taking a percentage of money made through advertisements and sales generated through search engines, and providing services to help design and maintain websites.
The idea behind software companies is that they are created to give out software for free or for a very small price (or for no price at all) in order to convince people to buy other things. For instance, some major software companies ask individuals to pay for online support from the company whenever they need help using the service. This is a flimsy business model since it’s not really sustainable – there will always be those who wait until they need help before deciding what it is that they want to buy and those aren’t the most profitable customers.
Revenue from New Customers
Consumers play an important role in your business. But are your products worth the penny? While your investment is $10,000 on new services and products yearly, your gain is likely to be lesser when there is lower demand. This aspect of your business entails the revenue that you obtain from the new consumers you get. Earning the income that you expect is either from the additional goods and services that you sell that attract more consumers or maintaining the reputation of selling quality products. Perhaps, the calculation is easy. You get what you invested.
The first prerequisite is broad adoption: the open-source project needs to have a large user base and community.
Broad adoption is necessary because an open-source company can capture only a small amount of the value it creates. To be clear: an open-source company gives most, if not all, of its developed software away for free, and most of its users will never pay for that software.
In fact, most open-source monetization rates (the conversion rate from users to paying customers) are fairly small: often in the low single-digit percentages (if not lower). But given a large enough community, that conversion rate can be enough. This dynamic is one of the drivers behind the economies of scale in the open-source model. In other words, the need to have broad adoption is one of the reasons why there are often category “winners” in open-source.
This need for a large up-front investment in adoption is also why most successful open-source companies today start off as projects in a large company (e.g., Hadoop/HDFS at Yahoo!, Kafka at LinkedIn, Kubernetes at Google), as research areas in academia (e.g., Spark at Berkeley), or as VC-backed startups.
Where would you typically go if you need to increase your sales? While you focus on budget planning and inventory management, you are probably missing one of the most valuable aspects—your current clients. Your current consumers repeatedly praise your products, which build profitable relationships. Aside from that, you do not need to engage in hard selling. Your existing customers will buy your products without you even trying. Thus, you do not need to pay for the ads. Because of this, they trust your goods and services, so they invest in expensive ones.
Open-core has quickly emerged as the most popular way for open-source companies to make money. The idea behind open-core is that the majority of the code base is open-source, while a smaller percentage (targeted at production or enterprise users) is proprietary. The proprietary portion may be packaged into separate modules or services that interface with the open-source base, or could be distributed in a forked version of the open-source base.
Typically the proprietary features are ones needed for production deployments and/or at scale. (As an example, for an open-source database, features like monitoring, administration, backup/restore, and clustering are often proprietary.) One benefit here is that it allows the open-source company to license the core with a very permissive license (e.g., Apache 2), while retaining the ability to charge for proprietary features. It also allows open-source companies to defend against free-loading participants (e.g., such as the public cloud providers) by keeping certain features in the proprietary code base.
The challenge with this model is in balancing the open-source value versus the proprietary: if an open-source company gives away too much, then it gives up the opportunity to make money; but if it gives away too little, then the open-source project effectively becomes “lame-ware” (and the project will likely fail to get broad adoption).
Another challenge is that cleanly separating the open-source from proprietary features in code is sometimes difficult. Even if separating them is easy, maintaining two different code bases can also be challenging from an engineering process perspective: e.g., managing independently versioned releases that might need to interoperate and/or porting code back-and-forth to prevent code divergence over time. And often engineers would rather work in the open-source repo than the “business” repo. But despite all these reasons, this model is quite powerful.
Back to when you were just starting your software business, the main goal is to make money. A few years have passed, are you gaining enough from your investment? There are various ways on how you can increase your sales. One of them is advertising. Through social media networks, mobile billboard ads, flyers, posters, and brochures, exposing what you offer becomes easier. It reaches not just your target market, but even potential customers from a broad geographic location as well. This increases revenue.
The hybrid licensing model is the newest one on this list. Initially popularized by CockroachDB (Jan 2017), and later adopted by Elastic (Feb 2018), hybrid licensing takes the open-core approach but improves on it in a few key ways.
What hybrid licensing does is intermingle open-source and proprietary software in the same repository, and then make the code for the entire repo available. That is, the entire repository is “open code” (or “source available”), just not all licensed under an OSI-approved open-source license. Users can choose to use a binary with just the open-source bits (available under an open-source license), or use a binary with both the open-source and proprietary bits (available under the proprietary license). The proprietary licensed binary often will have paid functionality that is off by default, but can be unlocked by purchasing a license key.
The advantages of this approach for an open-source company include all of the ones listed under open-core, plus a few more: (1) having everything in the same code base makes it easier to manage engineering process and development; (2) it enables the entire team to work on the core project; (3) it allows users to upgrade from free to paid in-place, often without downtime (and without needing to interact with a salesperson); (4) it allows external community members to comment on, file issues on, and (if they so choose) contribute to proprietary features using the same workflow they’d normally use for open-source features (e.g., via GitHub).
The largest challenge is also the same as open-core: balancing the quantity and value of open-source vs. proprietary features.
I’ve often wondered how Software Companies Make Money? After all, for most of the software companies I know of, their products are available for free (at least initially) and the only way these companies can generate revenue is to finding more customers, sell more products or services.