Three years ago, Kevin, a life-long friend of mine, and I left our jobs and decided to start our own bootstrapped SaaS at the tender age of 25. It was a dream we’d be nursing for a long time as bootstrappers like Rob Walling or Pieter Levels, and communities such as IndieHackers by the Courtland Allen had been a source of inspiration for us ever since 2010.
So we decided it was finally time to see what we could make of it on our own… but it failed miserably. Here’s what I learned.
Let’s start off with a bit of background. Before this, Kevin and I launched a small Chrome extension that had around 3000 users. This extension allowed people to save products they wanted to buy online and receive emails once the price dropped. Basically, it was similar to ShopTagr, just uglier.
It was a fun project and the first real thing we had released to the world. We quickly realized though it would be tough to grow it into something we could make money from. But we did learn that several of our users were e-commerce owners — rather than regular consumers — who used our extension to spy on their competitor’s product’s prices.
[Read: Neural’s market outlook for artificial intelligence in 2021 and beyond]
From this observation came the idea to build a price-monitoring tool for small and medium-sized e-commerce owners. Both Kevin and I were tired of our 9-to-5 jobs, and we thought this was the perfect timing to try and develop something that belonged to us: PricingBot.
We thought we had finally found the idea that would make us truly independent. Boy, were we wrong.
Fast forward one year, we were barely making any money and only had three customers. We just barely managed to reach $600 MRR. It was a complete failure.
After nine months, we abandoned the project (we actually sold it for a small amount of money because the traffic was nice) and moved on to a new idea, ScrapingBee, a web scraping API. We had more success with this one, and we managed to reach $180K ARR in less than 18 months.
So what was the difference between the failure of PricingBot and the success of ScrapingBee? Simply put, experience. Here’s everything I wish I knew when I began my first bootstrapped SaaS — I hope it’ll help you on your own journey.
This thing takes time
One thing you have to realize from the start is that bootstrapping a SaaS is a slow process, very slow. Of course, you’ll hear about fast growth, but real overnight successes are sporadic and not really something you should aim for.
Most of the time, when you look behind a fast-growing bootstrapped business, you’ll find:
- Years of building an audience
- Several failed attempts
If you take Convertkit, for example, one of the most successful open-startup projects of all-time. Their monthly revenue stalled between $1,000 and $3,000 during the first 18 months, but now they are at $2.1 million MRR!
We can also look at LemList, an email marketing tool that was wholly bootstrapped and is now experiencing incredible growth. They launched less than two years ago and have already reached 3 million ARR!
That success was far from being an overnight occurrence though. Before its rapid growth, the team had already spent a few years building an audience while launching other tools. You can read more about their story here.
Had my partner and I known how much time it actually takes to make money with a SaaS, we would have probably done A LOT more research before launching PricingBot.
If you need 30 emails to sell a $30/month product, the problem isn’t your emails
With PricingBot, we often had months-long email exchanges to secure a $50-100 subscription.
It clearly was never going to work.
People don’t like to tell others that they don’t want their product and don’t plan to use it. This is human nature: we tend to avoid conflict and we don’t want to harm.
So if a lead hasn’t had time to use your product for three months, they probably never will. As a founder, you need to keep that in mind while talking with a potential customer. And if all your discussions tend to span weeks or months before someone even signs-up you probably need to do one of these three things:
- You should increase your price, by a lot
- You should change your audience
- You should change your product
Do not expect to be able to make data-driven decisions from day one
In the early days, data, usage, and user count should be low. That will make your decision process much harder though, as it’ll make it impossible to do things like reliable A/B tests or draw real insights from usage.
Knowing this, it’s useful to look out for clues instead of undeniable proof that something is working or isn’t.
Here are the ones that I find quite relevant.
Clues that you are doing something right:
- People are angry when your product does not work
- People say that your product is too expensive but pay anyway
- People ask you a ton of things, even if your onboarding is awesome
Clues that you are doing something wrong:
- You had a three days down-time and no one bat an eye
- You have < 1% conversion rate on your landing page
- People love to talk to you but never pay you
Your best source of information won’t be data, but rather a good conversation with your users. Convincing someone to have a quick chat with you can be hard, but Kevin had a great idea when we launched ScrapingBee that allowed us to have around 60 conversations with our users in less than three months.
We offered 10 times what our free plan offered to people willing to spend 15 minutes on the phone with us. And we made sure people knew about the offer by displaying it directly on their dashboard.
Another corollary to that whole “low data” thing, is that even if something is bothering all of your users, you can’t expect all of them to tell you about it. Some people just don’t care enough to tell you.
This is why we have decided to assume that for every customer giving us feedback, ten others felt the same way, but were just not voicing their concern.
Using that, we made a new rule: we’d start talking about implementing a new feature every time three users asked for the same thing. Pareto and all that.
And finally, I want to urge you not to experiment with small changes when your problems are big! If no one is signing up or if no one is using your product, a 10% price decrease or a copy change won’t make the difference. Only optimize once you have something to optimize.
I know it’s hard because most of us would rather try out a lot of small changes instead of rethinking the whole product, but every time you do that, you are lying to yourself.
That’s what Kevin and I did with PricingBot. We thought changing the copy or the pricing would move the needle. The truth was, we had much bigger issues.
When starting, focus on what matters, don’t waste your time on futile things
When bootstrapping, time is both your friend and your enemy. It is your friend because you are owning your time and you can do whatever you want with it. It is also your enemy because this sense of ownership will often make you focus on futile things, and next thing you know, it’s been one year and you haven’t shipped a damn thing.
Here is a list of futile things we used to focus on, and in the end, it does not make any difference:
- Product name
- The color of that button (see my previous point)
- Tech stack
On the other hand, here are some points that are often overlooked:
- Clean landing page. Your landing page must create trust!
- Copywriting: no typos and clear sentences
- Talking to your users.
Do not expect the acquisition channel to be “plug and play”
Before launching PricingBot I knew that acquisition was hard, but I had no idea it would be that hard. For ads, I thought you only needed to set up a Facebook campaign, add some USD and wait for the money to trickle in. For content, I thought you just needed to write good content and wait for it to rank on Google.
I was wrong.
Marketing is really hard. And all acquisition channels are very different and complex. It’s ok to try several things in the early days to see what sticks, but once you have found something that works, even a little bit, you should definitely focus on it 200%. If you are new to this and you managed to get something to work, you can get 10 times better at this just by spending time learning about the subject.
It’s not fun because it often means doing the same thing and repeating the same process, but I can guarantee you that this is not a waste of time.
With ScrapingBee, we quickly saw that content marketing was something we were good at. It wasn’t ideal, but it was definitely working for us.
So we spent the whole year learning a lot about SEO and content marketing — and now we have around 30,000 visitors per month on our website, with (almost) zero ads. Kevin has worked a lot on creating an efficient process to create, publish, and promote our articles, and even it if feels a bit tedious to do the same thing every-time, it’s worth it.
Offer top-notch support
In the early days, your product will probably offer fewer features than your competitors, and it’s nothing to worry about. But that doesn’t mean you can’t outplay them in more than one key area.
One easy way to do it is to offer top-notch support. Install a live-chat on your website and try to be as reactive as possible. Sure, I’ll admit it doesn’t scale and you will lose focus, but honestly, that isn’t important at this point.
By offering top-notch support and talking a lot with your customers, you give yourself a chance to:
- Better understand your users
- Convince some people to leave a testimonial on your landing page
- Prove users that even though you are the new kid in town, you are serious and dedicated to your customers
- Find an evangelist who will promote your product for you.
Other key areas to focus on are documentation and onboarding.
All in all those last two years have been crazy and exhausting but I don’t regret choosing freedom over comfort. In retrospect, I think that it would have been hard to not fail with PricingBot considering all the things we didn’t know about how to launch and run a profitable SaaS. I guess the best decision we ever made was to just move over and try something new.
We are now 18 months in with ScrapingBee, a web-scraping API, and things are looking better now. We are building this thing in the open and I regularly share our adventure on Twitter, come and say hi!