Consistent config across the fleet
Your .zshrc, .gitconfig, ~/.ssh/config, editor settings — these need to be identical across every machine. The standard approach: a dotfiles git repo, plus a small bootstrap script that uses rsync to deploy.
Why rsync (not symlinks)
Some dotfile managers symlink files from the repo into ~/. That works but pulls the repo path into the dependency graph — break the repo location and shells start failing. rsync deploys real files; the repo is your version control, the deployed copy is what runs. Cleaner separation.
Never commit secrets
Public keys live in dotfiles. Private keys, env files with API keys, tokens — never. Use .gitignore to exclude id_* (without .pub), .env*, anything that shouldn't leave the machine.