Hello there,
I've been with Namecheap for a very long time (decade!) so I can vote this one up. They often have a good deals for domain where you can get the com for cheap.
As for hosting, it's really depend on your need. I personally use my local hosting for my needs and never have a problem. They are obviously no match with the world class player like bluehost, liquidweb, wpengine, etc. But it's enough for me and it's cheaper.