I moved all my setup to Ansible about five years ago. It’s been awesome, especially as it makes it trivial to replicate changes to new machines. Installed a new package? Run the playbook again. Changed a script? Run the playbook again.
Sure, there are edge cases I hit because I have some older machines, but for the most part, it’s awesome. I’m up and running on new Macs within a coffee break of getting terminal access.
This is the ideal version of the playbook I've been wanting to write for years to automate the chaotic dotfile collection I've written over the last 15 years!
https://github.com/geerlingguy/mac-dev-playbook