Every event markdown body opens with # <Title>, identical to the <h1> the hero already renders from title: frontmatter. The result is the title printed twice on every event page, roughly one screen apart, and two competing h1 elements per document.
Visible on any event, e.g. /events/2026-06-25-Least-Frequently-Used-Cache.
Fix
- Drop the leading
# <Title> line from every file in events/.
- Demote the remaining body headings one level if that leaves an
h2 acting as the section opener.
- Add a case to
lib/event-validation.test.ts so a body starting with # fails the build, in the same shape as the existing "must not restate the speaker" test.
- Update
events/_template-event.md and the body-convention list in CLAUDE.md / CONTRIBUTING.md.
Noticed while adding the speaker byline and block (components/event-speakers.tsx), which removed the equivalent duplication for speaker data.
Every event markdown body opens with
# <Title>, identical to the<h1>the hero already renders fromtitle:frontmatter. The result is the title printed twice on every event page, roughly one screen apart, and two competingh1elements per document.Visible on any event, e.g.
/events/2026-06-25-Least-Frequently-Used-Cache.Fix
# <Title>line from every file inevents/.h2acting as the section opener.lib/event-validation.test.tsso a body starting with#fails the build, in the same shape as the existing "must not restate the speaker" test.events/_template-event.mdand the body-convention list inCLAUDE.md/CONTRIBUTING.md.Noticed while adding the speaker byline and block (
components/event-speakers.tsx), which removed the equivalent duplication for speaker data.