It Took 2 Years To Make My First Dollar Selling A Product

Product maker timeline
Lachlan Kirkwood product maker journey

In every industry but tech, there’s hundreds of competitors within each vertical.

By building something that already exists, it curtails the initial validation period for a product.

As a maker, it’s taken me over two years to truly understand this concept.

After listening to every Indie Hackers podcast, this was a common theme I’d recognised between the most successful products.

Whether it be Less Annoying CRM, Transistor.FM, or The Hustle, these products entered a pre-conceived vertical with existing customer demand.

Until now, it feels like I’ve spent my early 20’s in the pursuit of product/market fit.

What I never understood, was that it already existed across thousands of markets.

With a background working in tech startups, I’ve always valued innovation above anything else.

After spending two full years failing to gain any product traction, I realised this was my greatest weakness as a maker.

After two years of building products, I’d generated $0 in revenue.

In August 2020, I generated my first $66 (AUD) from a product in less than 24 hours.

How did I do it?

By prioritising validation instead of innovation.

Although it’s not much, this $66 was a gargantuan milestone in my maker journey.

Paypal product payment

Let me quickly backtrack and give you a brief history of my experiences leading to this point.

If you’re an early-stage maker struggling to generate revenue, this post will share some actionable insights to help streamline your own product journey.

June 2018

In 2018, I had my first surreal moment to becoming a maker. It was my first idea for a product.

I wanted to build the Dribbble for digital marketers.

As a digital marketer myself, I planned to create a platform where I could showcase a portfolio of my real work. 

My vision was to build the worlds leading community hub for digital marketers, streamlining the way they showcase work and source job opportunities.

As a non-technical maker, I started building with the tools I had. 

Before creating a product, I spent a year of my life trying to build an existing community as a Facebook group.

At its peak, I’d grown this community to roughly 300 members, although I’m sure only a fraction of these were active users.

Looking back, I’m thankful that I tried to build a community before creating a product, although, to be fair, I didn’t have any other option – I didn’t know how to code.

June 2019

A year later, I stumbled across the no-code landscape. 

This changed everything.

I could finally build my grand vision for a platform.

This was where I started spiralling down a path of first-time maker mistakes.

Did I even bother to ask my community if this was a platform they wanted?


Did I validate the idea?

Certainly not.

Was this a product that could even generate revenue from day one?

Not a chance.

So when November of 2019 came around, I was so confused when my platform hadn’t gained any real traction.

I’d spent four straight months building this product, then an additional two months trying to gain user adoption.

I completely burnt myself out trying to maintain something that never had a chance.

So what did I decide to do?

Tear it down and start again.

January 2020

It’s a new year and I’d had the opportunity to learn first-hand from my past mistakes.

At this point, I’m 18 months into making and I hadn’t generated a single dollar in revenue.

This time around, I had clear expectations and guidelines to follow.

  1. I had to sell to businesses
  2. I wasn’t allowed to build a product until I’d confidently validated an idea

At this point, I was freelancing as a digital marketer, so I was still eager to build a product within this industry.

After hearing Lynne Tye’s episode of the Indie Hackers podcast, I knew exactly what I needed to build.

I was going to build the Key Values for digital marketers. It’d be a place where passionate digital marketers could source opportunities with teams that shared their values.

One of the core reasons why I’m a freelancer is because I’d never found a company to work for that shared my own personal values.

I was absolutely blown away when I first heard Lynne’s story.

Her product wasn’t anything technically advanced, and her background wasn’t in marketing. So how was it that Lynne was able to gain as much traction as she did?

She solved a real problem for businesses and spent a long time validating her idea.

I was eager to get started, but I encountered my first problem.

I live in Brisbane, Australia. In my city, I’ve never met a startup big enough to need a dedicated marketing team.

What was my alternative?

I knew I had to get myself over to SF – the heart of the startup landscape. 

From an outsiders perspective, there was an endless sea of opportunity there.

I booked my flights for May, then start cold emailing as many marketing recruiters as possible.

I shared the concept of my product and asked if they’d be interested in joining pre-launch.

Within a few weeks, I’d been on calls with recruiters from Intercom, Pinterest, Harry’s, and

My plan was to get these brands on board before launch – making the product more valuable when I release it to the public.

I didn’t expect to charge these initial brands. I was simply looking for validation.

On March 13th, I had a call with a recruiter from a startup that had recently raised a $50 million round.

She was looking to quickly scale her marketing team with quality candidates.

“This is exactly the kind of product I need right now”.

Then. The unbelievable happened.

“So, we’re obviously happy to pay you for the work you do with this. How much is it going to cost”.

I freeze.

I genuinely didn’t expect the call to veer this way.

I respond.

“Well. Umm. It’s free for any brands that join before launch, but later we can talk about paying for access to additional features I have in my backlog”.


I couldn’t explain how disappointed I was in myself. At the same time, I was at an all-time high.

I finally had early signs of validation.

This feeling only lasted a short week. 

COVID came.

It didn’t spare anyone in the recruitment industry.

I was so close, but the timing couldn’t have been worse.

I knew this wasn’t going away for a long time.

April 2020

Throughout isolation, I needed a project to keep me sane.

I decided to break my own rule and start building my product.

I knew this wasn’t a good use of my time, but what else was I going to do during COVID?

I build the site in WordPress, then started working on SEO tasks. I was determined to use this downtime during COVID to build an organic growth machine.

I started building backlinks and publishing content. It’d been years since I had the chance to work on any SEO projects, so I used this time to up-skill my practical knowledge as a digital marketer.

In the space of four months, I managed to generate 142 high-quality backlinks, tripling my sites domain ranking.

SEO backlink building timeline

As any SEO knows, building backlinks was an absolute slog.

