Skip to content

Modernize backend pipeline, frontend design, features, and content - #6

Merged
Varnasr merged 1 commit into
mainfrom
claude/modernize-backend-frontend-content-kns7aa
Jul 9, 2026
Merged

Varnasr merged 1 commit into
mainfrom
claude/modernize-backend-frontend-content-kns7aa

Conversation

@Varnasr

@Varnasr Varnasr commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Description

A full modernization across four dimensions: a real (zero-dependency) build pipeline for the data, a refreshed frontend design system, several new reader features, and substantially expanded content (204 studies, up from 200).

Type of Change

  • Bug fix
  • New feature
  • Content addition or correction
  • Documentation update
  • Style or layout change
  • Refactoring (no functional change)

Related Issue

Closes #

Changes Made

Backend / tooling

  • Added a zero-dependency Node (ESM) build pipeline (scripts/build.mjs): validates every study JSON (required fields, unique slug/id, filename↔slug), regenerates master-list.json enriched with reading time, word/reference counts and an evidence tier, and generates search-index.json, stats.json, and sitemap.xml. A --check mode fails CI if the data drifts.
  • Added scripts/serve.mjs dev server and package.json (build / validate / dev).
  • CI now validates data + artefact sync before the link check; data model documented in data/README.md.

Frontend modernization

  • New design layer: refined tokens and brand gradient, elevated cards with hover-lift and topic accent, glassy sticky header, softened chips, polished dark mode, and a gradient reading-progress bar.

New features

  • Insights dashboard (stat tiles + topic/region/decade bar charts; bars filter the library).
  • Bookmarks / saved reading list with a "Saved" filter (localStorage).
  • Reading-time estimates and evidence badges on cards and study pages.
  • Reading progress bar, Share, and Save actions on study pages.
  • "Surprise me" random study, and a new About & Methodology page (about.html).
  • Header/welcome counts now derived from the data rather than hard-coded.

Content

  • Added 4 fully-cited case studies filling the thin Gender & Inclusion and Education topics: Kenya deworming, India SEWA, Morocco Tayssir, Bangladesh female secondary stipend (204 total).
  • Rewrote README and updated CITATION.cff.

Testing

  • Tested locally with a development server
  • Verified search and filter functionality still works
  • Checked responsiveness on mobile viewport
  • All links and citations are valid

Verified end-to-end with a headless browser (index, study, and About pages in light and dark themes): 204 cards render, insights/bookmarks/saved-filter/random work, study pages show correct evidence tiers, reading time, and literature maps. npm run validate passes cleanly.

Checklist

  • I have read the Contributing Guidelines
  • My changes follow the project's coding style
  • I have tested my changes locally
  • I have added citations/sources for any new content

🤖 Generated with Claude Code

https://claude.ai/code/session_012msh1nNMxadJd417S8FjP2


Generated by Claude Code

Backend / tooling
- Add a zero-dependency Node (ESM) build pipeline (scripts/build.mjs):
  validates every study JSON (required fields, unique slug/id, filename↔slug),
  regenerates master-list.json enriched with reading time, word/ref counts,
  and an evidence tier, and generates search-index.json, stats.json, and
  sitemap.xml. `--check` mode fails CI if data drifts.
- Add scripts/serve.mjs dev server and package.json (build/validate/dev).
- CI now validates data + artefact sync before the link check.
- Document the data model in data/README.md.

Frontend modernization
- New "v2" design layer: refined tokens and brand gradient, elevated cards
  with hover lift and topic accent, glassy sticky header, softened chips,
  polished dark mode, and a gradient reading-progress bar.

New features
- Insights dashboard (stat tiles + topic/region/decade bar charts; bars
  filter the library).
- Bookmarks / saved reading list with a "Saved" filter (localStorage).
- Reading-time estimates and evidence badges on cards and study pages.
- Reading progress bar, Share, and Save actions on study pages.
- "Surprise me" random study.
- New About & Methodology page (about.html) with live stats.
- Header/welcome counts are now derived from the data, never hard-coded.

Content
- Add 4 fully-cited case studies filling the thin Gender & Inclusion and
  Education topics: Kenya deworming, India SEWA, Morocco Tayssir, and
  Bangladesh's female secondary stipend (204 studies total).
- Rewrite README and update CITATION.cff to reflect the new pipeline,
  features, and count.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012msh1nNMxadJd417S8FjP2
@Varnasr
Varnasr merged commit 7ea46cc into main Jul 9, 2026
1 of 2 checks passed
@Varnasr
Varnasr deleted the claude/modernize-backend-frontend-content-kns7aa branch July 9, 2026 03:28
Varnasr added a commit that referenced this pull request Jul 9, 2026
## Description

Follow-up bug fix to the modernization in #6. The new data-validation CI
job failed on `main` after the merge because the build was not
deterministic.

## Type of Change

- [x] Bug fix
- [ ] New feature
- [ ] Content addition or correction
- [ ] Documentation update
- [ ] Style or layout change
- [ ] Refactoring (no functional change)

## Related Issue

Closes #

## Changes Made

- `scripts/build.mjs` wrote a calendar date (`generatedAt`) into
`data/stats.json`. On any day after the file was generated, `npm run
validate` (the CI `--check` step) regenerated a different date and
reported it as data drift, failing CI. Removed the timestamp so the
generated output depends only on the study data.
- Dropped the date from the insights-panel note in `js/app.js` that
displayed `generatedAt`.
- Regenerated `data/stats.json`.

## Testing

- [x] Tested locally with a development server
- [x] Verified search and filter functionality still works
- [x] Checked responsiveness on mobile viewport
- [x] All links and citations are valid

`npm run validate` now passes independent of the date; the insights
dashboard renders with no console errors.

## Checklist

- [x] I have read the Contributing Guidelines
- [x] My changes follow the project's coding style
- [x] I have tested my changes locally
- [x] I have added citations/sources for any new content

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_012msh1nNMxadJd417S8FjP2

---
_Generated by [Claude
Code](https://claude.ai/code/session_012msh1nNMxadJd417S8FjP2)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants