New project: archive your Firefish posts
This project is heavily inspired by Zach Leatherman’s Tweetback], but instead of being for Twitter, it’s for Firefish. I recently moved away from using Firefish, but I didn’t want to remove the instance as then the individual posts would be inaccessible. While I don’t think anything I wrote on that account is particularly impactful (unless someone’s been cataloguing my commutes or something), I’d still like to make them accessible for posterity.
So I built this tool: Firefish Archiver. It uses Eleventy + the open Firefish API to retrieve every public note from the account, and then recreate it using the same URL structure. I’ve (tried) to make the resulting HTML as un-shit as possible, but it’s still very much a work-in-progress.
Usage is pretty simple: add your user ID and Firefish host to the
src/_data/metadata.json file, and then run the
npm build command. The template then:
- Fetches your profile information and recreates it
- Fetches all of the public posts and organises them into threads
- Creates a
/.well-known/webfingerfile pointing to whatever account you’ve redirected to
Then, you can upload the output in the
_site directory to any location you’d like. The output is cached, so you shouldn’t need to worry about the instance being deleted on subsequent rebuilds. The intention for this is that it can replace the instance entirely as a static drop-in, for single-user instances, but it can also be used if you want to host a copy of the content from another instance.
I’ve got plans to add a few extra details. Namely:
- Content warnings
- Favourite & Renote counts
- Site search
- Improving the styling
Feedback on the project is always appreciated - you can send a webmention to this page, or drop me a message through any of [my socials][/links].