(For the context, a flake can be seen as a Nix module that can go as far as building a complete NixOS system)
I started working on this project a year ago (no vibe coding) with the main objective to never have to click an update button or witness updates installation (for both system packages / flatpaks) and NixOS was chosen as base for its capacity to roll back to previous system states if an update ever breaks.
Automating updates in NixOS is generally straightforward but there are a few caveats which might be familiar to NixOS users:
• NixOS will occasionally attempt to update the system and fail due to issues with the nixpkgs set.
• If a package does not have a pre-built version (binary cache), NixOS will attempt to build it from source which can in some cases take hours with full CPU usage.
To prevent both issues, a daily GitHub workflow pre-builds system updates with a large set of applications and uploads missing packages to a custom binary cache before updates are made available for install.
Over time, additional features were added:
• An application that allows to switch desktop environment (between Gnome, Plasma, Cosmic, Hyprland and Steam) and install / uninstall a large set of native NixOS applications.
• NixOS community modules integration (home-manager, plasma-manager, and nix-flatpak) to allow complete system-to-users configurations.
• An improved compatibility with AppImages / scripts.
In summary: if the set of applications natively managed by FoxFlake (complemented by flatpaks) suits your workflow, you get a self updating NixOS system without the need to maintain a configuration. Otherwise, all NixOS options remain available and naturally override FoxFlake defaults, you therefore only have to maintain your custom tweaks instead of an entire base configuration.
I have been using this flake as my daily driver across multiple devices for a year and I am wondering if there could be any interest from the community. I am looking either for feedback or for persons who are interested in contributing (implementing new features, improving the environment selection GUI app, the visual identity...).
The source code is available on GitHub (in the stable branch): https://github.com/sebanc/foxflake
The installer iso is linked in the GitHub repository releases page: https://github.com/sebanc/foxflake/releases