51
44 Comments

The journey to a $1 million ARR SaaS without traditional VCs

How it took us almost five years and multiple failed projects to grow a sustainable and almost bootstrapped SaaS.

TL;DR

  • didn't like our full-time job after school
  • heavily inspired by indie hackers/bootstrappers
  • tried to build a B2C shopping app: FAILED ❌
  • tried to build a B2B SaaS, price monitoring for e-commerce: FAILED ❌
  • got the idea to build a web scraping API instead
  • managed to get to $1m ARR, but it took us nearly 3 years to get there πŸ˜…

The early days

SEP 2006

14 years ago. πŸ“…

We (Kevin and Pierre) met in high school in a small town located in the south of France.

JUN 2010

... school ends. πŸ‘¨β€πŸ«

We go learn CS at university. During that time, we started to learn about YC, IndieHackers, Rob Walling's book, the family, and this whole startup/bootstrapping ecosystem.

We learned that you didn't need to raise $100m to build a successful business!

MAY 2016

Time to find a job. πŸ‘¨β€πŸ’»

Kevin works for a small startup doing some invoice and banking data aggregation.

Things are fun.

Then the company was acquired by one of the top 4 big French banks.

Things become less fun.

He quits and starts to write a book about Java and web scraping

Image description


First product

DEC 2017

ShopToList πŸ™‚

We build ShopToList, a price monitoring extension. You save the products you want to buy and get notified as soon as its price drops.

We get a decent traction and have a quite successful ProductHunt launch.

MAY 2018

B2C is freaking hard. ☹️

But that is not enough. We can't find a way to monetize the product and haven't found a scalable way to acquire more users. We sell the product to a web agency and move on to other projects.


Going full-time and building our first SaaS

JUL 2018

First SaaS idea. πŸ’‘

While building ShopToList we notice that many people use ShopToList to spy on their competitor's prices.

In the meantime, Pierre had left his job as a data engineer for the french Zillow.

So this time, we decided to build a price monitoring tool instead.

This time, we will target businesses (B2B) in a validated niche. This makes us confident that this could work.

We were wrong.

SEP 2018

A successful launch. πŸš€

After two months in beta, countless user interviews, and many bug fixes, we finally released PricingBot.

JAN 2019

First customer. πŸ’΅

Soon after getting out of beta, we finally managed to get our first customer. We're ecstatic that real businesses give us real money for a product we make for the first time.

APR 2019

The failure to get traction. πŸ’©

After months of endless marketing experimentation, feature development, and optimizations we have to face that people don't want to pay for our product.

We also notice that we are building into a niche that we don't know well (e-commerce), which shows a lot when talking to potential customers.

We're considering moving on to something else.

Image description


Pivoting to a web scraping API

APRIL 2019

The web scraping API idea. πŸ’‘

While building PricingBot, we used a lot of web scraping tools. And we noticed that all of them shared common flaws: hard to use, slow, not reliable, and not transparent about who operates the business.

Having a lot of experience in web scraping, we decide to scratch our own itch by developing a web scraping API.

MAY 2019

Building the MVP. πŸ› 

We spend the whole month of June working as much as we could on the MVP. We want to validate the product quickly, and to do that we need something that works.

Leveraging some friends we made on web scraping forums and growth marketing communities, we get around ten free beta-testers to try our product.

It allows us to iterate on what is essential to develop quickly.

JUN 2019

The small release. ▫️

Since we didn't want to make the same mistakes we've made with our product, we decide to ask for money as early as possible.

In June, we close the free beta and ask people to take a paid subscription to continue using the product.

To our biggest surprise, the first customer comes 50 minutes after sending the first email. We're delighted, but we know that now the hard part begins.


Building a sustainable SaaS

JUL 2019 🎩

The keys to building a good business. πŸ—

We know that if we want ScrapingBee to work we need two essential things:

  1. a product that sticks: recurring revenue
  2. a scalable acquisition channel

About the first point, we make the bet that most of our customers have regular web scraping needs and that if we make a good product, they'll stay with us.

For the second one, we bet on content. Kevin had been writing a lot about web-scraping in the past years, including a full book, and we think we can attract potential customers by writing good content.

AUG 2019

First content, first success. ✍️

We start trying to write the best possible content. And people love it. Our first big blog post was the "Web scraping without getting blocked" guide. We shared it a bit all over the place, and it quickly got 20,000 visitors. Proof that people like good content, even if it is written on a company blog.

PS: this article has now been read by more than 70,000 people 😎

Image description

OCT 2019

Avoiding distraction. πŸ™‡β€β™‚οΈ

Writing good content was working well, but it was very slow. Slow to produce, but also slow to rank on Google. So we start trying a lot of other acquisition channels to try to speed the business up. It was a mistake, making us lose focus and waste money. We go back to content and spend the time a lot of time writing other web scraping guides in several languages carefully:

  1. Python
  2. Ruby
  3. PHP
  4. C#
  5. NodeJS

DEC 2019

Talking to users a lot. πŸ—£

In the early days, we try to speak to as many people as possible to build the best web scraping tool out there.

