It is very cyclical. The key (which almost always work for me, except when I am WAY too busy) is to always be marketing. Even when you’re busy and have projects going on, take 10 minutes to send out a few messages and be prospecting for clients. It will help you build a pipeline for when your current projects end.
Having longer-term monthly clients will also make the income much more stable!
And it’s always great to have personal projects!