Personally after using headscale for a while, I ended up going with Netbird.
I prefer the UI of Netbird, plus it’s been extremely stable and straightforward to setup and configure.
my main issue with headscale was headscale-ui though, not headscale itself. So if the former works for you, then you I’d say go with it.
I use Obsidian + Syncthing. Works across all my devices (including iOS).