Setting up a custom domain with Ghost is not as straight forward as it sounds, especially if you're not a DNS expert or don't intend to spend time thinking about how it all works. This is in particular to Namecheap.
1. Login to Namecheap and head to Advanced DNS
After you've logged in, view your the domain list and click "Manage"
You should already see the ability to add the CNAME Record. If so, go straight to Step 2. The rest of you may see something like:
"You can transfer DNS back to Namecheap BasicDNS to take advantage of our free Domain Redirect and Host Management services and other features."
In which case, you'll just need to click "Change DNS Type", which will take you to the "Domain" tab of your domain and adjust Namecheap's Nameserver settings to "BasicDNS".
Don't forget to hit the less obvious check button. Once that's done, you should see a countdown.
Once this countdown is finished, head right back to the Advanced DNS tab and head right into Step 2.
2. Setting up the CNAME with redirects
Ghost's support page for Custom Domain Setup says you can either setup a root domain like rootdomain.com (for a clean look) or subdomain versios of your domain name like www.rootdomain.com if you're feeling a little old school or just want to do something like blog.rootdomain.com.
But what if you want to redirect mysite.com to www.mysite.com or vice-versa?
In the case of the Hacker Notes site I wanted to keep the www.hackernotes.net and have hackernotes.net (without the WWW) to redirect to www.hackernotes.net
For this specific case, Click "Add New Record", Select CNAME Record, HOST will be www, VALUE will be www.yourwebsite.com and TTL will be Automatic.
Do the same thing with the exception of the CNAME Record's VALUE at yourwebsite.ghost.io
UPDATE 11/13/17: You can now just use a single CNAME Record and a URL Redirect Record - which would just be two entries
Then finally, add a URL Redirect Record with HOST set to @, and Destination URL at http://www.yourwebsite.com all set to Unmasked.
At this point, you should have a screen similar to the one in shown above.
3. Setting up Ghost to accept the domain
Log on ghost.org > Go To Publications and click the Owner droplist. It should look like this:
Click Domain and enter in the URL in the next following screen and make sure CloudFlare is unchecked.
That's it! Give it a few minutes (or an hour) and your domain should resolve for you blog.