I get emails all the time - including this week - from developers who have trouble finishing their side projects. They have a big idea, get part-way complete, and then lose steam.
Sound relatable? Definitely does for me.
So, here's a different way to think about it... Make your project as tiny as possible.
What's the smallest thing you could build that might be valuable on its own? Do that. Aim for the simplest version of every decision.
Get something ridiculously small built & shipped.
Once you've built a tiny thing, then you can iterate on making it better.
So often, we get caught up in grand plans. Agile development is all about shipping the smallest, simplest thing and then iterating.