But talking to customers can be challenging. Their time is precious, and most of them don't like to speak to companies for fear of getting trapped in an endless upsell call.

So Kevin had the idea to offer 10,000 API calls to anyone willing to discuss their web-scraping needs for 15 minutes over the phone.

This move allowed us to talk to around 100 people in less than three months and learn invaluable insights.

Image description


The road to $10k MRR

MAY 2020

Joining Tinyseed. 🌱

The goal with ScrapingBee was always to find a sustainable business, where we would be in complete control of what happens in the company without having the pressure to grow at all costs. And this is precisely why we never decided to raise money. However, a few years ago, Rob Walling and his friends launched TinySeed. An accelerator designed precisely to help people grow their business, but without any pressure to become a unicorn.

We applied and got lucky enough to get accepted. The money and the support we got from the program helped us grow ScrapingBee into what it is now.

Image description

JUN 2020

Improving the product. πŸ› 

2020 was a very "grind" year. And to be honest, all we did was the same thing over and over. Improving the product, releasing new content. In the spring we focused a lot on the customer experience, doing everything we could to make the API as easy as possible to use. We developed SDK in Python and JavaScript, a brand new documentation with snippets in 7 languages and a request builder.

Image description

OCT 2020

Slowly reaching $10k MRR. 🐌

In November, we finally reach $10,000 Monthly Recurring Revenue. A very symbolic milestone for us, because for the first time, it allowed us to get paid (almost) the same as our previous job, and it also meant that we were profitable.

But as you can see, this took a while. We started working on ScrapingBee almost 18 months before this moment.

Image description

JAN 2021

Growth finally kicks in. πŸš€

The last quarter of 2020 was a magical moment because, for the first time, we felt that growth was finally kicking in.

And while it took us almost 18 months to get to $10k MRR, it took us only 3 months to double our revenue to $20k MRR.

Image description


Growing the business

FEB 2021

Keep doing the things that work. 🌱

In 2021, we decided to focus on our strengths and write great content while trying to build the best web scraping API.

It is also at that time that Kevin and Pierre decide to split the role in the company. Kevin is now in charge of our whole marketing, and Pierre handles the product and technical side of the business.

MAR 2021

Content is king. πŸ‘‘

We reach a significant milestone, 1,000,000 pageviews on our website, most of it being organic.

It looks like betting on content was the right thing to do.

JUN 2021

First hire. πŸ“

Etienne joins the team full-time to help us with our growing development needs.

Etienne is a talented developer who worked in various industries before joining us.

In a short amount of time, he's able to release two beloved functionality of the API, the data extraction and the JavaScript scenario.

NOV 2021

$1 million. πŸ’°

In November, 6 years after our first product and 2,5 years after launching ScrapingBee, we finally reach the million in Annual Recurring Revenue.


The story is not over

JAN 2022

Redesign.

After 6 months of development, we released a complete redesign of our website in January, with a brand new logo, visual identity, documentation, and blog.

It hasn't been an easy road, and this wouldn't have been possible without all the support we got along the way.

Image description

THANK YOU!

Thank you, friends, family, colleagues, former colleagues, LP, TinySeed tutors, mastermind Zoomers, customers, Twitter supporters, ProductHunt upvoters and blog readers.

Happy to answer any questions you might have.

Pierre de Wulf 🐝

