Just a quick note that this site is now on the distributed web using dat. If you have Beaker Browser or the dat client you can find it here:

dat://inkdroid.org

Tara Vancil has an excellent post about how she publishes her Hugo static site with dat. The basics work for me on my Jekyll site, but I thought I’d offer a few small notes for Jekyll.

The basic process is to take your _site directory and turn it into a dat. As Tara says you can simply:

  1. cd _site
  2. create your dat with dat create
  3. enter a name and description for your dat
  4. share your dat with the world with dat share

At this point if you share the dat URL that was minted for your dat, e.g. 

dat://4eac0628a7c4589be94c7d2dcbd93e82bdc3828111a70395bf08a8b7fd943f6b

they should be able to open it Beaker, or download it with:

dat clone dat://4eac0628a7c4589be94c7d2dcbd93e82bdc3828111a70395bf08a8b7fd943f6b

But at least with Jekyll the next time you regenerate _site your dat will get deleted, so copy the dat.json metadata file that was created to your Jekyll source tree:

cp _site/dat.json dat.json
git add dat.json
git commit -m 'my dat file!' dat.json

Also you’ll want to tell Jekyll to ignore your _site/.dat directory _site/dat.json which were created when you did the dat create and are where the repository lives, with the all important keys that identify you as the owner of that dat URL. I added this stanza to my Jekyll _config.yaml:

keep_files:
  - .dat
  - dat.json

The only other wrinkle is deciding how much you want to keep your dat online. If there are no peers running when someone fetches your site, then it will timeout. Adjusting expectations around how available content is seems to be part of the interesting intervention that dat is making. Perhaps we shouldn’t expect our content to be available at any time, especially when we aren’t big companies with deep pockets, and extractive business plans? Part of what makes dat fun at this stage is that it’s a bunch of developers, artists, designers and activists who are trying to create a new kind of web, that’s not about bitcoin and cryptocurrencies.

So you can choose to keep a process running on your laptop, to share the dat site. You can even use Beaker to share the entire site while you are using it.

As Tara outlines you can choose to serve your static site over http and dat using [dathttpd]. In my case I have been happy running Apache for some time now, so I set up [hypercored] instead, which you can configure to seed any number of dats.

There final thing that Tara mentioned was how you can map your domain name to your dat, which allows you to use a URL like dat://inkdroid.org instead of the long complicated one. This is a breeze if you already have a website, you can just add a text file at the root of your website /.well-known/dat and put your dat URL in there, with a time-to-live.


dat://3cf5a0fb557aad42b13937fcd5bd4ebd165b1a496f35174705079e4551183b98
TTL=3600

When trying to resolve a host name Beaker looks for that well known file, and if it finds something there it fetches that dat. There is a DNS option too which is quite simple, and works for when your site isn’t on the web. The pragmatic approach that Beaker has taken to DNS is something I really like about the dat ecosystem.