Skip to main content
Eve's Library

About this demo

Eve’s Library is a demo, not a real library collection. It exists to show what an adopter gets from the libcatalog framework and its Hugo module: a faceted, accessible, multilingual-capable discovery site with static full-text search — and no backend to run.

How it’s built

The pipeline is deliberately boring, which is the point — every stage is a plain build artifact you can inspect:

  1. BIBFRAME / bibliographic records are the source of truth (the framework models Works, Instances, contributors, controlled subjects, and identifiers as a graph).
  2. The projector (lcat project) flattens that graph into two static JSON files — catalog.json (one entry per Work) and facets.json (precomputed facet counts).
  3. The Hugo module mints one page per Work from catalog.json via a content adapter — no per-record markdown — plus the facet navigation, Work detail pages, and accessible chrome. This site imports the module the way any adopter would and only supplies config, data, and light branding on top.
  4. Pagefind indexes the built HTML after Hugo runs, giving real ranked, per-language, CJK-capable full-text search that ships as static files.

What’s on display

  • Works and Instances. Each Work clusters its editions (ebook / audiobook / physical); a Work with multiple formats appears under each.
  • Controlled subjects vs. tags. Subjects are authority-controlled (LCSH, Homosaurus) with resolving links and localizable labels; genre tags are free strings. Both dimensions are faceted, side by side.
  • Faceted browsing by subject, contributor, format, language, and classification, with counts straight from facets.json.
  • Accessibility. The module targets WCAG 2.1 AA — skip link, focus styles, heading order, and keyboard-navigable search.

The data

The catalog is Eve’s real reading history, sourced from Hardcover — the books on her Read shelf — through a reproducible fetch-and-project pipeline (npm run data:refresh). Genre tags come across as free text; the build then promotes the mappable ones into controlled subjects (LCSH and Homosaurus) while leaving quirkier tags as-is, so both dimensions appear side by side. Covers, ratings, and read dates come from Hardcover too.

Source