There are two main costs associated with building a website, namely domain name registration cost and hosting cost. This website’s name “shaunlgs.com” is registered with Hostgator and costs around $13 per year, and every year I have to renew it. Domain name registration is the easy step, the headache comes with finding a host.
A host is a computer that hosts your website files, there are organizations that provide spaces in their server to host your files, some familiar website hosts are Bluehost, Hostgator, Dreamhost, Digital Ocean, and Linode. In exchange of some money (around $5 per month for Bluehost), you can rent a space in their server to put your files, and let people access it. There are two types of hosting, shared and dedicated, shared hosting puts your file in a computer together with other people’s files, so you are sharing the computer resource to run your website together with some people’s website, this is preferred for small business or personal website like mine. Dedicated hosting is more expensive and I shall not go into that.
I chose Bluehost as my web host. It is stated that Bluehost has unlimited bandwidth, that is unlimited transfer of data between my website and users, but there sure is a limit on the number of GB transferred. Moreover, the computer resource is shared, my website runs slow, I must find a way to reduce the load on the website.
Cloudflare is a CDN provider. CDN’s main purpose is to serve your files faster by making a copy near the user. CDN cache your files and send to their data centers all over the world, e.g. Singapore, Hong Kong, US. If a user requests your website files, the data center nearer to the user will send the files to the user. Besides that, Cloudflare minify your content, making your files smaller (smaller bandwidth, faster). Also, some security benefits such as email obfuscation, prevention of other attacks, etc. To use this service, I have to point my domain name registrar’s nameserver to Cloudflare. I can also edit my DNS at Cloudflare.
From Cloudflare, I direct my traffic to shaunlgs.com, subdirectories, subdomains to their respective hosting place.
My website structure is as follows:
Hostgator.com (Domain name registrar) —> Cloudflare (DNS editor, CDN) –> Bluehost, Github pages, WordPress
I host my main site (shaunlgs.com) and its subdirectories (gh-pages) at Github pages. Bluehost hosts projects that cannot be hosted by Github pages such as server sided contents (PHP, SQL, etc), point Cloudflare subdomain to Bluehost. WordPress hosts blog.shaunlgs.com.
Hostgator (Domain name): $13 per year
Cloudflare (DNS editor, CDN): FREE
Bluehost (Hosts server sided projects, at subdomain): $5 per month
Github pages (Hosts main site and projects, at root and sudirectories respectively): FREE
Wordpress (Hosts blog.shaunlgs.com): $13 per year
The total cost is $86 per year or $7.2 per month (RM23 per month). For the three website hosts, Github pages and WordPress can accommodate large traffic, Bluehost is shared, so its a bit slower, but I only host some server sided projects there, so the chances of my website going slow or down is low. It may be weird to host my files using three different web hosts at once, but it lowers my bandwidth, makes my website run fast, and prevents any website downtime.