I bet that every developers in around the world has at least once struggling with installing applications and configuring them when they had to reinstall the OS on the current machine or the new one. I've had that problem repeated many times over 10 years as a developer.
I learnt the stateless term when I was learning React.js. I heard it again when I started working with Microservices architecture. And then I thought that why not bring that mindset to the OS running on our devices. Storing the configuration (not the backup data) somewhere on the trusted cloud is better than a physical storage (USB, external hard disk, etc...). GitHub is the best place for it in my opinion.
Think of an activity that takes you hours to make it done but only 15 minutes if you make it automated. That's a lot! Not only it will save your time, but also lesser mistake you will make and your mind will be worry-free.
I had done it manually for years. I had a list that contains everything one by one with the download links, installation and configuration guides (phatpham9/dev-env). It did help me a lot but I wanted something much better.
One has that problem, for sure another one has the same. Try to find the problem you have then you will find the solution from someone else. And here, dotfiles.github.io contains a lot of good things, I used it as a reference for doing mine.
And here is my dotfiles phatpham9/dotfiles. Which contains 3 steps:
homebrewfor managing most of them and the rest is from
$HOMEdir is the best approach.
MacOSis my choice). Keeping the appearance & everything else the same as what you think it's the most comfortable makes you more productive.
That's it! Let's try and see :D