dat!
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:
cd _site
- create your dat with
dat create
- enter a name and description for your dat
- 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.