I am currently on a quest to find the perfect setup for my WordPress projects (who isn’t, right?). I do think that a large part of what makes or breaks complex software projects is dependency management. And there are dependencies at every level of your projects, be they languages, libraries, servers, stakeholders, whatever. When someone pays you to attack a project (outside of hobbyism), he generally pays you to fulfil a business goal. And it’s your task to keep the things in check upon which this business goal “depends” on.
The problems you’ll deal with when trying to manage these dependencies are not new to your project; they have been the same problems for many moons. And many smart people before you have found solutions to these, which can be found somewhere on a spectrum from “satisfying” to “perfect”.
You’ll probably agree that it is best to learn from other people’s mistakes and reuse their solutions, instead of being stubborn and insisting on making these same mistakes yourself (wasting a lot of time & money in the process).