I'm interested in seeing the approach other developers and designers take when managing their clients hosting, domains and renewals. For example, in my situation I own shared hosting and VPS hosting packages. For all new clients (depending on their needs) I set them up with a new webspace on my hosting package, I buy any domains on their behalf (in their names). I charge them a hosting fee every year and when their domains are up for renewal I notify them and renew on their behalf. An alternative is to buy a new hosting package for every client, and buy the domains through that account, and then remotely manage each client separately, leaving them in charge of the renewals (or helping them with it) What do you do?
Well thats automated in my case. WHMCS takes care of all and reseller club provides API. Everything is left upon client. And that makes the things really simple.
If you have a VPS, you may get Free eNom account, just approach your hosting provider. If you get this free eNom account, you can buy the domain names for cheaper cost and sell them to your customers for the price you want. Also, as suggested, you can integrate WHMCS on your website. You will be able to manage all your clients under one tool.