I have been leveraging `ansible` to store my development workstation setup since I found out that playbooks can be applied locally pretty easily. It removes a lot of script maintainence burden even though there are cases we still need to resort to manually written script. `ansible` is declarative, and idempotent. It reads easier than a procedural script (even to someone that has not used ansible before), and can make cross-platform easier.
Fedora 34 default workstation setup contains some bloat. I decided to use minimal install and then added necessary packages. I excluded gnome-software (along with packagekit, flatpak), X server (I'm using wayland), gnome-classic and some other packages. RAM consumption went from 1.5GB to 1GB after boot which is significant saving for me, considering that I only have 16 GB.
I have no idea why those packages are not optional. Dnf is perfectly fine for package management. Eating lots of memory for no reason is weird.
Fedora 34 Workstation (GNOME) with only gnome-software and packagekit removed idles at 650MB.
This is because the Fedora repositories are very large due to all their extra metadata and the inefficiencies of the yum packagekit backend. GNOME Software also always keeps its UI loaded even when not open.
You might also want to free up some space afterwards: sudo rm -rfv /var/cache/packagekit
PackageKit is nice because it allows (not so great [1]) offline updates. GNOME Software is nice because it allows your typical user to update and install software.
Of extra note, X uses more memory then Wayland (as long as you have no X apps open), and classic is enabled through the use of shell plugins which also uses more memory compared to regular.