And you haven't addressed the issue that whoever is performing the role of DevOps on this project must know Go.
I've never seen these tools used in this capacity, especially nix.
From a Nix user's perspective, this leaves a lot to be desired, because tools like Terraform are much less reliable than Nix tools that target local machines, and their management of, say, a VPC, is much less comprehensive than NixOS' management of an individual operating system. And they're slow as hell. But for the most part these issues are inherited from the APIs cloud providers expose, which don't meaningfully or uniformly support immutability.
--
Anyway, for the specific case of "deploying to hetzner":
- ansible has a whole collection of modules for hetzner: https://docs.ansible.com/ansible/latest/collections/hetzner/...
- For Nix, there is NixOps
- if no one in the team wants to learn any of that, Hetzner provides a CLI to interact with their whole cloud.
To repeat: the last thing I'd want from an application is to have its own deployment system.