Premature optimization is a trap that’s easy to fall into. Embrace the chaos as you build. Patterns will emerge from the primordial goop of UI that is your product, and by consistently thinking about a composable system you’ll probably come up with something more flexible and more robust than if one person dictates a dogmatic framework to work within.
I struggle with the chaos and spend way too much time building, then abstracting, then building again and getting stuck in an endless loop without much progress on the final product (as it relates to side projects). I know that there's a balance between done and perfect, but I still struggle with thinking too far ahead and prematurely optimizing for that vision. Jackson's thoughts on systems are a helpful reminder that I'm not alone.