
A few of the businesses owners that I work most closely with are unique in that I don't (or can't) really share much about their businesses due to owner privacy.
But one of them is just too damn interesting to not talk about, so I'm going to do my best to share some recent lessons without sharing any identifying details.
Before working together, this business had been running for a few years as a sort of boutique studio producing niche digital comics. The owner was the original artist, and had built a bit of a following.
My first piece of advice wasn't even really an official consult. It was a casual recommendation that if they offered a free comic in exchange for an email address, they could start telling those subscribers about new comics each week to boost their weekly sales.
But my favorite kinds of people to work with are the ones I don't have to tell twice.
This owner started offering a free to build their list, proactively market new releases to that list, and over the course of 6 months nearly tripled their monthly revenue.
4 years later, they passed $1MM in lifetime revenue. From selling extremely niche digital comics on the internet at $10-20 a pop.
Their catalog has grown to include hundreds of comics, made by dozens of artists. Their pipeline for new releases is planned 8-12 months in advance. They release new work every week like clockwork.
And in some ways, it's the most interesting businesses I work on because it's the most boring business I work on. The owner has made it a machine. It's beautiful.
It's also one of the few "consumer" businesses I work on, which I like having to compare and contrast with the B2B world where I spend most of my time.
So now you're caught up. Let's talk about our most recent experiment, what we built, and why.
As this business grew, it's catalog continued to be the main source of income.
But as the catalog grew, so did the audience, and we had a new problem.
Whenever a new customer would find us, they had too many choices.
We used Gumroad to reach this point in the business, but were running into the limitation that it's designed for people with relatively small collections of products. I'd be surprised if anybody else used it to sell a brand new product every single week, let alone a catalog of hundreds of comics.
If we wanted to escape the reliance on new releases for revenue, we needed to start thinking about the back catalog as an asset instead of simply a historical collection of released work.
It's worth remembering that at one point, the only way for someone to buy from this business was to join with a monthly subscription on Patreon. Adding the option to buy individual comics and building simple but powerful email list systems with ConvertKit had gotten us very, very far.
But after years of being stable, the recurring membership revenue slowly began to dwindle. It also took the hardest hit during the COVID pandemic and again during recent economic turbulence.
And understandably so! Monthly subscriptions are among the first to hit the chopping block when people are looking to trim their expenses.
Beyond a reason to sign up for a membership, if we wanted people to stay, we needed to find a way to over-deliver on value in our memberships.
Most of our best ideas for members-only perks would be costly or difficult to sustain. We'd done a lot to decrease the amount of complexity and effort in the business, so if we were going to add any back in, we had to think carefully.
Most of our ideas didn't get very far.
One of our more successful experiments to solve problem #1 (thinking about our back catalog like an asset) has been creating curated bundles of comics that are related in some way, and selling them for less than it would cost to buy
them individually.
One day, a customer asked if they could request a custom bundle of comics.
They already had some comics in the bundles we offered, and were interested in comics that we weren't bundled yet.
The immediate answer was no. Not because we didn't want to, but because there wasn't really a good way for us to do it and the effort to create the bundle one-off just didn't make sense.
Maybe if the tech made it easier, we could. I even explored our platform's API to see what was possible, and couldn't come up with anything good.
Until the owner came to me and asked...what if we could offer our members the ability to pick a certain number of comics for free, as a perk of membership?
As soon as they described it, my mind went to Audible.com, the monopoly audiobook platform owned by Amazon.
I buy a lot of audiobooks, but the way I buy them is rarely by paying the sticker price shown on Amazon.com. I pay for a monthly audible membership that gives me a certain number of credits every month, so whenever I want an audiobook it's a no-brainer when I have credits to spend.
Some months, I don't buy any audiobooks. But unlike subscriptions that I'm quick to cancel if I stop using them, I keep paying my audible subscription because if I don't use them one month, I know that I can use them in the future as long as I keep my account active. (I think they expire in 12 months or something, but Audible always lets me know they're going to expire so I should use them.)
Anyway, Audible's catalog is MUCH bigger than our catalog of comics. But the model seemed like it could work for us, and solve both of our problems at once: helping people overcome the paradox of choice while also increasing the value of our back catalog to our customers.
Amy coined the phrase "shop the shelf" in Just F#&king Ship as a way to describe the strategic use of pre-built tools whenever and wherever possible, especially when launching something new.
Sometimes I joke that the reason I will avoid building custom software until
and unless I've exhausted all of my other options is because I've built and
run enough software to know better.
But let's be clear. There is no "off the shelf" tool for selling digital products that has a built in credit system. At least not that I could find!
And even if I had found something, I know how much time it costs to migrate platforms.
So this experiment needed to work with what we have.
About a year prior, we'd successfully launched a new website that essentially mirrors our catalog, and then links to a Gumroad purchase link. Building this
site took a LOT less time than migrating away from Gumroad, and provided us with the illusion of a fully custom experience.
In reality, we'd built a fairly simple but cleverly constructed static website using Jekyll + Netlify's headless CMS. It was fast and flexible.
More importantly β and more reality than illusion β this website was the first step in gaining more control over our customer experience in ways that we couldn't get with Gumroad alone.
Fast foward to this new idea, and it was time to bend Gumroad to our will again!
After a little time with Gumroad's API documentation, we came up with the idea to use their coupon code system as the backbone of our credit system. Since
Gumroad's coupons can be generated by API, and applied to a product's checkout link, we just needed to fill in the gaps with some business logic!
I drafted an initial spec, and shared it with a freelance developer who I've worked with on a bunch of "data plumbing" type projects.
The plan was basically:
I wrote a quick spec and shared with a developer I've worked with before on various API integrations.
Within a few days, we had a working prototype of the middleware!
Our prototype was able to:
Not bad π.
After a few tweaks to the business logic, we turned to our Jekyll-powered website and starting building out some code that would:
And before long, our static site came "alive" by simply authenticating a Gumroad account. The dream had become reality!
Sidenote: I used ChatGPT to help me write a lot of this javascript code. While none of it was tremendously complicated, much of it was the sort of thing that would have taken me a LOT more time if I was relying just on Google. It was also pretty handy for debugging!
I still needed to know how to describe the code I wanted it to generate, so understanding how code works is critical to writing functional code with AI, but it was the first time I was truly impressed with what was possible.
At this point, all that was left was getting actual members to test it out.
Well, almost...
Our membership already had two tiers, which made it pretty obvious that we'd offer more credits per month in the more expensive plan.
But the owner had another idea. Given what we'd seen with the price sensitivity of this consumer market (and the current crush of the global economy), what if we added plans at the lower end of the spectrum, with fewer benefits overall but still a lot of value for the price.
We did a bit of spreadsheet sketching, landing on a pair of additional price points that felt like "no brainer" options for someone who was a regular buyer.
Four price points meant needing to redesign our membership pricing page, but it needed an overhaul anyway!
TailwindCSS let us make quick work of building a clear and friendly multi-column pricing page, including an variation for annual prepayments. We were even able to use URL parameters to link directly to the various tiers on Gumroad for completing their checkout.
Once again, a near-perfect combination of having control over the customer experience right until we needed to hand them to Gumroad for commerce!
One of the neat (and honestly, unplanned) side-effects of the way we built our system was that it the new credit system was effectively invisible until someone authenticated with their Gumroad account.
This allowed us to keep our login link private, only sharing it with existing members that agreed to help us test out the credit system.
We planned three phases to launch:
Phase 1 β Invite-only testers
Phase 2 β All existing members
Phase 3 β Public launch
In phase one, we sent a single email to existing members offering a batch of free credits in exchange for them trying out this new system.
We capped this group at ~20 people. About a third of them actually authenticated their accounts and tried out the credit system.
While we didn't get much feedback like we hoped, it seemed like no news was good news. People who tried the system with very limited instructions were
able to get their free comics.
Nothing "broke" and nobody did anything we hadn't planned for.
And that's what we wanted to see.
In phase 2, we extended the offer to all existing members.
Given that our initial test group went smoothly (if not quietly), we rolled out a similar offer to the rest of the existing members.
We went in with expectations calibrated that as long as nothing broke, we probably wouldn't hear anything. During a ~2 week window, a couple of small reports popped up, all easy fixes.
This was also the first time we heard from a couple of people that they were excited about this new feature, and getting more value for their membership.
More positive signs!
For 6 months, we'd built and tested this new system but other than the existing members, basically nobody knew what we were working on.
I've run enough launches β and seen what happens when 30x500 students run our playbook or not β to know that a successful product launch is all about
momentum.
Nobody is paying as much attention as you are (especially in the run-up to launch). You have to remember that most people aren't walking around through life looking for opportunities to spend money they weren't already planning to spend.
Launch day isn't so much a "first look" for the world but instead a first opportunity to take action. Which means people need to know it's coming!
So one week before launch day, we sent an email to our list (and a couple of posts in the niche social media spots we know our community watches) to tell people that new membership plans were on the way in a week, with a teaser that we had a new way for them to access more of our back catalog for a lot less money.
More positive responses came in from these posts, further giving us confidence that this would work!
We set everything up so that launch day would be easy.
We flipped the switches and to celebrate, a mutual friend signed up to be the first customer just before we hit "send" on our official announcement email.
Good we didn't hit send, because something critical broke. π π
After a quick review of the issue, we decided it was best to quickly roll back the website until we could implement and fully test a fix.
It was definitely a deflating moment, but the right choice.
With a fix in place and a thorough round of testing, we decided it was showtime.
We hit send on our launch email.
And within moments we had our first signups! π₯³
In those first 24 hours we also worked out a handful of small bugs and made a few quick improvements to the customer experience.
By all accounts, we're considering this launch an success.
You'll find lots of discussion on the internet about what happens when a product launch fails. But not much is said about what happens after a launch
succeeds.
Most people experience some kind of post-launch hangover.
Similar to the feeling after a night of celebration, a successful launch can leave you feeling drained and strangely uneasy. This is often most true for folks who don't launch often!
What are you supposed to do next?
The most tempting is to sit and refresh the stats. But to what end? The dopamine of the numbers climbing up will only last so long.
So don't fall into that trap.
Here's what we're going to do:
1. We're going to celebrate. Candidly, I'm terrible at this. Amy and I both are! But I'm going to make sure that we celebrate this win. We earned it!
2. We're going to observe. We've spent so many months building that it'd be easy to jump back into build mode. Tweak and fiddle.
Obvs, we'll fix bugs as we find them, but if we start tweaking too soon, it'll be hard to know what's working and what isn't. So we're going to focus on
watching and learning from our customers' behavior over the next few months.
3. We're going to plan and prioritize. If I were giving us the same advice I've given many others, I'd suggest that we should have planned and prioritized the next things to focus on before the launch.
One of the most common symptoms of post-launch hangover is the uneasiness of "what should I be working on next?" and the easiest way to solve that problem is to decide the answer before you launch.
Thankfully, I'm a salty old veteran of launch, and this business owner launches a new comic basically every week. So the hangover shouldn't hit us too hard!