No matter where a website is hosted, I always recommend that you never host domain names the same place that you host your website. Although it may seem quick and easy to keep everything in one place, it adds an additional layer of security to seperate them.
Personally, I use a company called (Hover). (Referral Link)
Their choice of over 100 Top Level Domain names are reasonably priced and you get a discount for renewals based on the number of domains that you have. They offer some great features at no additional cost. WHOIS Privacy is a hugh selling point for me. Prior to switching over to Hover, I would receive multiple email, text, and phone sales inquiries to build my website for every domain I registered. I was not willing to pay the avg $10-$20 per domain to add privacy. Since switching to hover, I have not received a single email, text, or phone call.
Customer service is also a main sticking point for me. Anytime I have had a question, Hover support has been quick to find a solution.