Field note · July 11, 2026
How scheduled posts work here
Posts carry a date in their front matter. Anything dated after the build date is written but not published: no page, no sitemap entry, no RSS item, no
Posts carry a date in their front matter. Anything dated after the build date is written but not published: no page, no sitemap entry, no RSS item, nothing in the search index. There is nothing to find.
A GitHub Actions cron rebuilds every morning, so a post dated three months out appears on its own three months from now with nobody touching anything.
npm run build:drafts # renders the withheld ones locallyThe nice property is that it fails closed. A bug in the date comparison withholds a post that should have gone out — annoying, visible, fixable. The opposite failure would publish something early, and you cannot unpublish from an RSS reader.
Withholding has to be total to mean anything. A post that is absent from the index but reachable at its URL is published; a post in the sitemap but not the index is published, to a search engine. So the gate sits at the point where documents are loaded, before anything that could leak one: no page, no sitemap entry, no feed item, no search-index row.
The other thing this buys is honesty about dates. A post dated in the past was written then, or the date is a lie — and since the archive is generated as a whole, the dates are the schedule rather than a claim about when someone sat down to type.