Folks, today's the day.
As of this morning, I've made over a million dollars on GitHub sponsors. Wowoweewow.
First, here's a quick recap of my open source journey:
If you want the full scoop of the early days, read: I Just Hit $100k/yr On GitHub Sponsors! ๐โค๏ธ (How I Did It)
Where did that milly come from exactly? Here's the back-of-a-napkin breakdown:
Aside: one of the reasons "companies paying me" is so high, is because of Fly.io.
They reached out to me out of the blue, told me they like what I'm doing and want to support it. I sent them a sponsors link. They replied with this:
I was floored. I threw a giant number on there to see what would happen, and they did it, no strings attached. One of the most gratitude-inducing experiences of my life.
That company puts their money where their mouth is when it comes to open source sustainability. Thank you Fly.
Alright, let's get down to business. Want some tangible strategy? Do you too want to make a million bucks in open source? It's easy! ๐ Let's dive in
TL;DR; write a bunch of code people like, then sell them screencasts of you building stuff with that code. Also write, speak, and record a lot.
Sounds so simple and silly, but this is the most important thing I learned.
People want to support you, but (most of them) aren't going to send you a job-quitting amount for no reason. You have to give them a reason. SELL THEM SOMETHING.
They are already a fan of you and your work and are super appreciative. They'll be happy to buy a course you make or screencasts you record, or stickers or coffee or whatever it is you sell them.
Even if you're not a good educator, you're the MOST qualified person to teach people how to use your software.
Just build something with your software and talk about it while recording your screen.
Keep it simple at first, don't go out and buy a bunch of lights and background trinkets.
Just hit record and publish that sh**.
Put the videos on your documentation site. Link to them from other docs pages. Give 10-20 videos away for free. Make them log-in with GitHub and become a sponsor for the rest.
Bing. Bang. Boom.
I still make most of my money from this strategy and I almost never show my face or do any fancy editing or graphics. I just make the content as good as I can and that's what people ultimately care about.
I kinda just said this, but it's worth repeating. You have a strong and distinct advantage over lots of other types of indie hacking businesses: you have a website that people come to every day and spend lots of time reading and searching around.
You have their eyeballs. You can make contact with them. This is huge.
Announce your new event in a banner at the top. Collect emails for your newsletter at the bottom of every page. Advertise your side hustle course in the sidebar. Make a few bucks from carbon ads. Whatever.
Just keep it looking clean and honest. Not like a recipe website lolโdevelopers will hate you.
Also, you should do all this while the getting is still good. The GPTs and Arcs and such are coming for your site traffic. They want to become the user-facing thing and your site will just be information for them to eat.
Go sign up for convert kit right now.
Offer people things for free in exchange for their email address.
Send them cool ideas and thoughts every so often. Make it worth their time. Make it awesome.
Reply to every single person that replies to one of those emails.
Write them in an informal way. People will like the authenticity, and writing them will be much more doable for you. If you make them too polished you'll burn out and quit sending them.
Then, when you have something to sell, send a couple emails leading up to it, then a launch email and just watch the magic happen. You thought your giant Twitter following was valuable. No, it's crap. Your email list is far more valuable.
Kind of the last point. Just be yourself in everything you do. Talk to people like they're already your friend. You'll end up attracting other authentic people and you'll make a bunch of friends that you'll have for years and years.
I used to think that most of my success was from my programming ability, marketing ability, general taste, etc... And yeah, I needed to be good at programming and talking and what not, but the thing that REALLY did it, was relationships.
I put myself out there. I went to conferences, both as a speaker and attendee. I looked people up and traveled to them in person. I talked for hours on the phone with people. Started small ventures with people. I hung out on twitter for countless hours. I chilled on Zoom for more hours.
And all that stuff added up to a giant pile of people I could call on for advice whenever I wanted.
And a big community of people who "have my back". They'll shout out stuff I do. They'll throw opportunities my way. They're just generally rooting for me.
And that's everything. Seriously. Relationships are everything. Build them. Keep them.
I woke up to an email on Jan 23 from GitHub saying that in a month they would be cutting off PayPal sponsorships:
I had literally one month's notice to switch people over from PayPal to CC and I had no idea how much money was going through PayPal, or which sponsors were sponsoring because of it.
Is this going to be a blip? Or bankrupt me.
At this point I had already had relationships to the sponsors team, but leadership had changed and I didn't even know who to reach out to, so I literally went to the support link on GitHub and wrote this message:
They replied back right away telling me that a super high up fella I won't name wanted to hop on a call with me.
He explained what he could, was insanely cool, looked up my exact numbers in the database live on the call, and personally sent me some money from his own PayPal account as a token. Hell ya. Damn GH.
The number was around $4k/mo. So yeah, not great, probably docked my pay by $50k that year. But my assumption is they were in a tight spot compliance wise or something, had no choice, and did everything they could to make it good. They are forgiven lol.
Nonetheless, huge lesson for me: Platform risk is a real thing: DIVERSIFY!
I still use and love GH sponsors, but I've also added Stripe, Paddle, Gumroad, and Lemon Squeezy to my repertoire of payment processors for new endeavors.
One huge advantage of GH over those others is their commitment to zero payment processing fees for developers. They are also way easier to deal with from a tax perspective than any of the those other ones.
The hardest part about this whole OSS game hands down is the "sell people something" part.
The reason it's so hard is you have to build something for people to buy ON TOP of building and maintaining your giant open source project. That's hard.
It makes the competition really tough in the market part of all of this. People will scoop your ideas, rip you off, wrap your code, whatever. Most of the time it's not a big deal and you just have to remind yourself that most of these projects go nowhere.
But SOMETIMES that's not the case unfortunately.
A lot of people don't think this way, but I do. I'm competitive. If I'm making a course and someone makes the same thing sooner, I used to get stressed.
This is a bad take. A massive lesson for me that fundamentally made my life way better:
Just like people listen to multiple bands, they'll buy multiple courses and watch multiple educators.
In fact, the more the merrier when it comes to education.
Now there's just more people spreading the word about your project. It's a net good every time.
So it's all sunshine and roses when it comes to education, but when it comes to code, it's not so much.
People generally use a single framework (if that's what you're building). So if someone else "wraps" your framework with a thin layer of API frosting or whatever, they'll start siphoning all the eyeballs and IP from your project.
It really sucks, but hey, you're the dummy who put all this work into a repository that has an MIT license that clearly tells people: you are allowed to take this code and do anything you want with it, including calling it your own, or selling it, or literally whatever the hell you want lol
This is hands down the most demoralizing part of open source. You create a thing that you and others are excited about, you embark on a years long journey of adding features and fixing bugs, then someone comes along and stands on your shoulders in a way that doesn't benefit both of you. In fact it harms you.
Even worse, they'll submit GitHub issues on your repo so that you can make their project better because you're under their hood!
The trouble with this model is that it will rob you of your optionality and exposure, which will rob you of your profits, which will send you back to a day job, which will kill your project slowly. Then everybody loses.
I never felt this way when I was a 9-5 dev, but when I became a maintainer, I felt this hard.
Good news is other people have felt the same thing and are starting to carve new paths like the Fair-code initiative:
This is a big one I've learned. You may be totally happy with your software and see it as a beautiful thing, but if you never release new major versions with ceremony, your project will start to feel stale.
If two years goes by and you didn't hire a designer to change your docs site, add a few decent features, and slap a new vX.0 on there, you're doing it wrong.
Most developers (myself included) adore the new and shiny. The recency bias is everywhere.
Whatever is most new, will feel most...good?
So just keep your thing feeling new, even if it's not a fundamental shift. You could literally just tag a new version, redesign your landing page, and crap out a tweet with flame, rocket, and tada emojis. Oh don't forget sparkle emojis too.
Here's a giant lesson no one will tell you: TURN OFF GITHUB ISSUES. IT'S A BROKEN MODEL.
What is this crazy job you have where random people from all over the internet get to demand your attention and hold you hostage until you they're satisfied and you can close their issue?
If you close an issue because it's not a priority or a bug that's too obscure and hard to reproduce? People will take it as an act of aggression.
Use GitHub discussions instead.
My philosophy is this: let the community talk amongst themselves about bugs and such they're finding. Then when things have crystalized enough, a competent enough community member can submit a Pull Request and THEN I'll give it my brain and attention.
Only once someone has met me half way by thinking through the problem, recreating it in an easily reproducible environment, and ideally added failing tests, will I apply my brain to it.
This way, I can maintain projects well. Still engage with the community. AND build other stuff to keep the projects fresh or funded.
There are certainly maintainers far better than I in this realm. They'll hang out in discord all day and keep an issues inbox zero. Good for them. That is not me. I have a wife, 2 kids, and still have a mountain of things to do on the repo WITHOUT constantly triaging issues.
And discord? I wish I could engage with the community more regularly in that way, but it just robs my focus in the deepest way. It will keep me out of deep work guaranteed.
I hang on twitter, respond to emails, and podcast a ton. So people still feel connected to me, but in a way that I can "opt-in" when I have the time.
This one I have no experience with, but it's something I'm starting to think about.
Success in OSS is a fleeting thing. Your lib is the hot sh** right now, but tomorrow, there's a great chance it won't be.
It likely won't all evaporate overnight of course though. Good to remember the Lindy Effect:
But nonetheless, monetizing open source is uniquely difficult for all the reasons I whined about early. So ideally, you start building some business around it that is more sustainable.
You know, like that SaaS everyone is gonna build someday that will save them? Yeah I have that hope too...
GitHub and other companies will send you random cool swag.
People will want to talk to you at conferences instead of you sitting awkwardly alone.
Your Heros will know who you are and you might even become friends with them.
Also YOU DON'T HAVE A REAL JOB, so yeah, enjoy that. Take a walk, go camping, just screw off and don't tell anyone.
And MOST importantly:
... are you ready?
... get ready...
You get to freaking write freaking code all freaking day and freaking get paid. And not that brown-field information-system crap that clients bring you. Not just tables and forms. Fresh, hot, steamy, unique programming problems that you can just gnaw on in bliss.
That is why I do it. That's what it's all about. Pulling that thread and seeing where it takes me. Riding that lightening of a deep problem. It's everything. It's my favorite thing in the world.
Don't get used to it. Don't forget you're not standing at a checkout or punching a clock. You're having the most fun a kid can have and it's your job.
Wild.
Love you. Bye.
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!