People overengineer homelabs all the time for fun and practice. To selfhost (which is not, in fact, the same thing), you can get a mini PC and probably host all of the basics. A small two-bay NAS plus a mini PC and you're really cooking with gas.
Homelab = Experimenting with environments you might use at work. Selfhost = Hosting what you need at home.
These are two very different goals with very different reasonable choices. People homelab with Kubernetes clusters, selfhosting with Kubernetes is dumb.