I've shipped four side projects in the last five years. Two went nowhere, one makes a modest amount, one I sold for enough to matter. The biggest variable was not quality of execution. It was whether I validated before building.
The version of me from 2020 would write code for three months and then find out nobody wanted the thing. The version of me now spends two weeks before touching a text editor.
Here's what two weeks of validation actually looks like:
Week one: find the problem in the wild. Search Reddit, Hacker News, Twitter, Quora, niche Discord servers. Find 15-20 real people complaining about the specific problem you think you're solving. Screenshot everything. Read the language they use, not the language you'd use.
If you can't find 15 real complaints in 20 minutes of searching, either the problem doesn't exist at scale or you're searching wrong. Both are important to know before building.
Week two: pre-sell or pre-commit. Put up a landing page with your email capture (Carrd takes 30 minutes). Post it in the places where you found those complaints. Aim for 50 signups or one person willing to pay before you write a line of code.
This sounds obvious. Almost no one does it.
For the project I eventually sold: I had 140 signups and two people paid $20 for early access before I had any product. That's the signal. For the projects that went nowhere: I had an idea, built for months, posted, and heard nothing.
What validation is not: Ask friends. Friends say yes to avoid awkwardness. The only votes that count are from strangers who have the problem and found your thing on their own.
One more thing: Validation tells you if people want the category, not if they'll want your specific thing. You still need to build something decent. But it filters out the 80% of ideas that are solutions to problems that don't exist outside your own head.
Time I spent validating my last project before building: 11 days. It would have saved me 5 months on the two failed ones if I'd done it earlier.