What brokeUpdated 3 October 2026
'Today's story' label showed a two-day-old story
On 16 September the kokkekunst.no front page said "Dagens sak — 14. september". The static site was not rebuilt every day, because the deploy hook was not set.
The short version
What went wrongThe front page label always said "Dagens sak" (today's story) with the story's date, but the static site was not rebuilt daily, so on 16 September it showed 14 September.
How we found itThe front page was seen reading "Dagens sak — 14. september" on 16 September. The commit traced it to the deploy hook not being set.
The rule nowDon't assume a static site is rebuilt daily. Compare the story date with today's date in Oslo time, and if they differ or can't be checked, show "Siste sak" with the date.
This post documents something Claude got wrong. The claim rests on a commit or a file, not on memory. All of Claude's mistakes
On 16 September 2026 the front page of kokkekunst.no had a heading over its lead story that read «Dagens sak — 14. september». “Dagens sak” means “today’s story”. The story was two days old.
This post covers how that happened, how we found it and the rule we now follow. It is a small bug. We still think it is worth writing up, because the assumption behind it is easy to make with any static site.
What the page did
The kokkekunst.no site is a static Astro site. Pages are rendered to HTML at build time, and nothing on the front page is computed when a reader loads it. The site picks the newest story, shows it as the lead and puts a label above it.
Before the fix, that label was fixed text: “Dagens sak”, a dash, and the story’s publication date in Norwegian long form. The template never checked whether the date was actually today. It always said “today’s story” and took the date from the story.
This would only have been correct under two conditions:
- the site is rebuilt at least once a day, and
- a new story is published every day.
If either fails, the label is wrong. In this case the first one failed.
How we found it
The commit that fixed it opens with the observation:
Den 16. september sto det «Dagens sak — 14. september» paa forsida.
(“On 16 September the front page said ‘Today’s story — 14 September’.”)
Why it happened
The commit message names the cause: the site is not rebuilt every day, because the deploy hook was not set. Without that hook, the site was not rebuilt, and the front page kept a label that was only true on the day of the last build.
The commit also points out a second problem that remains even once the hook is in place:
og selv naar den blir det, er en sak fra i gaar ikke dagens.
(“and even when it is, a story from yesterday is not today’s.”)
A daily rebuild only fixes the stale build. It does nothing about a day with no new story. If the newsroom engine publishes nothing on a given day, the next rebuild picks the previous day’s story as the newest one and labels it “today’s” again. The label has to depend on the story’s date, not on how recently the site was built.
Who got it wrong
Henning writes no code himself, so the original label, and the daily rebuild it assumed, were Claude’s.
The fix
The fix landed on 16 September 2026, the day the bug was spotted. It changes the front-page template in three ways:
- It formats the story’s publication date and the current date as plain calendar dates in the Europe/Oslo time zone.
- It compares the two.
- If they match, the label reads “Dagens sak”. If not, it reads “Siste sak” (“latest story”), followed by the date as before.
The time zone matters. Kokkekunst.no is a Norwegian site, so “today” means today in Oslo.
The comparison still happens at build time, like everything else on the page. That has a consequence, and a comment in the template states it plainly: after midnight, the label only switches from “Dagens sak” to “Siste sak” when a nightly rebuild runs from the newsroom engine. Without that rebuild, a story published today keeps its “Dagens sak” label tomorrow, because the page was built today.
So the fix does not make the page always correct. It makes it correct whenever a build has run since midnight, and it changes what happens when no build has run. The comment explains why that is good enough:
En «siste sak» med dato er sann uansett hvor gammelt bygget er.
(“A ‘latest story’ with a date is true no matter how old the build is.”)
That is the real change. “Latest story — 14 September” can be read on the 14th, the 16th or the 30th and still be true. It may be stale, but it is not false. “Today’s story” is a claim about the moment the reader looks at the page, and a static build cannot back that claim unless something rebuilds it on time.
What we did not fix in this commit
The commit does not set the deploy hook. It names the missing hook as the reason the site was not rebuilt, and it changes the template so a missing rebuild can no longer produce a false label. Without regular rebuilds, the front page can show a latest story that is older than it needs to be. It just won’t call that story today’s.
The rule
Don’t assume a static site is rebuilt every day. If the page depends on a scheduled rebuild, check that the trigger actually exists and runs.
Any label that claims “today” must compare dates in Oslo time. It compares the content’s date with the current date, both as calendar days in Europe/Oslo. If they don’t match, or the check can’t be made, the label says “Siste sak” (latest story) with the date, never “Dagens sak”.
Corrections
- Attribution corrected: an earlier version said the material did not show who wrote the code and did not put the mistake on Claude. Henning writes no code himself; the code was written by Claude.