Sometimes you learn some "natural" rules when you've been doing something for a while. Being an indie hacker is no different. Over time, I've identified these rules for my work on bootstrapped indie projects:
Projects don't need to be complicated. Check out this one - it's literally a Google Sheet and a domain. If you don't need to have a complex solution don't overcomplicate it.
"I can build a better version of this in a weekend." never works out. I started to multiply my estimations by at least 3. For any larger unknown or new technology I can't just get out of my head, I add at least a factor one. Don't know how to do oAuth with this site? Plan another two days for reading yourself into the topic and getting it working properly.
Marketing > Building: If I'm not willing to put at least 3-5 times the (actual!) development time into marketing, I shelve the idea or give it away. Yes, that means "I can build this in a weekend" turned already into full-time work over weeks by now.
Just because I can build it and it doesn't exist, doesn't mean I have to build. There are usually good reasons for it not to exist.
"I can do this better" is seldom worth rebuilding weeks of work someone else already invested. Generally: None of those million-dollar-over-a-weekend stories (which will never apply to you) show any of the years learning and preparing for overnight success. I don't believe them, I don't read/watch them. Rome wasn't built in a day and so this won't be a successful project. Sure, there are exceptions - but the exception isn't doing more than showing the underlying rule.
I only do projects I can and will dogfood* myself. It simply doesn't make any sense to build something you aren't even using yourself. How are you going to find out if your features are really solving the problem? Plus motivation is going to fall flat in the long run until you get your first customers, if you aren't having any direct benefit from it.
Time to admit it: If a project isn't live when the reminder-email for the annual domain renewal arrives in my inbox, it's dead.
I love to find the right name and snap up the domains quickly. I've even made a project for exactly this! But I have to put on the brakes: No new domains until the old ones are put to use! #DomainersAnonymous
Non-stop work isn't good. I need to go out frequently and ensure I actually move more than just going to the kitchen and getting another coffee.
Producing > Consuming: I get it, the Internet is a place full of shiny stuff with something for everyone. But let's be honest: consuming doesn't help in getting anything out of the door. It starts with the latest news/controversy/products/analytics or search console stats/growth-hacking ideas/________ - you name it. It also doesn't stop with the current live-stream of SpaceX launching again or with simply watching YouTube passively while coding - all of these are distracting you from achieving your goals. Sounds tough? Yeah, maybe, but I can't do any of these and be actually productive.
Thinking "Yeah, but ....."? I'm not saying I never watch YouTube or register a domain in overboiling excitement for a new side-project. These are just my personal rules I try to live by. That's all 👍️
If you're interested in what I would consider good characteristics for IndieHackers, I wrote about this too.
* = actually cookies. In case you are scrolling up to find the asterisk: it's on number six.