Original Author: Rui Ueyama (creator of the mold linker)
Translated by @windowsboy111
Minimally edited by @lleyton
The number of people with good feelings towards open source software and think about starting a business with it is a lot. Actually, I am there for a year and a half, and I had some trial and error with launching my own open source software business. I think I want to share my experience with it.
Maybe slightly expected, but I think starting from the conclusion makes it harder to talk about it. Let's follow with some main points.
- I developed the "mold linker" open source tool, and I tried to run a business with it originally
- It was hard to quickly get profit and a big return from it
- Most enterprises use open source a lot and don't plan to give money to these "free of charge software", and even if they want to pay for it, it's not doable within a company
- If I want to get a big return from it, I either have to originally make it as a service, or simply develop business-purposed software
The details follow.
Between 2013 and 2019, I was at Google developing the "LLVM lld linker". lld linker as open source software is kinda successful, and if you have a very large development scale, you definitely need to use it as a standard tool. Until that point when you compare it to the other linkers, lld linker has had the merit of high speed. Google doesn't get profit from lld directly, but all the Google engineers increased their development efficiency once the development tool is very lively1, so it was reasonable to ask the workers (in Google) to make something like the lld linker (About that I made an article/note about the Open source activity becoming my own full time job).
After that, in 2020, Corona virus was widespread and remote work became the norm, stock prices kept rising with the Corona shock and funding became more or less flexible, and I retired from Google particularly. But, people like me can make pretty much anything if we have the time, so when I had more free time, I tried to make a new thing called the "mold linker". The mold linker is interchangeable with the lld linker, but since I had a bunch of expertise from developing lld, I quickly planned the whole thing, and it turns out I made it so that it is magnitudes faster than lld.
So, it became a challenge to make an open source company and get money from it. From a long time ago, I had the urge to start my own business, so it was exactly the time and the best chance for me, I thought. I wanted to make an aim for like an impossible level of income.
In order to get money from open source the following 2 things were necessary.
- Make a popular open source software
- Somehow monetize it
In my case, (1) has not been a big issue. (As the industry-wide standard) lld linker's author's new product, people in a certain extent just got their eyes on it, and the spread of mold was actually pretty quick and so I left it alone and automatically there were more and more users.
I thought about 4 ways to monetize it originally.
- GitHub sponsor. For big projects, they can get more than 10 thousand dollars in a month, so maybe we can get a lot of profit from GitHub sponsors if we make it a popular project~? I thought.
- Buying support. If it's some widely used programs then there might be some business users who need support, and maybe I can get money from that.
- Contract for developing new features. For some users, they might want to pay and get some new features to mold, so maybe I can get money from that and then prioritize new features to development.
- Lastly, just sell the entire project. mold is under the AGPL License, so when it needs to cross a network and provide service, it will have the "full software" source code publication duty. For a linker, there's no way to provide service over a network, so there's nothing special regarding AGPL, but some companies (like Google) fully ban AGPL programs, so for those companies they will have incentives to buy the entire program. They buy the mold linker, then change the license to something like MIT, and match their own policies and now they can use it. Maybe there are some cases like that? I thought.
mold according to the target, became a popular open source software. People can simply switch and interchange with the original tools and get better speed from it, so many people will obviously want to use it. On GitHub, it also reached more than 10 thousand stars.
Although I thought about monetization, it didn't go well. On GitHub sponsors, I get around $1500 each month. (Personally it's $3000, but half are from other projects). For support contracts, I got one for 5000 each month. So in total these two give me $6500 each month, for a year it's $78,000. For the current Yen exchange rate (1 USD ≒ 140 JPY,) it's 11 million yens per year.2
The profit is kinda reasonable, probably, but I could've got several hundred thousand dollars from the engineer job I retired (I was a Google Staff Engineer), and I took the risk and started the business, and I only got slightly less than 80 thousand dollars, which honestly speaking didn't come together relatively. The support contract got stopped and I got $1500 less every month. At least, this is far from what I've thought about my successful image considerably.
For open source businesses, I think there are a few problems below.
First of all, not much enterprises actually fancy the support contract thingy, and the support contract business model might actually have a conflict of interest itself. Originally most enterprises just use the software without issues so they don't need support. And, the cases with needed support (where it's hard to use the software or there are a lot of bugs, etc.), if I settle on this kind of business model, if I raise the quality of my product, I get less benefits from it. For long term success, I have to make a structure such that I link the success of the user with my own success, but that ends up with the opposite structure. That's not desirable.
Second of all, contract for developing new features kinda can't get things done. In reality, using a few ten thousand dollars just to get an arbitrary feature to mold has happened before, but they didn't continue to order for more. In addition, originally, I wanted not a stock-type business, but a flow-type business. (It's not a business with man-month proportion regarding labour and number of sales, but rather a one-time profitable structure continuously making money. That kind of business.) Therefore, contracting is not really such a happy thing to do.
Third of all, getting a lot of profit from GitHub Sponsors is difficult. GitHub Sponsors doesn't consider how you use the software and will ask you to pay for it, as it's simply a nice thing to do, so it's hard to gather a large amount of money from it. If anyone already got something like a few thousand dollars from GitHub Sponsors, it's not only targeting that person, it's rather the economy: it shows that it's normal to feel like "oh I want to give money to some other random projects", and this feeling becomes pretty strict economically. Don't you think? Therefore, for GitHub sponsors, additional income is kinda easy, but large income? Simply impossible. This kinda resembles some random YouTuber getting a hell lot of profits from showing how they are getting spa, but fundamentally throwing money into 'show business' is different from throwing money into open source.
Fourthly, there are questions regarding the psychological burden you bring with gathering GitHub Sponsors. The number of sponsors are naturally decreasing, so for now I have to constantly ask for people to donate, but to people who literally don't even know about Sponsors, I just can't deliver the message to them in the first place, and in addition, it gives the people who are already donating a "this is not enough" feeling / burden to them, so it is painful to keep recruiting for sponsors. There are people who flare up when they hear that open source is economically a loss, (especially in Reddit, but probably I contribute more to open source compared to those people, so I am feeling a bit more depressed), but even for me I don't want to be a person who only talks about money. That's the problem one has to face with valuable software being provided without a price while the phrase "please pay as much as possible" is basically giving the opposite message at the same time, which, in that case, gives a simply-providing-software-under-nonfree-licenses kind of feeling, and that gives a dry business-like relationship in compensation.
Fifthly, gathering profit from businesses via GitHub sponsors is simply close to impossible to do. For example an arbitrary company uses mold and gets better development efficiency, those engineers want to sponsor me from the company. So, for the sponsorship, they ask for permission, then the manager accepts it, right? For normal enterprises something like "paying for something in compensation of getting nothing back in return" would be very hard to accept. Thus, it's already very hard to achieve when you consider the management ranks. Attributing the stockholders, and getting profits from donations as one wishes, is not really unlikely. But then again, "regarding the accounting process, does it count as donations (after you exclude the taxes and you pay) or expenses?" it's really a "who knows?" question and if it counts as expenses then you can't really clearly classify it. In short, if people in an enterprise want to sponsor, doing it in a businesslike way is extremely difficult. You have to do a lot of different adjustments in the company just to sponsor something, which probably isn't impossible, but you can just use "free software" without doing anything, so incentives for the political difficulties you have to go through in order to sponsor something just doesn't exist for anyone.
Finally, regarding the last problem, if there are companies that perform some internal procedures for becoming a sponsor and beforehand calculate the budget for the open source software sponsorships, it is possible to become a sponsor for them. For Japan, Cybozu3 are those kinds of companies, and they are supporting the mold project.
In conclusion, the upturn for the profit you get in return when an open source project succeeds is scarce, which means it's not an industry start-ups want for big returns instead of big risks, which concludes my situation. Profit is not everything, but if I want to get profit, I don't think it's reasonable to think about making open source software and somehow profiting from it.
So, how can one get big profits?
Some enterprises make open source projects then provide cloud services. They don't profit from open source software directly, but they profit using open source. But, regarding this business model, it is weak because it is vulnerable to the other services like AWS providing the open source software as a service, and actually that is happening a lot. Therefore, services like git and GitHub for example, provide some login mechanisms via a network, which is better, right? (Though git is not developed by GitHub.)
For the other plan, simply stop the open source thing, and change the license to "source-available business product" might be a possible method. The source code is public but under some conditions you'll need to pay to use the product. Under this kind of model, it's easy to get the business users to pay for it.
mold is actually under a sublicense (AGPL and MIT dual license for pull requests), so it's not impossible to change it to a business license.
However, in reality, the Linux version of mold has already reached the level of fully finished, so changing the license such late is difficult. The period is not fixed for the open source licenses, so if you change the license for the latest version, the old versions are still under AGPL. Therefore, even if I change the license for mold, anyone can just fork the old open source version and continue to develop it easily. Therefore, changing the license and making it business software simply makes me lose ownership to the project eventually and I only would've got a demerit from it.
On the other hand, the macOS version of mold is unfinished, so I changed the license and made "sold linker" as separate branding and as business software. sold linker is actually used for massive iOS development, so the licensing users are increasing.
In conclusion, I am now focusing on macOS/iOS, and I am starting a business on software that has their normal source code available.
Open source has its own good things. I have been a long time open source supporter. However, if your number one aim is to have a big success economically, then I'm afraid open source is not the way you are supposed to do it. Well, it's an obvious conclusion, and I did a lot of trial and error only to get to the unchanged conclusion ultimately.
Just when I got my attention to macOS version of mold, Apple rewrote the macOS version of linker and announced it.
Which means my macOS business thingy unfortunately got extinct. Apple learnt the risk of making a competitive product, but if it's done, it would've bought my linker before starting a new project, I thought. Actually, it seems like Apple started the implementation a few years ago for the new linker. With that one WWDC announcement, the stock price of Unity increased by 20% and the one for Imagination Technologies fell for 60%. When I saw that, I thought that the world is amazing, but I also received the direct hit. I started the project but it seems like it was a bit too late. Well, half a year of work just got vaporized, but consequently it isn't a big loss.
tags: open source
Footnotes
-
It is describing how the tool works very well. ↩
-
For reference, a bottle of coke costs around ¥100. ↩
-
Cybozu, Inc., a software company in Tokyo. https://en.wikipedia.org/wiki/Cybozu ↩