Now I've been the guy who just throws out repositories right left and center, hasn't completed projects and mostly have them on pending for a really long time unless something really motivates me to work on that project again.
I still end up making these things again and again just because I think that it's good to get that thought out of your head and out into code because you get to the point where you realize whether that project is actually going to be something you yourself would use.
I ended up building a lot of stuff that I do personally use and maybe no one else does because I haven't published anything about those projects anywhere and I'm the only one who knows about their existence. On the contrary there's double the number of repos that even I don't care about anymore.
The whole process of thinking and getting it out into the world of code gets you through scenarios that get you to realize and also sometimes learn about things that you might be doing wrong.
I've got this really old music player that I built using RiotJS, 0 folder structure, 0 modularity, just plain working code.When I went back to it to make changes or add features, I realized that I don't plan out my projects and jump straight to prototyping, the next time I built the same thing on Vanilla JS, the code was a 100 times better because I had a mental image of things I needed to separate and things that need to be maintained to avoid having spaghetti code in the later stages of maintenance.
These subconscious decisions help you out in the later stages a lot.
I don't use that player anymore but it's taught me something. so did the todo list(which everyone has built at some point in their coding life) and so did the other 100 repos that I have on my github
and after all of this reading, the moral was basically the title of this post.