The website is static. This way I can host it on GitHub Pages, Dat, IPFS or some other cheap hosting provider. It’s really fast, it doesn’t require PHP or databases, it’s safe.

GitHub Pages is free, convenient, reliable. Dat and IPFS are awesome technologies, it’s really cool that supporters of the website can pin it, potentially hosting it forever. And the users who might use Dat and IPFS to access the website will be the ones who are interested in the subject of the website, decentralized technologies. The about page contains all the links where the website is accessible.

It is built with Jekyll with the Minima theme with some modifications. Free themes in Jekyll give you a pretty website design out of the box. They work well with smartphones, they are optimized for search engines. Jekyll has plugins for further features and customization. Jekyll gives a quick structure for your website, so you can start writing your pages right away, and it also has blogging capabilities.

The website doesn’t use JavaScript. Visitors can be sure it doesn’t run any malicious code, it doesn’t steal their data. It’d easily work on Tor or I2P where JavaScript is usually disabled. Blogs, Wikis, text and picture websites have no reason to run JavaScript, or at least always should work without JavaScript. Jekyll actually inserts some SEO tags with JavaScript by default, and I haven’t found an easy way to disable it yet, but I just delete those to keep the website pure.

The website is tiny. There are no images (at least not yet). Version 1 was about 70 KB. This makes it really easy for those who want to pin the website on Dat and IPFS. It also keeps the design clean, and hosting free/cheap.

The main page of the website is the most important, it hosts the list of technologies divided into categories. PrivacyTools was an inspiration, that’s the go-to place for most people to find privacy-oriented services. I chose the most important and awesome decentralized techs to review, and gave a few additional services a mention. This is my list, it’s about what I think is important, but I don’t know the whole spectrum of decentralized technologies equally well, so I welcome suggestions. I plan on updating the list over time. I’m trying to support these technologies by giving them visibility, and trying to create a place people can go to to discover tech they want to use. Most of these projects are really important, the free internet can’t exist without them anymore. You can’t stay anonym without anonymity networks. Traditional social media websites are centralized, heavily censored and harvest data from their users. Traditional messaging applications leak data to advertisers and law enforcement. Decentralized alternatives are crucial.

The blog is the secondary part of the website. Here I write posts that are connected to the technologies on the main page, guides on how to use them, further thoughts. Users of decentralized technologies might find these blog-posts useful.

Proofs

The about page has my PGP public key. I signed version 0.9 of the website markdown files to prove they were made by me. I timestamped the signed files with OriginStamp on the Bitcoin blockchain to prove the ownership of the website content. The proofs page has all the instructions to verify these. Only accept cryptocurrency addresses and sensitive information from me if it has been signed with my PGP key.

Hosting experience

Hosting on GitHub Pages was really easy. I just created and set up an account, and pushed the built website with git.

Dat was fairly easy too. The Beaker Browser has great, noob-friendly tools and instructions to share your files. After I started seeding the website files on my public key, I registered with a free pinning service that pulled the files from me with no problem.

IPFS was harder. Jekyll uses absolute links, but IPFS URLs consist of the address of localhost or a clearnet gateway, the words “ipns” or “ipfs”, and the IPNS or IPFS hash of the website; so the absolute links don’t work. I haven’t found a way to use relative links yet, but I just manually edit the HTML of my pages.

Adding files and IPNS names from IPFS Desktop didn’t work for me, so I used the command line. Pinning was harder too. Some pinning services gave me errors, so I had to do some debugging. A lot of pinning services don’t support IPNS pinning yet, so I’ll have to manually update the IPFS hashes every time I update the website. Some pinning services work through an API, so it’s not that hard, and I heard some services support IPNS too.

Update 20200329: IPNS doesn’t seem to work when I’m not online, and I don’t have a domain, so I stopped pushing to IPFS. The absolute links might be a problem with Dat gateways too (but people probably use Hashbase or Beaker Browser with Dat, not gateways).