Archival cascades: a practical way to not break URLs

an model for avoiding broken links by automatically checking previous versions of your site before serving a 404, using site.js

If you have static archives of previous versions of your site, you can have Site.js automatically serve them for you.

Just put them into folder named .archive-1, .archive-2, etc.

If a path cannot be found in your current site, Site.js will search for it first in .archive-2 and, if it cannot find it there either, in .archive-1.

Paths in your current site will override those in .archive-2 and those in .archive-2 will, similarly, override those in .archive-1.

This was you create a cascade of archives where you can serve static snapshots of older content.

Using the archival cascade, old links will never die but if you do replace them with newer content in newer versions, those will take precedence.

So, after this step, my archive site structure looked like this:
  ├ .hugo
  │    ╰ (contents of the latest site)
  ╰ .archive-1
       ╰ (contents of the site from 2013-2018)

It would be interesting to see if this could get built directly into the IPFS gateway.

It already has code to serve up ipfs-404.html if a file is missing so doing this wouldn’t really be a stretch.