The main reason behind the move was wanting to experiment with hosting my blog on the decentralised web. Converting the blog over to static website generator gives me full control to host the site wherever I want. I had been wanting to migrate off of Wordpress for a while, the extended home time due to Covid-19 gave me the time I needed.
It took me about a week of evenings to convert and clean it up. You can read more about How I converted my blog from Wordpress to Jekyll.
IPFS + Cloudflare
Site storage on IPFS
I currently do not have the site stored and hosted on a single centralised server, instead it has been pinned on various decentralised servers on IPFS network. One of the services I am currently using is Pinata in addition to my own VMs, to give it more resilience.
Each time I generate my blog and add to IPFS, I will get a new cryptographic hash that represents the root of my site e.g.
QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o. You use the hash to request the file from any computer in the network that may have it.
Cloudflare to serve to normal browsers
I am then using the Cloudflare IPFS gateway to look up the hash of my blog, retrieve it, and return it to the browser. Their recent improvements to their IPFS gateway made it possible for me to now host my blog there without issue.
blog.davidburela.com records CNAME: blog.davidburela.com cloudflare-ipfs.com TXT: _dnslink.blog.davidburela.com dnslink=/ipfs/<the latest hash>
Ethereum Name Service
To help further decentralise my blog, any native IPFS client can access my blog directly by looking up the blog’s hash in ENS instead of DNS. Browsing to
blog.davidburela.eth will retrieve the hash from the blockchain, and then retrieve the site from IPFS peers.
You can see the entries in the ENS dashboard https://app.ens.domains/name/blog.davidburela.eth