How to turn an open source project into a profitable business
Despite the entire premise of open source software distribution being “free”, multi-billion dollar companies like RedHat, MongoDB, GitLab, and Elastic have already broken ground building profitable businesses with open source at their core. But is it possible for a smaller open source project to find its way into this land of commercial opportunity?
Editor’s note: the original version of this article appeared on TechCrunch.
Commercial open source is open-source software that is commercialized in some way. The creators offer the open source software for free, and generate income via consulting, tech support, or premium features/versions of the software. In particular, “open core” refers to the latter strategy of making a set of “core” features freely available, while also offering premium or pro services. The aim is to mix the collaborative, transparent world of open source with a sustainable business model.
And, in general, the trends in commercial open source (COSS) are encouraging! New products like Meilisearch and Supabase are gaining traction exponentially faster than the legends of COSS—like MongoDB, which was founded much earlier.
Let’s give some more context to the graph above which shows some notable projects and their GitHub star histories. From 2010 to present day, the number of GitHub users exploded from 0.5M to 103M. It might be tempting to suggest that this influx of new users into the community would be the driving force behind the increase in stars. But, at the same time, the number of projects (repositories) has grown at an even higher rate, from 0.6M to 359M. And with this, importantly, the average number of users per repository has shrunk from 0.8 to 0.3! Despite the new users, this means the competition for GitHub stars is now much higher than it previously was. This suggests that the superstars above are indeed outliers, and replicating their success remains elusive.
According to Crunchbase, investments in open source based products have almost tripled over the last 7 years: from 58 deals in 2015, to 144 deals in 2021. Compare this to the much more modest 40% growth in deals in SaaS (albeit from a much higher base): from 2,713 in 2015 to 3,738 in 2021. Judging from these numbers, investments and star dynamics, COSS is in a sweet spot at the moment. With that being said, we must keep in mind that COSS and developer tools still occupy a particular niche. After all, at the time of writing, there are 25–30M software developers in the world. And though productivity in this industry is much higher than in many others, this number represents a fraction of the other big markets, like finance or retail.
Moreover, monetizing products built for developers is still, to a certain extent, an open question.
How to monetize open source
There are multiple strategies for earning money from open source.
Let’s start with the simple one: crowdfunding and donations. Grant money falls into the same category as a donation, with the difference being mostly in the process. Foundations are a vehicle for collecting donations from large sponsors or from a great number of them.
That said, such earnings are unlikely to cover the costs of a growing COSS. Take PostCSS built by Andrey Sitnik, for example, a widely popular CSS framework used by giants like Meta and Google, #1 State of CSS. Through an Open Collective hub, with 27K stars on GitHub, he collects only about $12K per year.
The second option is consulting and support. While this model has lower margins and is harder to scale, there are many benefits with providing consulting for your open source solution’s paying users; solving their problems hands-on provides unique exposure to their pain points, and therefore promising areas for improvement.
Consulting has inspired many aspects behind the product development of AnyCable, our scalable WebSocket infrastructure for Ruby and Rails applications. Clients reach out to us about building real-time functionality—chats and notifications designed to survive during major virtual events, or collaboration tools as an integral part of their product, and their feedback directly drives development. AnyCable brought the parent company, Evil Martians, leads that generated almost $1M of consulting revenue.
While this may change in the future, SaaS is currently the standard way of packaging and delivering a software product. It’s the most common means of commercialization; customers pay you to run, scale, and manage the software—so they don’t have to. This approach has its limitations, concerns, and costs, but one thing is clear: using SaaS is simple, and people value simplicity and convenience, and logging into a complete solution is much more convenient than investigating the inner-workings of the product.
Finally, one more way of commercializing an open source product is by building a special extended version with a commercial license. To decide what goes into the paid version, think about the customers who would get so much value from your product that they would be willing to pay for it—and then build features specifically for them. Often largest clients will benefit from additional performance optimizations, scaling and clustering capabilities, enhanced monitoring, and special integrations improving developer experience and productivity.
For instance, imgproxy open sources the core functionality of image optimization, while paying customers, such as Photobucket, Substack, Labelbox, use specialized features that can be used at scale and solve problems individual developers with a passion project won’t have: smart object detection, advanced compression algorithms, chained processing pipelines.
To find your path, talk to your clients and learn their business goals and pains.
Practical steps forward
To summarize, here are the feasible steps to making an open source product a business:
- Discover a real pain point in your project, and try to solve it. If this problem isn’t unique to this project, try repeating it on other projects and do a bit of customer development: ask your peers about this problem. If you find this issue to be common, open source your solution. Many sustainable COSS businesses, like Bullet Train, started with that philosophy in mind.
- Your open source project can begin as a pet project, but only if you can devote time to it. 10 hours per week for a given period of time (day, 3 or 6 months) is a good starting point.
- Find a co-founder with complementing skills and experience. Immediate circle: connections, friends, co-workers, or Y Combinator’s cofounder matching are a good place to start. If you are an engineer, you need a business-focused partner. Split equity 50/50 but use a vesting approach with a 7–8 years vesting schedule. Find someone excited, complementing your skillset and who’s ready to commit the same amount of time (and energy) as you.
- Force yourself to have real human conversations with potential customers, and the sooner the better. Know that your gut will make you avoid it and postpone it, but there’s nothing more useful than talking to people and correcting your ideas about what they “should” think, want or do. Learn how to help them.
- Try to define an adequate measure of success, i.e. what would prove to you that it is worth giving up everything to focus solely on this (GitHub stars? Revenue? A consulting contract? Fame?)
- Choose a monetization strategy and start monetizing immediately (create a simple landing page, publish your product on a marketplace)
- Let people know about your product, i.e. start marketing: write content and publish it on Twitter, Hacker News, Reddit, engage with relevant communities, launch on platforms like Product Hunt, talk about your product at meetups and conferences, launch a newsletter, record videos for YouTube, partner with other existing products in the same ecosystem, build your own community.
Evil Martians is a product development consultancy with offices around the world—including in Lisbon, Portugal! We work with startups and established businesses—and we get things done. So, if you have a project in need, get in touch with us!