For years my home DNS was a thin layer that forwarded everything to whichever public resolver was fashionable that month. It worked, mostly, until a public resolver had a wobble one evening and the whole house went quiet, the telly included. The dependency was invisible right up to the moment it wasn't.
So I switched to running my own recursive resolver. Unbound, on the little box that already does too much, configured to talk to the root servers directly instead of forwarding. No upstream to fail, no third party logging every lookup the household makes, and DNSSEC validation done locally so I can actually trust the answers rather than trusting the pipe.
server:
interface: 0.0.0.0
do-ip6: no
prefetch: yes
cache-min-ttl: 300
auto-trust-anchor-file: "/var/lib/unbound/root.key"
The first lookup of the day is a hair slower while it walks the delegation chain. Everything after that comes out of cache and is, if anything, faster than the forwarder was. The genuinely nice part is that nothing changed when the next public resolver had its next bad evening, because I'm no longer leaning on one. The house just kept working, which is the entire point of a homelab and also the bit nobody notices.