All my dotfiles are in a git repo.
Whenever I'm doing a fresh install, I simply download all my most-used packages and rsync the dot files.
I'm planning on investing some time and setting up Ansible so I only have to install python and it does the rest for me.
HTH