Project summary
This is one iteration of a technology spike exploring how to replace the WordPress-hosted Health Data Connect listing with a statically generated site. Full detail lives in SPECIFICATION.md at the repo root; this page is a short orientation, not a replacement for it.
Aims
- Host all data currently available within HDC on a static site, with search and filtering over it.
- Design a better data model for HDC entries, and identify the value sets (enums) already implicit in the data.
- Support easy deposition of new/updated entries by Alliance members, via a Git-backed CMS rather than WordPress.
- Automate deployment on update, with no DevOps involvement per release.
What this iteration (Astro) covers
- Data model — a JSON Schema (
/schema/hdc-entry.schema.json) and identified value sets, shared by every spike iteration, not just this one. - Static site generator — Astro, using its content collections to read entries directly from
/data/entries. - Search — Pagefind, full-text across every field (including ones not shown on any page), plus category/readiness/license facets.
- Filters — category, readiness tier, license, intended users, primary purpose, cost model, support level, and a number-adopting range, with a “Go” button for search and a “Reset” for all filters.
- CMS — Decap CMS wired to the same
/data/entriesfolder via a local Git-backend proxy. - Styling — colours, logo, and per-value visual treatment reused from the live ukhealthdata.org site.
See EVALUATION.md for what was actually tried, what broke, and how it was fixed — including things that only surfaced by clicking through the built site, not by reading the code.
What’s still open
Other SSGs (Next.js, Eleventy), other search libraries (Lunr.js, FlexSearch, MiniSearch, Orama), and Sveltia as a CMS alternative haven’t been tried yet. See SPECIFICATION.md’s “Progress so far, and requirements for subsequent spikes” section for what every future iteration is expected to satisfy.