Project summary
This is the second iteration of the technology spike exploring how to replace the WordPress-hosted Health Data Connect listing with a statically generated site — see SPECIFICATION.md at the repo root for the full brief, and spikes/astro/ for the first iteration.
What this iteration (Next.js) covers
- Data model — the same shared JSON Schema (
/schema/hdc-entry.schema.json) and/data/entries/*.yaml, read directly (no copy), same as the Astro spike. - Static site generator — Next.js App Router with
output: 'export'static export — every route is prerendered to a real.htmlfile at build time, no Node.js server required to serve it. - Search — Pagefind, the same engine chosen in the Astro spike (see
spikes/astro/content-pages/search-engines.mdfor why, and the comparison against Lunr.js/FlexSearch/MiniSearch/Orama — not repeated here since the choice doesn't change per SSG). - Filters — the same 8 facets as the Astro spike: category, readiness tier, license, intended users, primary purpose, cost model, support level, and a number-adopting range, with Go/Reset.
- CMS — Decap CMS, wired to the same
/data/entriesfolder, a genericcontent-pages/folder for markdown pages, and the shared/data/site-settings.yamlbanner singleton. - Styling — the same design tokens and logo already extracted from the live site in the Astro spike, reused rather than re-scraped.
See EVALUATION.md for what was actually tried, what differed from the Astro spike, and how it was fixed.