Caleb Porzio changelog.com/posts

I just hit $100,000/yr on GitHub Sponsors šŸŽ‰

Here's how I did it

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:

90k in income on a W2

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.

Original Livewire tweet

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:

$21k in self employed income for 2018

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:

Email from a Livewire user asking to support on Patreon

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.

@faustbrian github user sponsoring at $24/mo on Dec 12th
(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 šŸ™ŒšŸ»ā¤ļø)

A payout statement from GH sponsors showing $25k in payouts

ā€¦and as of this writing, Iā€™ve grown my annual GitHub sponsors revenue to $112,680/yr. šŸŽ‰

A screenshot of github sponsors dashboard showing $112680 in yearly revenue

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.

Sushi Laravel package tweet

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:

  • 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 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:

Nunoā€™s tweet about Pest

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 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:

My tweet about new Livewire free screencasts

I added links to other parts of the documentation pointing people towards them so they know theyā€™re there:

A call to action telling docs visitors to watch the screencasts

A few weeks later I added a new ā€œprivateā€ group of screencasts for GitHub sponsors only.

A screenshot of a video being restricted to 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 šŸ™šŸ»)

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 are always open.

If you like the work I do and want to support it, you know what to do ā¤ļø

Much Love,
Caleb


Discussion

Sign in or Join to comment or subscribe

Player art
  0:00 / 0:00