I am a consultant, and often have many projects or side projects going at all times, between client work, products I build and sell myself, and writing I do. I basically make private github repositories for myself. From there I make "issues" in github for the work I need to do. I ALWAYS make these tasks small. I have gotten to the point where I know about what I can get done in a half an hour chunk and I write these tasks as "issues" for myself whenever I get an idea. From there I simply "resolve the issue".
As a more concrete example. I have a repo for writing 2500-5000 word research articles. I will come up with a topic and break it down into sub topics and create github issues for each. Then I check in my writing to resolve the issue. In other words, I will write enough for the subtopic and check it in and make the issue complete. Same plan works for client code or personal products I code. It's easy, low overhead, and I always have things to do.
The only other thing I do is try to resolve as many issues as I can in a day. Sometimes personal projects take a back seat. But if you make your tasks about a half an hour each, you will find you get great momentum and you'll have time for each project you're working on.