I have an "install-my-stuff.sh" script which is just a call to "sudo apt install ..." with an large list of packages.
Other than that, I only backup things in my home directory.
Unlike Windows, re-installing the OS is quick, so pointless to back it up. The most likely scenario is a big upgrade, which I usually do by just installing the new version over the old one (preserving only /home). After that, run the install-my-stuff.sh script and I'm back in business (and usually, I'm still logged in in various web things, also demonstrating how pointless 2FA is when someone can access your files...)