I use btrbk
(on a btrfs filesystem) and I’ve never been happier. It fits my workflow perfectly: Frequent automated local snapshots with the occasional incremental backup to one of several encrypted external drives. It’s fast and reproducible since it’s all in a single conf file.
home.packages = with pkgs; [ # ... qbittorrent ];