I've struggled to work on side projects for some years now. I thought it was that I'm burned out or lost interest in programming. Now I realize it's the matter of approach: I overwhelmed myself with the greatness of an idea, ignoring my capabilities.
As my life constraints have changed I've had to learn to adjust my approach. As an undergraduate I had lots of time for side projects. Now I don't - I have other things in life going on. My projects are either tiny or breakable into atomic steps. They are something I can pick up anytime and play around with.
The "play" is a crucial part. I won't finish the projects I feel obligated to do. It's like with trainings: when I'm telling myself I "must" do it but don't have any "why", I will burn out. I enjoy each session of work. I focus entirely on this tiny scope and not overwhelm myself with the grand picture of the whole. Being harsh to myself isn't helping either, it can only discourage me.
It took some time for me to realize all that, but this change of approach really does have effects. It's about the consistency and resilience of doing and enjoying the little things, not about writing whole big systems in a weekend. Some people can do it even with their lives busy, sure. But doing small work is so much better than doing none at all. It's a marathon, not a sprint.