I've been using NameCheap for a few months and I've learned some things that I've liked and some things that surprised me.
I chose NameCheap because of FreeDNS. FreeDNS is a fantastic service that gives you, well, free DNS hosting. If you have a domain name already, you can sign up with FreeDNS and manage all of your DNS records. Their user interface was just recently updated from 1999 styling (much cleaner, but lots of bugs they're still working out). The API is easy to use and just works.
After moving DNS records to FreeDNS for nearly two dozen domains, I wanted to start transferring my domain registrations to NameCheap too, thinking that the experience would be as pleasant as FreeDNS.
Here are some things that caused me some lost web traffic and weeks of lost email (most of which I was able to magically recover, thanks to an obscure bug in NameCheap's DNS transfer system).
Domain Name Transfers
When you transfer a domain registration to NameCheap and you are already a FreeDNS customer for that domain, you need to go into your DNS name server settings for the domain and mark FreeDNS as the backup (or something like that. I didn't actually see this working and had to open a support ticket).
When the registration comes through, new (empty) DNS records will be created and your old records will not be visible to DNS queries. This means you will lose web traffic, email, etc. until you can resolve it.
You would think that a company already hosting your DNS would transfer the DNS records with the domain name. You would be wrong. Please take my advice and get things straightened out before transferring domains to NameCheap.
This brings me to my next point:
FreeDNS Record Transfers
If you are a FreeDNS customer and are transferring your registration too, check your DNS records as soon as you are notified that they have come through, especially your MX records.
I had an MX record with a priority 10 pointing to my mail server. I had the Gmail MX record set but at lower priorities to catch mail when my mail server was down.
When NameCheap transferred my MX records, they transferred the Gmail MX record set but discarded my high priority MX record. The net result was that email in this domain was lost for 2 weeks before I noticed.
Fortunately, my old, grandfathered-in Google Apps account was still active and caught all of the email. It still took a few hours to pull it all out (thanks for making it nearly impossible to move email from one account to another, Google! Still love ya, though.)
Another domain had the main ('@') A record replaced with a URL redirect record, causing random MX failures.
FreeDNS has (also) free API access. You can make programmatic updates to your DNS records willy-nilly. Guess what? Once you transfer your domain to NameCheap (and are paying for it) you don't get API access unless you meet certain criteria.
NameCheap has all kinds of odd disincentives to move to them from FreeDNS. Once you have transferred 10 domains or you agree to deposit money (some amount of... can't remember, maybe $10 or $50 bucks) into your NameCheap account, then you may have API access if you ask nicely. It requires an email or a support ticket.
DNS API Issues
FreeDNS has a lovely "update" endpoint that lets up update a single record of a domain:
NameCheap has no equivalent API. Instead, you have to query the existing records for the entire zone, change the one part of the zone you want, then update the entire zone at once. If you don't send all records, all missing records will be removed from the zone. This might be important if you have lots of records in a zone.
I need to stress that I've been basically happy with NameCheap and will likely stay with them through the next transfer cycle. I recognize most people don't need API access at all and probably won't be existing FreeDNS customers. I'm special. I leave this here, however, for the odd schmuck like me: take care, move slowly, verify thoroughly.
I received an email from NameCheap support letting me know they have fixed at least one of the bugs I filed during my transfer experience. They sent me a link to an article describing how to minimize downtime.