It’s been a while! I’ve been living under a rock — coding and growing a SaaS app. As I emerge from hibernation, the best way to distill what I’ve been up to would be hard lessons, lucky decisions.
I find that so much of what’s shared online is an endless parade of the ~greatest highlights ever~. This creates a warped picture of what it’s like to build something new. Instead, I’m going to cover the raw stuff. No glitz and glam, just real stories from the frontlines, things I never learned as a PM in tech.
To set the stage, I am right in “the messy middle” — I have a product and happy customers, but it’s not clear how this will compound, or if that’s even a given. The product has also been through multiple near-death events in only a few months, which is a sobering reminder of what it takes to will something into existence.
It starts with a cardinal sin
If you want a crystal ball for your early growth rate, it’s right at your fingertips. How many target customers can you get on a call? Here’s a tempting excuse: once I have something to demo, then they’ll respond. While demos make pitches stronger, silence rarely breaks into applause overnight.
I was about to quit as it was near impossible to get people to respond. Then I had a fateful call:
Customer: I paid $500/mo for an assistant to take care of things, but they weren’t that reliable and it was annoying to manage them
Me: What if there was a tool that took care of it, for like $50/mo?
Customer: Oh, that would be amazing! I would definitely try it
Thinking I had heard the magic words, I naively spent a month building this tool. Then I spent the next few months facing a renewed wall of silence. I over-indexed on one thrilling conversation, and forgot the grim reality of cold outreach.
With that said, hard-to-reach customers is not a death sentence as long as there’s a path for how it gets easier. What’s hard right now will (probably) be hard for the next competitor. Today’s challenges can turn into tomorrow’s moats.
But challenges still need to be overcome. Just as we need time to fine-tune the product, we also need time to fine-tune the pitch. Doing it in parallel is the way to go.
“Free” is a trap
Consumers are used to “free” stuff, but businesses are used to paying for value. When people pay, they have higher expectations and more reason to give feedback. They become the customer you want — engaged, with skin in the game.
When it’s free, the opposite happens. Free can also attract people who are low-intent and would want free forever — so even if they give feedback, it may not be the profile you want, which muddies the waters.
This was lost on me early on, when I was desperate for any bites at all. In hindsight, I would’ve made the “free” product a timed trial, or charged a small amount for the early adopters. It’s a scary choice, but makes for much clearer signals.
The lurking fear is always: what if nobody pays because the product isn’t good enough? To which I now say, it’s good to know the truth asap, because then we can start figuring out what justifies paying.
Rejection is redirection if we choose to read the signs.
Same problem, different solutions
One competitor is built by an ex-engineer, let’s call him Harry. We’re solving the same problem, yet we have surprisingly different solutions. All our divergences seem to stem from a single question: is it better to reduce the # of decisions a customer has to make to reach their desired outcome?
I believe nothing is more stressful than a blank page. This is why templates are effective, they solve the cold start of infinite choice. So anytime a customer needs to make a decision, I present a default option to save them time, or decide on their behalf in the background.
There are downsides. While my solution is faster and easier to learn, it's less flexible than Harry’s solution since he has the customer pick every setting.
Harry seems to think in features, while I try to think of the “golden path” — what’s the best way to help the customer get their job done? My new bar is to maintain the speed that customers love, while adding flexibility where it’s important.
How to become your own customer
I’m convinced a lot of products suck not because builders have bad taste, but because they don’t use the product like a real customer. This is the wisdom behind “build something that solves your own problem”. A hidden downside though is that other people like you probably also have the same problem, which invites unnecessary competition.
I prefer to build in overlooked spaces where tech refugees are not looking. The struggle then is building for a different customer profile, but I’ve since stumbled upon a way to become the customer.
It started as a somber observation: an early adopter had not touched the tool in weeks. It turned out they were looking to hire someone to use it for them. While the tool saved them hours a day, they wanted to bring it down to zero. I offered them a service + software bundle, and it’s the single best decision I made.
Using my own tool as a service has forced me to be a real customer. I suffer when there are bugs. I know exactly where the product falls short. It has also helped me get to know customers better, making it much easier to keep going even on bad days.
For every DIY tool, there’s likely demand for a DFY (done for you) service. And while service is hard to scale, it might just be the edge your software needs to get off the ground.
When being customer driven is not enough
There’s a repeated mantra in tech to be customer-driven, as if this is what separates great product people from the also-rans. Actually, this is the bare minimum.
In the beginning, there are no customers, at least none that care yet. If your primary fuel is to wow customers, this can be deeply disheartening. I’ve seen people abandon promising projects because customers didn’t show up on day one. There was nobody to impress, so they packed their bags and went home.
Having an external locus for motivation is ok when working for someone else, but it’s disastrous when working for yourself. This is especially the case in bootstrapping because there are no funding milestones either.
Before we can be customer-driven, we need to be self-driven. The work and the quality has to matter to us, even if there’s no audience in sight.
Someone once said, anyone can want a gold medal, but few want to train like an Olympian. Similarly, anyone can want a shiny SaaS business, but few want to bear the slow grind of winning customers every month, hoping that one day, it all stacks up to something remarkable.
The grind is easy to forget because most stories skip to the big win. Since quitting my job, I’ve been in search of a grind that feels like gold even if there was no promise of a medal. Bootstrapping SaaS has been the hardest and sweetest of them all.