How to build a blog on IPFS (that will live forever?)

By Ev Bogue - June 13th 2016

I'm notorious for deleting things. Over the past 18 yeras I've deleted more blogs than you've ever be able to start in your entire lifetime. This is why I have a particular fascination with IPFS, the interplanetary file system.

Because there's a chance, with some great distributed web engineering, that I may never be allowed to delete any of my blogs again. And simultaneously I will be able to eliminate the mental overhead of maintaining the gigante amount of information that I've created so far in the digital world.

So IPFS is pretty simple, once you get it installed.

I use the version of IPFS that's available in aur. The installion instructions are the same as anything in aur.

% wget https://aur.archlinux.org/cgit/aur.git/snapshot/go-ipfs-git.tar.gz
% tar -zxf go-ipfs-git.tar.gz
% cd go-ipfs-git
% makepkg -si

And watch it install.

Installing IPFS on your system may be different, but I'm not here to hold your hand on such an easy thing to install as IPFS. Go to their website and follow their install instructions if you want to get it working on your non-Arch Linux system.

Anyway, ipfs from the command line is a simple set of commands

    init          Initialize ipfs local configuration
    add <path>    Add a file to ipfs
    cat <ref>     Show ipfs object data
    get <ref>     Download ipfs objects
    ls <ref>      List links from an object
    refs <ref>    List hashes of links from an object

If you've used UNIX or Git a few times add cat get and ls will make intuitive sense to you. If you haven't used Linux, get yourself a decent dev computer and get familiar with some basic unix commands.

I've been playing around with engineering a blog on IPFS using metalsmith. I've been using Metalsmith for more than a years, so I figure it's a good tool to build an IPFS-oriented blog. Conveniently, Juan Benet also designed the IPFS blog in Metalsmith, so I have a great example to work from.

How to build a blog on IPFS

IPFS can pretty much only handle static files and programs executed in a browser. Because IPFS is not a distributed virtual private server, you can pretty much expect any blog software the needs a server to run not to work on it. So you can write off Wordpress and Ghost right now, unless you find some sophisticated way to spork the content up to IPFS land after every build.

This makes static website generators, the kind that most developers check into Git, perfect for IPFS.

So the workflow of creating an IPFS blog is simple

  1. Write a program to build a static blog
  2. Build the blog
  3. Publish to IPFS
  4. Return the IPFS hash.

Because IPFS merkle dags return at a /ipfs/ URL (and not say ipfs://) right now, the big caveat here is we need to design a blogging system that uses relative links.
I have a rudementary IPFS blog project started at github.com/evbogue/everlog. Feel free to download and play with it on IPFS. Pull requests welcome.


Take a moment to link to this post from your blog, whether you're using IPFS or not. The only way this blog posts makes it to new readers is via your active html linking support!

If you want me to link back to you from here, email me with your link and I'll link to your blog. Instant traffic!

How to create a practical minimalist wallet for free →

← The disposable laptop era: how to get a decent dev computer