Statac

Publish

Fetching from other sites

Statac fetches a few things from other sites into a folder of your site, so that a build never needs the network.

What Statac fetches, and when

What When it arrives Where it’s kept
The still of a video kept on YouTube or Vimeo As statac serve starts, or when you run statac refresh fetched/stills/, as youtube-abcdefghijk.jpg
New webmentions, on a site that has them on At the same times, after the stills fetched/mentions/, a file each
The picture of whoever sent a webmention With the webmention fetched/faces/
What was fetched, and on which day With each thing fetched fetched/record
The webmentions you turned away When you run statac refuse fetched/refused

fetched/ sits beside content/. Commit it, and the site builds the same anywhere, with nothing to fetch.

build and check never use the network. They read fetched/ and never change it.

Nothing in fetched/ is published as it is: a still or a face reaches a reader only as the copies Statac makes of it.

statac serve fetches what is new once, after its first build with no errors: see fetching as it starts.

Fetch what’s new

statac refresh
Fetched `fetched/stills/youtube-abcdefghijk.jpg`.
No still: Vimeo has no picture for `123456789`.
Fetched 1 still. 3 already here.

refresh builds the site in memory, drafts and posts waiting for their day with it, and fetches a still for each video that has none yet. Then, on a site with webmentions on, it asks for the new ones.

Option What it does
--site=<folder> The site’s folder, as statac refresh docs names it. Without either, the site the current folder is in.
--today=<date> The day the record gives each thing fetched, as 2026-10-04. Without it, today in the site’s timezone.

refresh ends with 1 where the site has an error, or a still, the webmentions or a file couldn’t be fetched or written. A video with no still on its own site isn’t a failure. See exit codes.

How old is it?

Fetched: 12 stills, the oldest 40 days ago.

statac build says how long ago the oldest still was fetched and, on a site with webmentions, the newest of those:

Fetched: 87 stills, the oldest 6 days ago; 12 webmentions, the newest today.

What fetched/ already holds is never fetched again, until you fetch it again yourself.

The record

statac fetched 1
stills/vimeo-123456789.jpg	absent	2026-10-06
stills/youtube-abcdefghijk.jpg	0f3a9c1e5b7d2468	2026-10-06

fetched/record has a line for each file, webmentions and faces too: its path under fetched/, the start of a hash of what it holds, and the day it was fetched. Statac writes it, and you never need to.

absent marks a still the video site doesn’t have, or a webmention that wasn’t kept. refresh never asks for either again.

A still with no line in the record is one you put there yourself. It is used like any other, and has no date.

Fetch a still again

Delete the still and its line in fetched/record, then run statac refresh. To ask again for one the record says is absent, delete its line.

Working offline

statac serve --offline
Offline: nothing is fetched from other sites.

--offline has serve fetch nothing. Without a connection, serve says so and goes on, and refresh ends with 1.

Where next?

Something unclear or wrong? Open an issue on GitHub.