on April 13, 2022
  1. 3

    "we make the bet that most of our customers have regular web scraping needs and that if we make a good product"

    I still don't understand, why people do need a web scraping? I mean, what's the needs for web-scraping.

    btw you guys are super amazing to reach this milestones, congrats, it's amazing story

    1. 2

      When I was working on my product "EatRadar" a few years ago, I for the first time, looked into web scraping.

      I realized there was a lot of services out there that scraped websites for data. For my particular product, I needed prices, food information, store hours, etc for thousands of items.

      I found a few paid options but they were so hard to use and didnt even do a good job. I eventually found a free one that somehow did everything perfectly. It lacked as much features as the paid ones but actually worked but I wrote a few scripts myself to make it work best for me.

      The moral is, scraping data is needed for some companies and was / would have been very vital for my business if it had taken off. I would have been glad to pay for a working solution because it would help me make more money and save time.

    2. 1

      Tons of products are built on top of data that can only be obtained by crawling the websites that it's on. Think about price comparison websites, all those tools that give you stuff like people's work emails, search engines, job board aggregators...

      It can also be used for internal purposes, like keeping track of what your competitors are doing, and even trying to poach their customers.

  2. 3

    Great content,

    I am at the start of the similar journey, so a lot of points to take for me.

    Hope the growth keeps ✌️

    1. 2

      Thank you! And good luck!

  3. 2

    Why'd you keep going through your failures? I've always been very interested in what I call infinite entrepreneurs, i.e. founders who manage to persevere despite dispiriting failures (and also despite retirement-worthy success).

    So what keeps you and your team fueled? Do you just really love the grind? Do you fear having to return to 9-to-5 employment? Are you chasing financial wealth? etc.

    1. 5

      Basically: the ABSOLUTE fear of having to spend my time building someone else's dream.

      When we failed, and particularly with PricingBot, simply thinking of having to apply for a job again made me really sad.

      I'm not particularly looking for financial wealth, just looking for the freedom to say "ok, I don't have to work for someone else to pay myself and my family a comfortable life".

      1. 3

        πŸ‘πŸΌπŸ‘πŸΌπŸ‘πŸΌ

    2. 2

      Sounds like book research Channing 😜

  4. 2

    This is a great and helpful breakdown!

  5. 2

    Inspiring and interesting, thank you!
    May I ask about TinySeed?

    Did you find an extra value there rather than funding? can you elaborate on that?

  6. 2

    Salut Pierre !
    Merci beaucoup pour ton article plein de valeur, et fΓ©licitations pour ton parcours (pas de tour repos ;) ).
    Au niveau de tes canaux d'acquisition, c'Γ©tait presque uniquement du SEO du coup? Ou aussi du ads et outbound?
    Bonne journΓ©e Γ  toi et merci encore,

    1. 2

      Merci beaucoup Thomas!

      Oui, principalement SEO. Un tout petit peu d'ads (<$1k mois) et 0 outbound.

  7. 1

    Good job πŸ‘πŸ‘πŸ‘

    I saw you didn't use any tools to grow faster (or I just don't want to tell them). But today in 2022 there are tools like BNPL for B2B SaaS which help your customers to pay monthly for annual plans. As we all know most businesses have several SaaS subscriptions and going annually with all of them will cost a big piece of the budget. Here, Comfi helps them to go annually with SaaS but keeps paying monthly to them without any interest fees, while SaaS will get paid a year upfront from us.

    Here's a good read from our blog about that:
    https://medium.com/@amal_abdullaev/what-happens-when-saas-companies-sell-with-and-without-comfi-as-a-bnpl-payment-method-b54e62e580f4

  8. 1

    Really good case study here. It's super valuable to hear play by play on how the content worked and how it scaled up.

  9. 1

    Awesome post! I've always wondered what the dynamics of building a SaaS will be like (ie. tying the frontend to the backend). For example, I build websites based on data gotten from other sources. I can perfectly write a puppeteer script to scrape the data I need but have always wondered how that could turn into a SaaS that is offered for other users to use.

    Happy seeing you winning!

  10. 1

    Thanks for this post! Both inspiring and useful :)

  11. 1

    Kudos on a great job with ScrapingBee! This is very motivating :)

  12. 1

    Great post.. Thanks for sharing.. I'm a new member here. Would love to learn more about what kind of help TinySeed provided?

  13. 1

    Hope to see an article next year about 10M ARR. Good luck!

    1. 1

      I hope so too ;)

  14. 1

    What an achievement to overcome these "failures" in which you invested a lot of time to finally break through with ScrapingBee!

    Content is king. πŸ‘‘

    I have never been convinced of content strategies but can't help but admit that so many founders are successful with it.

    @Daolf How did you start putting out qualitative content without investing too much time or feeling like you don't make progress with your product because of efforts for content?

    1. 1

      Thank you for the kind words!

      without investing too much time

      We invested a lot of time and energy in the content.

      At some point, we realized that improving the product wouldn't add more customers add the end the month, publishing more content would.

      1. 1

        improving the product wouldn't add more customers add the end the month, publishing more content would

        Damn, that's a good point I'll have to keep in mind.

        As a developer, sometimes all you're thinking about is that customers grave for more features. As you say, sometimes that's not the case and other methods to grow the product become more valuable.

  15. 1

    Thanks Pierre! I appreciate the insight into how long it can take to hit the first $10k and the process you followed to get there.

    1. 1

      Thank you for the kind words!

  16. 1

    It's so great hearing successful bootstrapped stories - huge congrats on where you've been and where you're going!

  17. 1

    ScrapingBee's website is slick... Love it.

    1. 1

      Thanks, we've redesign it not so long ago ;)

  18. 1

    Awesome Pierre! Thanks for sharing πŸ™πŸΌ

    I have downloaded the book to read and will look at the Make integration as I’m 100% no-code.

    I have a project I want to build that uses web scraping based on user search terms rather than predefined values.

    1. 1

      Thanks, let me know if we can help.

  19. 1

    Great write-up, thanks!
    Do you need to literally "write the book" on a topic in order to build a brand via content marketing? Obviously your content needs to be engaging, useful, and well-written. Hopefully it doesn't have to be in book form though!

    1. 1

      Thanks!

      Of course you don't. The story about this book is that Kevin had already worked on this before ScrapingBee.

      However, you need, in my opinion, to really take the time to write the best possible content out there.

  20. 1

    Loved the story!

  21. 1

    What an incredible story, congratulations!
    Scraping could be tricky and very expensive from operation perspective, providing API based SAAS service is very smart!
    Great job!

    1. 1

      This is a great and helpful breakdown! Are you inspecting for the Best Headlamps for Hunting https://affordablemag.com/best-headlamps-for-hunting/ because you have a plan for a big game at night or dawn, for which you may need specific light combinations? Or you want to examine the location when you are hunting after sunset; that’s why you require a reliable flashlight to lead your move.

    2. 1

      Thank you very much!