To only drawn the text once you can use the select transform:
Plot.text(data, Plot.selectFirst({
x: 0.1,
y: 12,
textAnchor: "start",
text: (d) => d.date.toLocaleString("en", {month: "long"})
}))
Also I recommend using English rather than the browser’s locale since the rest of the page is in English already and it looks odd to mix locales.
ooh - thank you!
And, thank you for the suggestion / update regarding Locale string! I copy/pasted from a stackoverflow answer and only briefly wondered what the 'undefined' was doing :). Good learning for the future too.