It's been said that ideas don't matter, and that only execution does. I wholeheartedly disagree. You need both to succeed, but you can only get so good at execution. A great idea gives you much more leverage.
Below is my framework for coming up with great business ideas.
Most people equate product ideas with business ideas. That's wrong. Your product is only one part of your business. There are at least four parts in total:
Great business ideas are strong in all of these areas.
The #1 rule is to put the problem first and the solution last. That's right: your product/service should be the last thing you think about.
Why? Because it's the most flexible. You can build anything. But the other three aspects are constrained. You have to choose from a limited set of viable problems, channels, and models. Always start with the constraints.
Seth Godin puts it nicely in his book This Is Marketing:
If you find yourself trying to think up product ideas, then you're putting the solution first. Not only is that backwards, but it's harder! How exactly are you supposed to think up good product ideas out of thin air?
It's impossible to design a great tool for a job before you even know what the job is. You'll make your life easier and your business ideas better if you put the solution last and the problem first.
The first step is to recognize a good problem when you see one.
A good problem is one that many people have, otherwise you won't have enough customers. For indie hackers, this number doesn't need to be too big. Usually a few hundred thousand is enough. In some cases, much less.
You want these to be people you genuinely like talking to, because they'll be your customers for years. And ideally you have the same problem as them, too, so you can empathize with what they're going through.
It's best if the people who have this problem hang out together and identify as a named group. For example, "developers" or "teachers" or "NBA fans" or "YouTubers." That means they're likely to make all sorts of recommendations to each other, including product recommendations, which makes word-of-mouth growth possible for your business. It also gives you juicy channels to target, which will come into play later.
It helps if the problem is a growing one, meaning more and more people have it every year. This sets the stage for your business to grow. And you want it to be a problem that people encounter frequently, so they'll seek the solution on a regular basis.
Finally, and arguably most importantly, you want it to be a valuable problem. In other words, you want it to be a problem that people pay money to solve. Preferably lots of money.
Armed with this knowledge, it's time to find a problem. You're going to have to brainstorm. Some people recommend that you just sit around waiting for inspiration to strike. I don't. That might take years, if not forever. Be proactive.
It's hard to say where the best place to start brainstorming is, not because there are so few, but because there are so many. There are thousands of good problems out there, and practically anything can trigger you to stumble across one.
What's more important is that you recognize a good problem when you see one, and vice versa. If a problem scores poorly on the guidelines above, don't waste your time. Keep brainstorming.
For that reason, it makes sense to start with one of these guidelines in mind, and let that be your trigger. For example, since it's helpful to solve a problem that you have yourself, why not take a look at your own life and see if you can spot any problems. What worries you, exasperates you, or annoys you?
The other guidelines also work well as brainstorming triggers. Who do you like spending time with? What groups are you a part of? What are some problems you notice people solving frequently? What's something that seems to be growing into a bigger trend?
My personal favorite is to start by looking at where people are already spending lots of time and money and go from there. Money changing hands is almost always a sign that there's a valuable problem being solved.
Founders typically have already made one or two huge mistakes by this point. If you can avoid these, you'll be way ahead before you've even started.
Some of these points are a bit counterintuitive. That's why so many generations of smart-but-uninformed indie hackers are repeating the mistakes of their predecessors.
But it's simple to avoid these kinds of mistakes once you know them. It's more a more a matter of knowledge and discipline, rather than genius or hard work.
Once you have a good problem, you need a distribution strategy. You need an answer to the question, "How am I actually going to reach my customers?"
The number one mistake here is skipping this step entirely. Especially if you're a developer, a designer, or a creator of any kind—you're antsy to get to the product. Growth-related activities probably seem boring, perplexing, or even nefarious to you. You'd rather just build something so great that it grows on its own.
Sadly, that almost never happens. Relying on it is akin to playing the lottery. Sure, you've seen some stories. Some people win. But probably not you.
Remember that even though artists like to complain about the record labels, they do record deals regardless. It doesn't matter how great your music is if nobody ever hears it. Your business can't make money if you can't reach your customers.
This is too crucial an aspect of your business to put it off and leave it to luck.
Fortunately, brainstorming about distribution is easier than you might think. You're limited to a small number of channels that you need to investigate.
From the book Traction:
For example, channels include things like SEO, press, content marketing, social media, sales, partnerships, ads, etc.
I won't get into testing traction channels, because that's beyond the scope of this post. But the first channel you start with should almost always be direct outreach leading to 1-on-1 conversations with customers, either via the phone or in-person.
That's usually the easiest way to get your first few customers. You don't have to be a marketing genius to send some emails or make some phone calls. You'll also be much more persuasive personally than your website will be on its own, and you'll learn crucial lessons from these conversations.
The only reason big companies don't do this is because it's expensive and doesn't scale, but that doesn't matter for you. You don't have to care about scale when you're trying to go from 0 customers to 1, or 1 customer to 10, or even 10 customers to 100. Don't copy what big companies are doing when you're a small company, or you'll throw away your natural advantages.
Later, however, scalable channels are important. It's not enough just to do a glitzy launch, because you can usually only do that once. You need to put some thought into long-term, repeatable channels.
Luckily, since you started by thinking about the problem, you have some hints. You know who your customers are, right? So ask yourself: What channels are they already making heavy use of?
For example, if I was solving a problem for software engineers, I'd be looking at GitHub, SEO (developers do tons of Google searches), Hacker News, conferences, code-related newsletters and podcasts and YouTube channels and communities, Twitter influencers, bootcamps, etc. These are all potential channels.
If you can't think of anything decent, that's usually a sign that you don't know enough about your target customers and how to reach them. It's possible that you need to go back to the drawing board and pick a different problem or set of customers.
Finally, think about your solution. How are you going to solve the problem for your customers?
Don't just copy what competitors are doing. Yes, I advised you to pick a straightforward, proven problem. But don't default to that with your solution.
If anything, you want to solve the problem in the exact opposite way your competitors do. This is where you stand out. This is where you innovate. Inject as much of your unique personality and ideals as possible. It can even be simple things. I made Indie Hackers blue because every other blog was white.
More importantly, your solution should be built from first principles. You should be taking everything you learned about your customers and working backwards to build the best solution that fits their unique experience of the problem.
This is the essence of product-market fit: tailoring your product specifically to your customers' needs. You want make it such a good fit for these specific people that it's a no-brainer for them to use it. Stripe, for example, knew its target customers were developers, so they focused heavily on great API design and stellar documentation.
This is the kind of advantage you can only get if you've identified a customer and their problems before you started on the solution. Otherwise you'll build something generic.
You also want product-distribution fit. Find a way to extend your solution so it perfectly fits into your chosen distribution channel. Wes Bos, for example, tweets out educational tidbits from his upcoming courses, and it's some of the best content on Twitter. Indie Hackers' #1 distribution channel was HN, so I specifically modeled the interviews on the site after posts I'd seen succeed consistently on HN. Again, this is the kind of advantage you can only get if you've identified a distribution channel before you started thinking about your product/service.
(Hopefully you're starting to see why the #1 worst thing you can do is skip straight to this step and try building a product before thinking deeply about the problem and distribution.)
If you can't think of a good solution, or if it's too hard or expensive for you to build the solution, or if the competition is completely unassailable (due to something like network effects or economies of scale), then you may need to go back a step or two.
Commonly, what you need to do is take the problem you identified in step 1 and shrink it a bit. Make it more specific, so it affects slightly fewer people (a niche), and then try to think of a channel and solution specifically for them.
The final mistake to avoid here is attempting to start too big. You are not Google, or Uber, or Airbnb. You're an indie hacker, and you're just getting started.
Big, successful companies looked completely different in the early days. Trying to copy what they look like today is a huge mistake. You have to work your way there one step at a time by starting small, accruing small wins, and building off of those.
For example, egghead.io started with the founder, Joel, finding a bunch of videos on YouTube, putting them in a ZIP file, and offering them to someone else's mailing list for a price. That's a far cry from what egghead does today. But he couldn't have started where he is today, any more than you can jump to the top of the ladder.
Take it one rung at a time.
When you're thinking about the problem you're solving and the size of the market; when you're thinking about the distribution channel; and when you're thinking about the product: think small.
What's the simplest thing you can do? Go even simpler than that.
The one exception here is your monetization model, where you want to do the opposite. Charge more. Indie hackers should not compete on price. That's for huge companies like Amazon.
This post came out much longer than I thought it would, but once you internalize some of the lessons, you can actually run through this process quite quickly.
True idea validation is going to require rolling up your sleeves, talking to people, and maybe even releasing a product. But you can make it pretty far at just the theoretical phase by thinking about some of the concepts above.
As a sanity check, try reverse engineering a few other successful companies by running them through this process. Check the interviews, the podcast, or the products directory to find thousands of teardowns of profitable Internet businesses.