Content layer, index and entry pages built in three Claude Code sessions. Add a markdown file, push, and it appears without touching code. That was the test for this phase.
- Content module reads the markdown files, validates every field, and refuses to build if one is malformed. Schema is a discriminated union on entry type, so a note is checked against different rules than an essay.
- Index lists everything reverse-chronologically, with year markers breaking the list so gaps show.
- Entry pages render each type with its own measure.
- Images break out of the narrow measure. The first note had an annotated sketch in it, unreadable at that width.
- Dropped the link colour on the index. Classic browser blue read as unstyled, and visited purple made clicked rows look stale.
- Note truncation takes the first sentence. A character count cut mid-word.