Yet another +1 for Gandi, and mentioning a few specifics that haven't come up, as to why.
1. Good nameservers and the ability to have full control of your DNS zone file, in both a form-based "easy mode" and raw-text "expert mode". Once you start doing a lot of custom DNS; especially if you might split what services you have for that domain across multiple providers (e.g. a Linode or DO droplet, email on a different one, or Google or Zoho, subdomain for git, some different dev, staging, beta subdomains) it's really nice to have direct easy-edit access to your zone. In that sense, easier than Namecheap's DNS (which I also use on some domains registered their and via their FreeDNS on some not registered there), which is only form-based.
2. Free IMAP/POP/SMTP/webmail email with your domain. It's not great, it's max 1GB storage overall and 5 mailboxes (near-unlimited aliases), unless you pay extra, but that's fine if you simply need a way to send/receive mail from your domain in "real email programs" as well as in RoundCube webmail. It has spam filtering but no configurability thereof. Mail is hosted in their Paris, France datacenter. For my domains where I don't do a whole lot of email, it's perfect, saves the need for a hosting plan or for hosted email, or of the hassle of running my own server in one of my droplets (each of which I do indeed do for some of my domains).
3. Free first-year SSL/TLS cert (underlying issuance by Comodo but Gandi as the cert issuer) with every domain. Which trumps the $1.99 at time-of-registration-only low-end Comodo cert that is basically the same thing, from Namecheap.
4. Gandi includes domain privacy for address, phone, email for all contacts that are individual contacts - your name shows, but that means that you indisputably own the name. If you are a "corporate handle" (in other words, if you fill in the "Company Name" field), then you cannot mask your address and phone, but they still mask your email.
5. (Maybe good or bad depending on your preference) Gandi still uses the old concept of "handles" rather than "customer accounts", at least optionally. Thus it's possible to have entirely separate IDs as the Registrant, Admin Contact, Tech Contact, and Billing Contact, on any domain. Those are entirely separate logins to Gandi. You don't have to do that, you can make everything just one. But any difference in address, email, name, is by definition another contact. This is powerful, but confusing to newbies to domain ownership.
6. First-time domain registrants (not first-time per domain) get a half-price coupon for a year of Gandi Simple Hosting. "SImple Hosting" is actually "Gandi Complicated Hosting" compared to typical shared hosting: no email, no cPanel, no "hosting panel" at all, but panels for the VPS, for the apache daemon, for PHP APC, and for whichever one database you choose. But it's a lot simpler than managing a full bare VPS, as it's a managed Platform as a Service, and sold as such as a PaaS. Given that a size S is only $2.50/month or the more-reasonable starter, a size M, is only $5/mo at that discount, it's a great deal. I've been running both some development and some client production sites on Simple Hosting for a few years now, and in many ways it beats the heck out of shared hosting. It's basically a tech-stack-specific, managed VPS on which you don't get root, but do get a lot of control otherwise. You get to take a half-price shot at this with your first domain registration, and no, it doesn't have to involve that domain.
Items 3 (1 year free SSL per domain) and 6 (1 year half-price Simple Hosting per customer) aren't tied to the domain which entitled you to them, nor to its period of registration. You just have to order the certificate before that registration period is up. I've gotten Gandi certs from a domain, only a few days before transferring that domain out, and the cert is good for a year, of course. I've used Simple Hosting promo coupons the same way, near the end of their 1-year validity.