Complications of funding an open source operating system
I spend a decent chunk of my time working with 9front, and while it is far from being a house name the community is largely self sufficient and has lived on comfortably for over ten years. In the time that 9front has been around there have been plenty of open source projects created and reach funding in a state less mature than I feel 9front is now. I say that to not express some sort of frustration but it has lead to some discussions I had with some of the other maintainers over where we could go (if anywhere) from our current position. Part of this discussion was looking around at the success of other projects and evaluating our options, to which I've organized the possibilities in to rougly three catagories:
- Find a company interested in the project to bankroll projects/work
- Find a non-profit entity that sees an equally non-profit incentive for the software.
- Create a crowd funding system in which the developers are supported by a large userbase.
Corporate Sponsors
The first option is almost by definition excluded, the nature of 9front being its own operating system makes it quite difficult to onboard just parts of the system. You have to kind of go all-in or not at all. 9front is a self-contained system, you can't use it to run much of any existing software, and you can't run it on top of a lot of existing infrastructure solution. This makes using 9front for much of anything in a corporate world quite risky (from a business perspective). A case could perhaps be made for the purpose of "embedded" systems but considering the expectation these days is that your SoC comes with (at the least out of tree) linux support, and our general shortage of funds for buying a large range of systems to debug we're a bit stuck there. I think a large amount of the community would have ethical concerns, or at the very least, questions about a contrast in ethics between some corp and themselves. This can also have large impacts on the social portions of your project where developers with some sort of corporate backing are given some sort of fast track, or invited in to discussions that only happen behind closed doors. (see my last post about the Linux kernel for more about that). Overall it's perhaps the least appealing option our of the three.
Non-profits.
While non-profits are not as hopeless, there really is not a large selection to choose from. Non-profits are naturally looking for impact, a self-contained system is not particuarly interesting from that perspective. Perhaps most impactful from our perspective though, is that to many folks cutting checks, the question of a decently ethical operating system has been long since fufilled by Linux. While I may have disagreements about a lot the implementation details and the organization of the linux development community I tend to agree that for many people there are simply larger fish to fry. There are still many parts of an assumed software stack that feature software with not many (or lack luster) alternatives and perhaps focus would be best spent there. In short, the pool of money is small and linux is "good enough".
Sidenote: Yes the term non-profit has become muddled, as many of them serve the ego of one individual at best and the thinly veiled corporate interests of some mega corp at worst. One must be just as vigilant in following the trail of money with a non-profit (and perhaps even more?) compared to just getting a check from a for-profit company.
Crowd Funding
That leaves us with the latest trend in funding, the crowd source model, generally made possible now due to the popularization of such methods for other artists (Patreon and the like). There have been plenty of projects who have seen a large amount of success with such a model (both serenityOS during its hay day, and Zig come to mind). However the biggest issue with this is that it relies on popularity. If you want to break out into doing this it incentivizes behavior that I feel may compromise a project in the long run. Some examples:
- Popularity leads to a large userbase
How many times have we seen projects explode in popularity only to crumble under their own weight in terms of moderation, bug report triage, and governance? If you start to run before you walk (which this model does incentivize), you wind up with a perfect recipe for burnout. What was 5 hour a week relaxtion project has now turned in to a organizational mess with people wanting your answer to their questions yesterday. This is not insurmountable, it just requires a lot of attention and planning.
- Popularity requires accessibility
This is not a bad goal in of itself, accessibility of any kind is a noble goal. However certain technologies (like operating systems) are much harder to make accessible than others. Spinning up a VM can be involved and presenting an entire new environment, instead of using an existing one that people are familiar and comfortable with, can prove to be too much friction. Nerds (of all kinds) get very accustomed to their customizations and decisions on their setup, when you tell someone they have to leave a lot of that at the door (as an operating system might do with things like shells, editors, and so on) you make things much less accessible.
- People can expect some sort of "kick-back" for their money.
This is something that I (thankfully) have not seen as much of within the existing crowd funded open source projects. However it is something that is tempting to those looking for ways of increasingly turning users in to donators. Anything from private donator only communication channels to prioritized bug reports can create some perverse incentives. Software support and community are integral parts of the open source experience, you don't want to lock that behind a paywall.
To evaluate this from 9front's perspective: We certainly don't have the means currently to support a large spike in users, and the discussions needed to create something more structured and organized in order to do so are not particularly looked upon fondly by our current contributors. 9front's self-contained nature (we have our own text editors, shell and so on) and by virtue of being an operating system can make accessibility quite difficult, some progress has been made on this front but there is still a long way to go. Kick backs for donations I think would make many of our group feel uncomfortable, many of us work in 9front to escape the unfortunate realities of "real" work like money-based prioritization.
My conclusion when I first explored this (and now) is that as things are with the open source community at large, there is really not an a clear path forward. Any of these options are going to require a large investment of non technical time and some amount of compromise on incentives of the project in pursuit of securing and maintaing funding. This is not surprising, there is no free lunch here, but it is unfortunate that this is the situation we find ourselves in. I think 9front will continue on just fine, on its own terms and on its own time.