The most important distinction is between a domain registrar and a domain reseller. As far as I know, most start out as resellers (Namecheap started as an Enom reseller. AWS still resells Gandi). Being a legit registrar is actually fairly expensive.
Reselling complexity depends on the upstream registrar. Most of the big ones have reseller programs, including white label services. TakingNames.io uses Name.com, which doesn't require anything official. I just sell domains using Stripe for payments then use the Name.com API to buy the domain. Then I forward DNS changes using their API as well.
Currently I default to using Name.com's nameservers, but users can set custom nameservers and I may run my own eventually.
But I have been a happy porkbun customer for a few years and they are my go to recommendation to anyone who asks.