I Just Hit $100k/yr On GitHub Sponsors! šā¤ļø (How I Did It) | Caleb Porzio
I have a story to tell.
My last year as a full-time developer (at Tighten[1]) was 2018. (Read āOn Leaving My Day Jobā[2] 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[3] 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[4] and hastily made a proof of concept for Laravel[5].
This day marked the abrupt end of my sabbatical. I was completely enamored with the project (now called Livewire[6]) 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[7] 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[8]. š
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. š
Wow.
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!
Phase 1: Good-Hearted Folks
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.
Phase 2: Sponsorware
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[9] with my buddy Daniel[10] on how to monetize it, we cooked up a novel idea called: āSponsorwareā
Hereās how Sponsorware works:
- Create a cool piece of software
- Make it exclusive to people who sponsor you until you reach a certain number of sponsors
- Then open source the project to the world
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[12] and was interviewed about the process on this episode of The Changelog Podcast[13].
Also, a friend of mine Nuno Maduro[14] recently replicated the technique with his project called Pest[15] 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.
Phase 3: Sponsored Screencasts
This is where the VAST majority of my sponsorships came from.
The chart speaks for itself:
So whatās the secret?
Educational content.
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[16] 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).
Nuggets Iāve Picked Up Along The Way:
Make good stuff
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.
Build an audience
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.
Charge an impactful amount
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 šš»)
Pick better tier names
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ā.
Donāt be afraid to talk about your sponsorships and how much you make
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.
Donāt feel guilty about making a lot of money.
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.
Well Wishes
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[17] are always open.
If you like the work I do and want to support it, you know what to do ā¤ļø[18]
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!
References
- ^ Tighten (tighten.com)
- ^ āOn Leaving My Day Jobā
- ^ Mustachianism (www.mrmoneymustache.com)
- ^ this post (dockyard.com)
- ^ Laravel (laravel.com)
- ^ Livewire (laravel-livewire.com)
- ^ AlpineJS (github.com)
- ^ GitHub Sponsors (github.com)
- ^ No Plans To Merge (noplanstomerge.com)
- ^ Daniel (twitter.com)
- ^ Listen To Full Episode (noplanstomerge.simplecast.com)
- ^ here
- ^ this episode of The Changelog Podcast (changelog.com)
- ^ Nuno Maduro (twitter.com)
- ^ Pest (pestphp.com)
- ^ the docs (laravel-livewire.com)
- ^ Twitter (twitter.com)
- ^ you know what to do ā¤ļø (github.com)