12
16 Comments

Idea to paying customer in one month

When I get something in my head I dive in. And I dive deep. For example, a month ago I ran into a problem. One week later I solved it. And three weeks after that I turned it into a (tiny) business.

Here’s how I went from an idea in a notebook to my first paying customer. In 31 days.

Timeline of Mugshot Bot

The problem

It started when I was finishing up a blog post. I had everything ready: the article was proof read, the code samples were in place, and a gist was uploaded to GitHub.

But I forgot about the social share image. You know, the little preview that pops up when you tweet a link.

Twitter card preview for blog post

I spent forever trying to find the perfect stock photo. I tried all the "no design" tools to create one in my browser. Some were OK, a few were good, but most were just plain generic.

So I vowed to never waste another second generating these images.

The process

What follows is a day-by-day overview of what I worked on and important milestones in building up the implementation.

Day 1: The idea

What if I could automate all my social share images? Instead of futzing with a tool, I wanted to just drop a URL on my page and have that generate a decent looking preview.

So I jotted some notes for a MVP. What’s the absolute least I could build to get market validation?

Notes for Mugshot Bot on August 18, 2020

If you can’t read my chicken scratch most of those notes touch on three basic pieces of functionality.

  1. Scrape a website for the og:title and og:description
  2. Render an HTML view with a fixed design and drop in the scraped content
  3. Convert to an image and host it

Turns out, if I kept the scope very narrow I could get something built pretty quickly. And so Mugshot Bot was born.

Day 2: rails new

Ah, the most exciting part of a project, creating a new app!

I spent the better part of the next few days heads down getting something working. Rails, Active Storage, and wkhtmlto* were all key players in being able to build something so quickly.

Having a hyper-focused scope encouraged me to work on only what mattered. There was no pressure to make things look pretty yet, just get it working.

Day 4: Launch the MVP

Three days later I had something working. It was ugly and there was no landing page, but it worked.

v1 of Mugshot Bot

I tweeted asking for beta testers and discovered a few folks who were interested in helping. A few DMs later and the images were live on three different blogs!

I also posted to Hacker News with low expectations. But I made it to the top of the second page and generated over 2000 clicks.

Days 5-21: Gather feedback, improve, rinse and repeat

The next two weeks were spent talking to as many people as possible to ask as many questions as they would answer.

I learned a lot of valuable information, including what to call these little images. Most importantly, people were excited. Turns out I wasn’t the only one running into this problem.

During this time I also built out a landing page to test copy. This was helpful in learning how people describe the problem.

Mugshot Bot landing page v1

Every feature from here on out has come from (potential) customer feedback. This was an important learning because I usually build things where I'm the only customer.

Day 22: Launch customizations

The most requested feature by a long shot was customizations. Bloggers wanted to make their social share images look like their own, with their own branding.

v2 of Mugshot Bot

So I added Clearance for authentication and launched /customize, a single form to change a variety of settings. Now bloggers could change the accent color, the background pattern, and even upload a branded image for one of the themes.

Simple, on purpose. Because that's exactly what folks had asked for.

Day 31: First paying customer!

I spent all day Saturday at Weekend Club, an Indie Hacker accountability community. Even though I had to start early (5am EST!) I was able to finish up the Stripe integration and create a Pro plan for exclusive themes.

I received a ton of valuable feedback throughout the day. Everything from design tweaks to UX pointers to newsletter recommendations. And before the end of the day, BOOM! Someone saw enough value in the product to start paying for the Pro features.

The takeaways

I'm a developer at heart. I love to build things. But I spent more than half of the month talking to potential customers.

It took just 3 days to build an MVP. I could have spent 3 months building something that was "better" but with zero market fit.

It's easy to read books and learn how important this step is in building a product. But to actually live it is mind blowing. And the results speak for themselves.

Looking forward

In no way is this journey complete. Hell, it's only the beginning.

v3 of Mugshot Bot

Acquiring a customer is one of the most motivating things I've done since going independent. I've never been more excited about building something.

Watch this space for updates on Mugshot Bot or sign up for my newsletter. Lots more is coming soon!

posted to Icon for group Building in Public
Building in Public
on September 23, 2020
  1. 1

    Woah that was amazingly fast .

    1. 1

      Thank you! It felt like it , too. Nice to take a step back and market now. What are hacking on today?

  2. 1

    That's a pretty sweeet timeline. And it was unbelievably fast.Congrats!!

    1. 1

      Thank you! It was a whirlwind of a month and now I'm taking such much needed time off. In two weeks when I return hopefully I'll have another few customers :D

  3. 1

    Congratulations on your success Joe. Great story.

    1. 1

      Thanks Ryan! What are you building on Indie Hackers?

  4. 1

    Inspiring story Joe, congrats. Keep the good work up.

    1. 1

      Thanks, I appreciate it! What are you building now?

      1. 1

        I am working on https://confirmedin.com , if you can give your comment about it, would be great.

        1. 2

          Sure thing. First off, I'd tighten up the paragraph of text at the top. It's a lot to read right off the bat. Second, the CTA button should stand out way more. It's easy to gloss over and kinda doesn't look like a button. The box on the left looks out of place and unstyled - also, use italics instead of underlining to emphasize text. Underlines look like links. Lastly, make sure to add some form of "we won't send you spam" to the sign up form.

          Do you have any exiting users for social proof you could add?

          I'm excited to see what comes next!

          1. 1

            Thanks for the actionable insights. I will release the next version soon.

  5. 1

    Glad to see another fellow Rails developer :)

    1. 1

      :) indeed! What are you working on these days?

  6. 1

    Awesome story, how did you decide which features to put behind the paywall?

    1. 1

      Thanks! I had people requesting to brand their images to fit the style of their blog. And in doing so they wanted to remove the watermark.

      Following this, the themes that allow more customizations (e.g. a custom uploaded image) and removing the watermark are paid features.

  7. 1

    This comment was deleted 3 years ago.

    1. 1

      Thanks Primer! A fair amount of clicks came from The Hack Stack, so double thank you.

      1. 2

        This comment was deleted 3 years ago.

Trending on Indie Hackers
I spent $0 on marketing and got 1,200 website visitors - Here's my exact playbook User Avatar 41 comments Why Early-Stage Founders Should Consider Skipping Prior Art Searches for Their Patent Applications User Avatar 22 comments I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍 User Avatar 20 comments Codenhack Beta — Full Access + Referral User Avatar 20 comments Veo 3.1 vs Sora 2: AI Video Generation in 2025 🎬🤖 User Avatar 18 comments Day 6 - Slow days as a solo founder User Avatar 13 comments