

Tailscale is both a client and server. If you use only Tailscale, you have to pay for the service after so many devices are connected, which by all means support the company and do so and avoid using Headscale.
Headscale is an open source implementation of the Tailscale service, so it’s free to use with all the usual Tailscale clients published. You setup Headscale somewhere, register your Tailscale clients to it, and use it like usual. It’s just skipping the need to pay for Tailscale servers as a service, and gives you greater control over how traffic routed. Completely optional.
Defaults are usually fine for most users. People who know they are going to distro hop or need to move data later should have a separate
/home
, but that’s about it until you get into special purpose installs.