Depending on how you got to this article the first thing you might be wondering is what the “InterPlanetary File System” actually is. If we skip the technical jargon, the simple answer is that the IPFS is a decentralized, peer-to-peer network for storing data and works similarly to Bittorrent. The IPFS is part of an emerging technological revolution of the Internet that seeks to decentralize everything so content is more accessible, permanent (censorship-proof) and delivered more quickly.
Typically, websites are a series of files hosted on servers in some datacenter. We then use a domain name to connect those hosted website files with a human-readable URL address so users can simply type the domain name into a web browser, like Firefox, to visually render the website. Top-level domain names (like atmovantage.com) must be registered with an ICANN-accredited Domain Registrar. Those website files are delivered to the end-user through ISPs (Internet Service Providers). The problem with this entire system is that it relies on trust.
We need to trust data centers to reliably host the website files. We need to trust domain registrars to register our top-level domain names. We need to trust ICANN to allow our domain name to exist in the first place. And finally, we need to trust our Internet Service Providers to relay the website data to users’ browsers. If any of these entities violates our trust it can effectively bring a website down. I refer to each of these points-of-failure as censorship vectors.
When operating on today’s standard Web 2.0, we can minimize the potential for effective censorship vectors by using trusted providers. In light of many high-profile censorship and deplatforming cases over the past few years, several providers have emerged as being more friendly towards free speech online. Domain registrars and hosts like Epik in particular have proved to be very reliable.
However, even if you use trusted web hosts and domain registrars, ICANN can still seize your domain name and hackers/bad actors can still attack your website, disrupting the connection or even altering the content. The emerging solution to these censorship/deplatforming problems is Web 3.0.
The Web 3.0 initiative is still an early work-in-progress, but several new technologies have already started to emerge that make it possible for everyday people to build basic websites and host them on the the decentralized IPFS network. Below I will take you through some of the solutions available today to build a censorship-resistant website, completely free!
Disclaimer: This is intended to be a general solution guide, not a step-by-step tutorial.
1. Build a Static Website
To get started, download Publii and use one of the free themes to get started. Publii offers a very user-friendly interface that gives a wide range of flexible options for configuring your website. It’s easy enough for beginners, and flexible enough for experienced web designers to use too.
You can use Publii to build a basic static blog website. In the server settings you can connect Publii to your GitHub repository. This will save you time exporting files from Publii and then uploading files manually to the repo. (Hint: also make sure you use “relative URL” in the server settings)
Publii offers a few different themes that can help get your website off the ground quickly, while still looking polished: https://marketplace.getpublii.com/
2. Upload Website Files to GitHub
You will need a free GitHub account. GitHub is a file versioning system that will allow you to control changes made to your static website, such as when you want to publish a new blog post or make changes to your website.
Create a new repository for your website, then create a new personal token and connect Publii’s server settings to your website’s GitHub repository. Once you do that then Publii will automatically push changes (commits) directly to GitHub so you don’t need to update the files manually.
GitHub is a potential censorship vector but the risk is low. Controversial development teams like Gab continue to operate a GitHub account without problems (which is impressive considering the Gab team has been deplatformed by basically everyone). Nonetheless, GitHub has disabled Iranian developer accounts in 2019 due to US government sanctions.
3. Connect GitHub to Fleek
Fleek is a service that automatically deploys static websites in GitHub repositories to the IPFS (InterPlanetary File System). Simply follow the instructions on Fleek to add a new website and connect your website’s GitHub repository.
Fleek offers a free tier that should suffice for most basic static websites. If you make changes to your website’s GitHub repository (like when you publish a new post) Fleek will automatically detect the file changes and deploy them to the appropriate hash address. Your IPFS website URL (hash address) looks like “ipfs://bafybeihkaxrrpucnq2jd5qjsz7yudcxuqm5uathsi6b7qseso4fru4yhuq/” and is only accessible in browsers that are configured to view IPFS addresses (like Brave), or browsers with extensions like MetaMask that parse IPFS hash locations and/or .crypto domains from Unstoppabe Domains..
Websites written to the IPFS network cannot be censored (once they are written to an IFPS hash they cannot be deleted). However, Fleek is an intermediary that provides a top-level HTTP domain that automatically points to the latest hash address that holds your website’s most recent version. This “on.fleek.co” URL makes it easier for non-technical users to view your website on any browser or device.
When using Fleek you also have the option to set up a forwarding DNS to an existing top-level domain. For example, I own the domain atmovantage.com, so I connected my DNS settings with Fleek to forward a special sub-domain to the IPFS website. That sub-domain will then redirect to the unique Fleek URL that looks something like “https://solitary-morning-2429.on.fleek.co/”
Fleek is a relatively new service that claims that they help build censorship-proof websites using IPFS. Their Terms of Service do contain some concerningly-vague references to “harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable” content. It’s possible these terms are boilerplate for legal purposes. The good news is that the terms of service do not include aggressively-woke phrases like “hate speech” which is an obvious free speech red flag.
As more and more websites host their potentially controversial content on the IPFS using Fleek we’ll have to see if Fleek comes under pressure from the anti-free speech mob and how they respond.
Final thoughts: Although IPFS-hosted websites are considered “censorship-proof” because they cannot be deleted from the network, that doesn’t mean that there aren’t other potential censorship vectors that can disrupt the website. Without GitHub the process of publishing changes and deploying a website via Fleek wouldn’t work. Without the browser-friendly “on.fleek.co” address generated by Fleek your IPFS website traffic would be limited to only users tech-savvy enough to run IPFS-compatible browsers.
So although IPFS websites are far more robust against censorship than traditional HTTP websites, they are not impervious to some forms of censorship attacks. An IPFS website is like wearing a bullet-proof vest: it’ll protect your site from getting killed, but some non-vital bits might get hit and it’ll still hurt.
Visit https://ipfs.atmovantage.com to see a demo website I created on the IPFS network.
IPFS, blockchain technology and crypto domains are still an emerging technology and things are changing rapidly as more developers enter this exciting new industry. Are you interested in getting an IPFS website started yourself? Contact AtmoVantage today!