Now hosted on IPFS

2020, May 18

This blog you are reading is being hosted on IPFS, ironically it was more work to get the nameservers of my domain switched to Cloudflare. I chose for Cloudflare as my DNS provider because they have a free IPFS gateway, which is essentially a reverse proxy that gives me SSL and a custom domain name. Without the IPFS gateway you would have to visit the (previous) version of my blog under https://gateway.pinata.cloud/ipfs/Qmdd7FoP36wzgMWnBV5ytYkdYXy2zyBgEqRmAE2UWLw1VW/ instead of https://www.crooy.com.

Which brings me to the core of IPFS, the files itself. My the files of this blog are packaged and sent to [Pinata(https://gateway.pinata.cloud/ipfs/Qmdd7FoP36wzgMWnBV5ytYkdYXy2zyBgEqRmAE2UWLw1VW/)], which is a IPFS pinning service. If you compare IPFS to bittorrents then a pinning service is like a seed node, Pinata acts as my permanent seed node, so whenever somebody needs my blog it can provide a copy. So even if nobody else uses IPFS, as long as there is a server somewhere with my content then the IPFS gateway will return my website. However, if many servers understand IPFS then, like in bittorrent, my content will be spread faster.

Imagine the possibilities! Since data is immutable in IPFS all you need to do to go back to a previous version is change the dns entry to point to the previous IPFS hash. If you run a dozen geographically distributed gateways your own, with pinning services attached then you your own CDN. [Synchronize(https://brig.readthedocs.io/en/latest/)] files without needing a single hosting server.

But back to basics, how does this all work. Well I have this blog which I quickly made in Gatsby, which is a static website generator. Well then i just use [ipfs-deploy(https://github.com/ipfs-shipyard/ipfs-deploy)] to upload the files to Pinata, update my cloudflare dns records and that is literally all there is.

My next challenge is to convince my wife, so i can stop hosting her wordpress 🤦 server. After that i am considering using [ThreadsDB(https://docs.textile.io/threads/introduction/)] to make a simple grocery list app for my wife and me, we are currently using Google keep, but their mobile version is a bit annoying.