This is an article I didn’t think I’d be writing any time soon. I’ve aspired to work full-time on my free and open source software projects for a long time now, but I have never expected that it could work. However, as of this week, I finally have enough recurring donation revenue to break even on FOSS, and I’ve started to put the extra cash away. I needed to set the next donation goal and ran the numbers to figure out what it takes to work on FOSS full-time.
Let me start with some context. I like to say “one-time donations buy pizza, but recurring donations buy sustainable FOSS development”. One-time donations provide no financial security, so to date, (almost) all of my FOSS work has been done in my spare time, and I’ve had to spend most of my time working on proprietary software to make a living. This is the case for many other free software advocates as well. Short of large grants on the scale of several tens of thousands of dollars, if you want to get your rent paid and put food on the table you need to be able to rely on something consistent.
Some projects (e.g. Docker, Gitlab) have a compelling product in the market and can build a company around their open source product. Some projects fulfill a tangible need for some other business (such as writing software they depend on), and for these projects large corporate sponsorships are often possible. However, other kinds of projects (including most of my own) often have to rely on their users for donations, and this has traditionally been a pretty dubious prospect. In August of 2017, I was making $0 per month in recurring donations to fosspay, down from an all-time peak of $20 per month. When I was researching the possibility of starting a Patreon campaign, the norm was less than $50/month even for the most successful open source campaigns. As you can imagine, I was somewhat pessimistic.
To my happy surprise, recurring donations to open source projects have taken off, both for me and many others. It’s amazing. After years of failing to earn a substantial income from open source, as of today I’m receiving $547.74 per month from three donation platforms (fosspay, LiberaPay, and Patreon). What’s amazing is that because the income comes from from several platforms and is distributed across over 80 donators, I can feel confident in the security of this model. There are no whales whose donations I have to live in fear of losing. There is no single platform that I have to worry about going under or dramatically changing their fee structure. This is unprecedented - we’re truly seeing the age of user-supported FOSS begin.
I want to provide some transparency on how I set my goals and where the money goes. You might be surprised to have heard me say that I’m only “breaking even” on open source at $500/month! Many projects can run on a leaner budget, but because I maintain so many different projects, I have different infrastructure requirements. This mainly includes domains and servers for CI, project hosting, releases, etc. At my scale, it’s most cost-effective for me to self-host my own dedicated servers in a local datacenter here in Philadelphia. This costs me $380/month at the moment for 5U including power and network. I’m not done moving my legacy infrastructure into the new datacenter, though, so I’m still paying for some virtual private servers. As I migrate these, I will be reinvesting the money saved into upgrading the new infrastructure.
The next question is where to go from here. I have set my full-time goal at $6,000 per month, which works out to $72,000 per year pre-tax, pre-infrastructure expenses. This number is a lofty goal, and one that I expect won’t be met for a long time, if at all. This number is based on several factors: cost of living, financial security, and taxes. The number is a significant decrease from what I earn today, but it is enough to meet each of these criteria. Let’s break it down.
Right now, I live in a pretty nice apartment in center city Philadelphia, which costs me about $1700 per month. There are cheaper areas, but I make a comfortable salary at my current job, which allows me to buy a nicer place. If working on FOSS full-time appears viable, I will move to a cheaper location when my lease is up and adjust the goal accordingly (I will probably move to a cheaper location when my lease is up regardless, actually). Because I’m locked into my lease (among other reasons), I did not factor major lifestyle changes like moving to a cheaper location into the goal. Other costs of living, such as food and necessities, work out to about $1000 per month.
The other concern is financial security. I am lucky to live a comfortable life today, but that is a result of hard lessons learned and has not always been the case. I cannot focus on FOSS if I’m only earning just enough to cover my expenses. Any major change in my life circumstances, such as a medical emergency, natural disaster, or even something as benign as my computer breaking down, would be a serious problem. Therefore, for me to consider working full-time on anything, the earnings have to allow me to save money. To this end, my earnings floor is at least 1.5x my expenditures. Some people think a more liberal ratio is fine, but I’m a bit more conservative - I used to really struggle to make ends meet. This raises the total to around $4000 per month.
Add to this infrastructure costs we already talked about, and the total becomes $4500 per month. Now we have to consider tax. If we look up the current tax brackets in the United States and do some guesswork, we can estimate that I’ll land in the 22% bracket under this model. If I need my take-home to be $4500, we can divide that by 78% and arrive at the total: $5769 per month1. Round it up to $6000 and this is our goal.
These numbers are pretty high. I understand many people, including some of those who donate to me, are much less fortunate than I. My lifestyle is a reflection of my assumption that the open source donation model does not provide a sustainable source of income. Based on this, I’ve focused my career on paid proprietary software development, which pays very competitively in the United States. The privileges afforded by this have shaped my costs of living. Rather than make up a number smaller than my actual expenditures, I prefer to be honest with you about this.
This doesn’t necessarily have to remain the case forever. As my income from donations increase, utilizing them as a primary source of income becomes more feasible, and I am prepared to reorient my life with this in mind. You can expect my donation goal to decrease as the number of donations increases. This will probably take a long time, on the scale of years. My housing situation and costs of living in Philadelphia will change during this time - I might not stay in Philadelphia, I might have to change jobs, etc. It’s difficult to set a more optimistic goal today that will prove correct when its met. For that reason, my goal is adjusted with respect to my current conditions, not the ideal.
So that’s how it shakes out! I’m glad we can finally have this conversation, and I’m incredibly thankful for your support. Thank you for everything, and I’m looking forward to making even more cool stuff for you in the future.
Correction: that’s not how taxes work, but the simplified version gives us a more conservative number - which is a good thing when your livelihood is at stake. ↩
Articles from blogs I follow around the net
We are excited to launch the new Go official swag and merch store shipping worldwide. We are even more excited to announce that 100% of the proceeds from the Go store go directly to GoBridge. GoBridge is a non-profit organization focused on building bridges…via The Go Programming Language Blog July 18, 2019
This is a psuedo-transcript for a talk given at Deconstruct 2019. To make this accessible for people on slow connections as well as people using screen readers, the slides have been replaced by in-line text (the talk has ~120 slides; at an average of 20 k…via Dan Luu July 12, 2019
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. My focus this month was to finish the Heap Allocation post, on which I had been working since March. I originally wanted to include a sect…via Writing an OS in Rust July 6, 2019
Generated by openring