There are many ways to do this. I would suggest going with a reputable domain provider, my preference and what I would recommend is to go through namecheap. They have decent customer service and a pretty simple UI. Just hop on, search for a domain you would like and purchase it
Domain names can range from a few cents to thousands of dollars depending on popularity. It doesn’t really matter where you get your domain from as long as you have access to the DNS settings so go with what you are familiar with
Hop onto notion and create an account. There are plenty of resources online on how to get set up with notion which i won’t go through here. All that matters is your notion site is deployed or “shared to web” as notion terms it. Below is an example of how your’s might look. Make sure the share to web toggle button is selected
Now you have a notion site deployed at a domain generated by notion. This might look something like this
https://surfskate.notion.site/SurfSkate-Things-SG-0ac1b2287a6a486da5ad7cfaf34d17ba
Not the prettiest huh, let’s get that fixed. We’ll do that by letting cloudflare handle DNS and with a cloudflare worker.
Add your previously purchased domain to cloudflare and choose a free plan.
Cloudflare should detect your registrar provide the necessary instructions. These are the steps if you use namecheap. It might take a while for the changes to propogate so don’t worry if the changes don’t immediately reflect
Go to the workers page and create a service. Proceed with the HTTP handler option
Now a worker has been created. Select quick edit and paste the script below
This script is the meat of the solution. It will redirect the traffic through your custom domain. I have it setup for my notion site surfskate.io like this. Below is the script, be sure to add your own variables (domain name, notion id, etc). The comments should be quite self explanatory, credit to Vic Shóstak.
your-domain.com/*
(or subdomain.your-domain.com/*
, if you would like to use a subdomain) as the Route and select the Worker you just created.Your notion site url should now be using your custom domain and look pretty. No difference to the content of the notion site. Might not look like a big deal but it’s the little things that make a difference 😎. Here’s a side by side
Feel free to drop me a line if you have any questions.