Every single programmer that I know has this issue. It's both a curse and a blessing, like most things in life usually. And that is having too many ideas and not being able to control them. They just flood out in this amazing color spectrum of hope and possibility. Every idea is amazing and that, is a problem. Because if every idea is amazing, then technically, no idea is amazing.
Here is how the average programmer thinks these days.
Have amazing idea!
Set up project
Code 50% of it
Have another amazing idea
Start new project
And it is a problem. Because a part of becoming a programmer, is knowing what is possible and what is not. Clients often times ask me if it is possible to add an image to a webpage. As they are not very tech savvy, I can assure them that yes indeed an image can and will be added. But not only can we add images to a webpage. We can add a hundred images and then have them split into a million pieces and scatter them across the webpage. Not very useful, but doable.
So every idea is probably a good idea. If you brought it to completion and it existed the way you envisioned it, it would be fantastic. Sometimes, the interwebs keep us distracted to the point that we have just too much random and chaotic data floating around in our heads. Maybe we're building a game to teach kids how to program, but then all of a sudden, everyone online is talking about the newest trends in AR/VR, and so now you take that with you.
A few more articles like that, and you're bound to get curious and go exploring. Which is perfectly fine. But go exploring when you need to go exploring. When your home isn't half finished with the windows shattering left and right. Go exploring when your home is built and everything is stable. That's a great time to move forward.
Yeah, this is when programming gets real. Many think that you can launch a project in a few hours, maybe a day or two. But that's not giving a software developer the credit that they deserve. A meaningful and useful project is almost a lifetime of work to a programmer. He eats it, he dreams about it, and he wakes up in the middle of the night to it. And if they could strengthen their willpower and keep on with a single project, they could change the course of technology.
One of the best ways to keep on track is to keep yourself immersed in your current field of knowledge. And by that I mean whatever it is that you're building, surround yourself with that. If you're building a todo list app, then play around with other apps, or read their blogs, or read about the psychology that goes into time management. Anything that will keep you focused on your current project and that will improve it in some way. Otherwise, you get bored, and fast.
I think of boredom as a signal that I'm doing something that maybe I shouldn't be doing. For example, say you're reading a book and you just can't get to the next page. You spend 30 minutes on a sentence and it doesn't make any sense. That sounds, boring. So do something else. Read another book perhaps. The same applies with coding. If you're coding something useful that you know will take you a step up in your tech world, you won't be bored. Quite the opposite. You'll be excited to finish it and to push it live and to play around with it.
So pay attention to those signals and respond accordingly. If you can stay focused, immersed and keep boredom away, then you will finish your project. And the more you do it, the less projects that will come to mind actually. You'll begin to filter out immediately what is and isn't a good idea and you'll only focus on those things that you want to build. So whatever project you're working on now, finish it. Just keep typing and typing. Buy a domain for 10$, get a $5 hosting account and share it with the world.