So basically, try to group anything into smallest possible self-contained utilities, until you grow a pile of them big enough that your next project can be basically assembled from them...
Ironically, my current side project evolved exactly the opposite way: I tacked on more and more features, and later broke everything apart into plugins once the correct abstraction had emerged.