ADR 0012: Posts-Based Slide Deck Architecture (Deprecate slides Collection)

Context

Historically the site experimented with a dedicated slides collection (site.slides) to hold Reveal.js decks. Over time this introduced maintenance overhead (collection-specific loops, nil guard complexity, duplication of metadata logic) and conflicted with the established pattern of keeping standard content in _posts/ for uniform indexing, theming, and feed considerations. During recent refactors the slides collection was fully removed; templates now filter site.posts for paths under _posts/Slides/.

Decision

Adopt a purely posts‑based slide deck model:

Rationale

  1. Simplicity: Eliminates conditional logic and nil checks around an optional collection.
  2. Consistency: Reuses established post front matter parsing, date handling, and permalink patterns.
  3. Performance: Avoids parallel indexing structures; one pass over site.posts with a narrow filter.
  4. Documentation Clarity: Single, canonical storage location reduces contributor confusion.
  5. Maintenance Risk Reduction: Fewer custom code paths; decreases chance of Liquid errors (e.g., sorting a null object).

Front Matter Schema (Reference)

Required: layout: reveal-integrated, date, title, description.

Optional: topics (array), image, image-alt, preview_html, aspect_ratio, last_modified, deck-style.

Explicit permalink pattern enforced per deck: permalink: /slides/{slug}/.

Alternatives Considered

Consequences

Positive:

Negative / Trade-offs:

Migration Notes

Future Considerations

If deck volume or querying needs grow substantially (e.g., multi-thousand decks) reconsider a collection only with:

Status

Accepted and implemented as of 2025-11-03.