Every week I get emails from founders trying to sell me things, and I almost always say no. Why? It's not because people aren't building useful things. They're mostly pretty useful! But they're almost never aligned with my top priorities. The #1 reason I say no is simply because I have other things I'm focused on.
This is true for all of us all the time. For example, how many books are sitting on your shelf that you consider important to read, but you haven't yet, because you're busy doing other things that are even more important? If someone is going to ask for your time and money, they need to provide something more urgent or important than those books you've been meaning to get to. That's the minimum bar.
It's not enough just to build something good or useful. You have to build something that helps your customers with their top priorities, because they literally don't have time for anything else.
I talked to Hiten Shah on the IH podcast about this recently. He said two things that really stood out:
One trap that's easy to fall into is believing that you need to solve a problem that nobody else is solving. Sure, you can avoid competition that way, and sometimes you can build something huge. But if you go this route, you need to be careful that the problem is a valuable one. It could be the case that no one is solving the problem because customers don't care enough to pay for a solution.
A better bet for most indie hackers is to solve problems that you know exist and are valuable and are top priorities. These are surprisingly easy to find: people are paying lots of money for them. (Conversely, if you decide to solve a problem and your target customers aren't already paying for other solutions to that problem, it probably isn't a priority for them.)
If you go this route you'll have competitors, yes. But you can deal with competition by solving the target problem for an underserved market, or by solving it in a way that's uniquely differentiated and/or better than the competition.
Be boring in picking the problem, but creative in devising a solution.
There are probably a few exceptions to all this. You can build a solution to a tiny problem if your customers have tons of employees who have the bandwidth to work on tiny problems. For example, Stripe has entire teams of people who do nothing but work on documentation. Stripe has the bandwidth to work on many priorities simultaneously and indefinitely, as do many other companies. One of many reasons why B2B is easier than B2C, and why it can be surprisingly easier to sell to bigger companies than smaller ones.
Another exception would be if you catch people at the right moment in time. For example, there was a time when I needed a host for my podcast mp3s, and so for a brief window it was my #1 priority. (Someone actually got lucky and pitched me during that window.) I had the same happen to me in reverse when I was selling ads for the IH podcast — I emailed a few marketing departments who just so happened to be experimenting with podcast ads. That can work, but you have to be willing to do lots of sales.
But I recommend making it easier on yourself and building things that matter.