This whole process involved writing original 2,000 – 3,000 word guest articles for some of the industries biggest publishers.

At the same time, I needed to also publish high-quality content to my own site to start ranking for keywords that would generate traffic.

Every second week, I’d publish a 5,000 article to my own site. You can check these out here and here.

Surely enough, I started to burn out.

As someone that doesn’t enjoy writing, the thought of having to create another article started to make me feel sick.

I needed something else to temporarily work on.

August 2020

I decided to take a day off and clean my house. I started clearing my wardrobe of the clothes I no longer wore.

It’d been years since I’d bought new clothes, so my wardrobe didn’t cater to my recent taste or personality.

As an overly passionate maker, I wanted to start wearing startup shirts throughout my everyday life.

The only problem, however, is that startups shirts are notoriously hideous and bold.

Startup teeshirts

There it was. A new problem.

My solution…

Why don’t I just make my own?

I wanted to create a minimalist series of shirts that I could wear to any occasion. Whether I’m working at home, going out to dinner, or meeting with friends, these shirts needed to be discrete enough to match the rest of my wardrobe.

Maker Threads startup shirt

I jump online and print three of my own custom shirts. It costs me $75.

Then it hit me. I wonder if other makers like myself who experience this same problem.

I sent a photo to my friend who’s a software engineer, then tell him my idea.

His response.

Startup messenger team conversation

It’s time to get to work, but this time I planned to be scrupulous about the process.

My goal was to spend a day validating this idea, then determine if it was something I should pursue.

If I couldn’t validate the concept, I’d return to posting blog content.

I spent a few hours creating some shirt designs in Canva.

Next, I was I’m ready to build my own online store.

I had to stop myself there.

If I’m building a Shopify store, I’ll need to buy a domain, design the store itself, then pay for a Shopify subscription.

This would consume too much time and money. After all, I’m only seeking validation.

I head to Teespring. I upload my designs to their print-on-demand store and use their default storefront.

I give it a basic name (Maker Threads) and spend two minutes designing a logo,

At this point, the store doesn’t look like anything special. I didn’t even have my own custom domain.

Teespring e-commerce store

If users truly saw the value in my product, I should be able to sell just one shirt to validate the idea.

As a digital marketer, the old me would have happily thrown $100 behind some Facebook ads to acquire these customers. This time, I wasn’t going to let myself spend a dollar.

On a Sunday night (AEST), I launch the store on Product Hunt and with zero expectations.

Like most small makers, every Product Hunt launch I’ve shared in the past has amassed to no traction.

This time was different.

launch day

For the first time, I made it onto the main page.

I didn’t care about upvotes, only acquiring my first paying customer.

I go to bed with my expectations low, then wake up pleasantly surprised the next morning.

I did it.

I generated two sales, both with two shirts in each order.

$148 revenue, $47 profit ($66AUD).

I’d done it. I’d finally validated my first idea.

Now it’s time to take this seriously.

Ecommerce store revenue

Before jumping into the product build, I write down a new list of rules to follow:

  • I should never own stock
  • I should never spend a dollar on paid ads
  • The product must have virality build into it
  • I only deal with problems as they arise

I build a basic version of a Shopify store using their default theme, then integrate it with Printful to supply the products.

It’s never been easier to build something simple that looks effective to end-users. As a maker, it’s important to remember that your customers don’t care how your product is built, but only if it solves their problem.

Maker Threads e-commerce store

At this point, I’d spent a few hours and roughly $60 building the store (Shopify fees and new domain).

Without a doubt, my mind starts to wonder. 

Should I start optimising the metadata of the store, or even add an email popup form?

No and no. Neither of these are problems yet. I need to first get users to the store.

I start sharing my product on Twitter. The feedback I receive from my target audience is positive, and makers start to buy the shirts.

As of writing this article, I’m currently sitting at $400 in revenue.

It’d taken me over two years to generate my first dollar in revenue as a maker.

Is my product an innovative new solution?

Certainly not.

Do I care?

Absolutely not.

After failing for so long, I’ve learnt to genuinely appreciate any form of product validation, regardless of what I’m building.

Once I continue to further validate the product, I can start to consider how I’ll turn Maker Threads into something more than just a clothing store. I already have a few concepts in mind, but I’m intentionally hindering those to focus on growing the existing product.

If you’re a maker looking to build your own profitable product, here’s a summary of the key takeaways from my experiences:

  1. Lower your expectations

When I’d started my journey, I was determined to build a global community platform. I wasn’t going to settle for anything less along the way. 

Looking back, the chances of bringing this to life were very slim.

A product like this would often require millions in funding and a whole team to scale.

By lowering my expectations, I’d set realistic objectives for myself. 

When your expectations are zero, anything above this will exceed your initial beliefs.

  1. Only solve problems as they arise

Within the early stages of building your own product, it’s important to get to validation as soon as possible.

If you start to focus on solving problems that don’t yet exist, or get distracted building unnecessary features, you’ll limit any progress on things that truly add value.

  1. Validate. Validate. Validate

I always knew how important it was to validate ideas, but I’d never understood how to do this efficiently.

When you start building a new product, your main objective should be to streamline the process of validating an idea.

By quickly discovering if there’s any demand for your product, you can determine if it’s something you should pursue.

This article certainly isn’t a story about success, but is instead a reflection of my learnings to date.

With Maker Threads still in its infancy, anything could happen from here – good or bad.

If you’re a passionate maker like myself, I’d love to connect and learn how I can grow Maker Threads into the best product possible.

If you’d like to support my journey, I’d recommend heading to the Maker Threads store and picking up some fresh threads for your own maker journey.

Whether you’re bootstrapping from the beginning, or you’re a well-funded startup, there’s a design for makers of all backgrounds.

%d bloggers like this: