I have a story to tell.
My last year as a full-time developer (at Tighten) was 2018. (Read “On Leaving My Day Job” for that story)
My income for that year was ~$90k:
Developer salaries vary like crazy, but $90k was pretty solid for me. Combined with my wife’s income and some Mustachianism it was plenty to save up a chunk of cash for a rainy day. (Or for a few months of working un-paid on open source lol - SPOILER ALERT 😬)
After needing a change of scenery, I left Tighten on January 11th, 2019 to go on a “sabbatical” (fancy word for “take a break and do whatever the hell I want“ 😛) and then start freelancing or something after a couple of months.
4 days into my Sabbatical, I read this post and hastily made a proof of concept for Laravel.
This day marked the abrupt end of my sabbatical. I was completely enamored with the project (now called Livewire) and couldn’t stop working on it full-time. (I’ve never stopped. I’m STILL enamored with it full-time.)
(I also created a pretty popular JS framework along the way called AlpineJS that I work on too, but that’s a story for another time…)
Believe it or not, open-source software doesn’t quite pay the bills, so I took on some small code mentorship clients to stay above the water for the entire year of 2019.
Here was my income for 2019 from that freelance work:
I reduced my salary by ~$70k so I could pursue my passion. It seemed risky, but I knew it would only get harder to make this kind of move in life.
Lots of kind folks reached out to me along the way asking how they could help support the project. Sending me messages like this:
I avoided creating a Patreon for a long time because I kept picturing a world where a handful of people give me five bucks a month. Which would be nice, but never seemed worth it to me.
Then I saw GitHub Sponsors. 😍
It seemed perfect. Hosted directly on GitHub and new enough that there’s some excitement around it.
I was accepted into GitHub Sponsors on Dec. 12th of 2019.
(Thanks for being my first sponsor, Brian! ❤️)
I’ve since received ~$25k in cash from GitHub sponsors… (They match the first $5k, and they take a ZERO percent cut. You keep EVERYTHING 🙌🏻❤️)
…and as of this writing, I’ve grown my annual GitHub sponsors revenue to $112,680/yr. 🎉
I am now making more money than I’ve ever made while developing open-source software for a community that I adore. Pinch me, I’m dreaming.
Was it luck? there’s certainly been a lot of that.
Was it fate? Let’s leave religion out of this mmkay?…
Was it that the software I built was so incredibly compelling that it forced 535 people to give me at least $14/mo. to keep working on it? …I wish. It’s more than that though. There were some key things I did along the way to get here. Let me tell you all about them.
Here we go!
At first, GitHub Sponsors was a place to send loyal/generous followers that wanted to support the project.
However saintly these people are, there aren’t that many of them compared to the number of people actually using the software (and often making money on it).
Because of the nature of open-source, people are already getting the software for free, so without ADDING any value to their lives, this strategy is seriously limiting.
The first section of this income graph is solely from kind folks who just wanted to pitch in.
Huge thank you to all those people.
Now let’s talk about that first spike.
Here’s where things started to get wild.
I had a cool idea for a small little Laravel package.
While recording an episode of No Plans To Merge with my buddy Daniel on how to monetize it, we cooked up a novel idea called: “Sponsorware”
(Listen To Full Episode)
Here’s how Sponsorware works:
It’s a win-win.
It worked incredibly well and I increased my yearly revenue by $11k in a matter of days.
I did an entire writeup on “Sponsorware” here and was interviewed about the process on this episode of The Changelog Podcast.
Also, a friend of mine Nuno Maduro recently replicated the technique with his project called Pest and had similar success:
This technique is fantastic, but it requires me to have a constant stream of new ideas. All of which would become projects I would have to maintain ongoing. I needed something more reasonable for the long haul.
This is where the VAST majority of my sponsorships came from.
The chart speaks for itself:
So what’s the secret?
Building a useful piece of software is one thing. Educating people on how to use it is an entirely different thing. (A much less fun thing I might add)
I try to make the docs as good as possible, but there’s always a need for more advanced content.
Rather than taking on the huge task of creating an entire course or book on Livewire. I decided to go a different route.
Here’s exactly what I did that took me from ~$40k to >$100k in ~3 months:
I released a free set of screencasts on the basics of using Livewire:
I added links to other parts of the documentation pointing people towards them so they know they’re there:
A few weeks later I added a new “private” group of screencasts for GitHub sponsors only.
THIS is the secret sauce 🌶️.
(To make all this happen I built a Laravel app with GitHub authentication that calls on the GitHub API to verify a user’s sponsorship)
Now, people watching the screencasts will naturally encounter these “private” screencasts and if they like the free ones, they will sponsor me (at $14/mo.) to get access.
I release a new batch of videos every time a new feature comes out, or I decide to cover a new Livewire technique.
I also provide sponsors with access to the source code for each lesson (which is hosted on a separate repo and will eventually become an entire web app written with Livewire).
In terms of income, this has been the single most impactful idea I have EVER had.
It raised my annual revenue by ~$80k in 90 days. It’s like magic.
Now I have a constant stream of income without having to spend all my time on major course launches. I can keep building the software I love for the community I love and release new screencasts over time (which I actually enjoy doing).
All of this works because I spent years and years honing my craft and producing software that is truly useful. I’ve poured everything I have into that work, and there are no shortcuts there. You saw earlier how I worked full-time on an open-source project for almost an entire year before seeing any returns. The work people are sponsoring for has to be quality and remain the #1 priority.
You can build the greatest tool on the internet, but it means nothing if no one’s paying attention to you. Building an audience is ESSENTIAL for any of this to work. Twitter followers and email subscribers are your most valuable asset. Again, no shortcuts here. Just hard work, and providing value to people publicly and consistently for a long time.
The biggest mistake people make with GitHub sponsors is offering too small of a first tier.
If people have the option of paying $1-5/mo. instead of >$14, they will pay the lesser amount.
I realized early on that if I want to really make a go of this, I’d need more than five dollar sponsorships. I started at $9 for a long time and then bumped it to $14 for the screencasts.
I’ve added a $7 tier that gets no perks for kind folks that just want to say thanks but don’t need anything in return. (These people are the aforementioned Saints 🙏🏻)
When you are setting up your sponsorship tiers, pick names that describe the type of person the tier is suited for.
For example. For a higher tier, label it something like “The Agency” or something that implies that a business should be sponsoring at a higher tier, rather than something vague like “Platinum”.
This way, when people are reading the tiers they will think to themselves: “What level of usage do I fall under”, rather than: “How much money do I want to spend per month”.
I grew up thinking it was rude to talk about money. This is a lie. I got a ten thousand dollar raise once because a coworker told me how much they made. After I learned what they made I felt comfortable asking for that same amount. Nothing would have happened if they didn’t tell me.
Transparency is health.
I don’t hide what I make because I’ve benefited from others not hiding what they make.
Even if it’s astronomically higher than me, I’m never bitter or entitled about it, I’m only ever excited and inspired. My hope is that others feel the same way.
On top of that, if you’re excited about your GitHub sponsors revenue, others will be too!
It’s not rude to be totally up-front that you rely on this money and it helps you build the software people are using and benefiting from every day.
I always remind myself that I am not a code missionary. If my sponsorship revenue climbs beyond a modest living, THAT’S OK. It’s not a non-profit.
It’s OK for my income to be proportional to the value my software adds to other people’s lives.
This isn’t holy work I’m doing. it’s software that businesses use to make money. They profit from it. It’s OK to profit as well.
I hope this saga at least amuses you, and at most provides a blueprint for making your own open-source projects financially sustainable.
SO many open source projects are started with enthusiasm and later abandoned. I believe, if working on those projects was financially sustainable, they would be better, grow bigger, and be maintained longer. Everyone would win.
If you try any of these techniques yourself, I’d love to know about it. My DMs on Twitter are always open.
If you like the work I do and want to support it, you know what to do ❤️
Much Love, Caleb
I send out an email every so often about cool stuff I'm working on or launching. If you dig, go ahead and sign up!