Node-page navigation model: blog → related → Wikipedia

Date: 2026-08-28 Project: astro-starter-template (second-brain)

Decision

Present each node as a blog article that keeps connecting like Wikipedia. Source: site/app/ (copied to dist/ at build; dist/ is git-ignored).

Node page anatomy (in order)

  1. Article header: kind/status/level badges (kicker), title with status glyph, tag row.
  2. Body (the note) as lead prose.
  3. Open questions.
  4. “Path to master” (prerequisite route).
  5. Links from this note — outgoing edges with rel chips (NEW; was missing entirely). Wikipedia’s outbound links.
  6. Related — blog-style related grid: proximity score = +2 per shared tag, +1 same section, excludes nodes already directly linked (edge or backlink), top 6, card = glyph + title + kind + 110-char excerpt. Only NEW connections are offered.
  7. Backlinks (“what links here”).
  8. Used by projects.
  9. Footer nav: prev / next within the node’s own track (section reading order)
    • “in track →” link. Sidebar highlights the node’s section on node pages.

Gotchas

  • Sidebar active was never set on node pages before — node views now call renderSidebar(section).
  • curriculum.place[slug].prev/next is a GLOBAL reading order; for track-local prev/next compute from section.nodes array instead (sectionNav helper).
  • Related cards must exclude direct neighbors or they duplicate the link lists.
  • Smoke test the SPA headless: stub document.querySelector/window/ localStorage/fetch (real JSON), import dist/app/main.js, set #/node/x — catches template runtime errors in <1s.