An interactive tracker for the New Hampshire 48 four-thousand-footers, styled after the classic minimalist poster. Each peak is a triangle; log a climb and its triangle fills with the color you chose. Click any peak to see the ascents — date, note, Strava link, and photos.
Live site: https://nniiicc.github.io/nh4k/
There is no database and no login. GitHub Issues are the data store.
- You log a climb by opening an issue from the Log a summit form.
- A GitHub Action (
.github/workflows/build-and-deploy.yml) runs on every issue event. - It parses every open
summit-labeled issue intodata/summits.jsonand redeploys the site to GitHub Pages. - The page reads
data/summits.jsonand fills in the poster.
Issue form ──▶ GitHub Action ──▶ data/summits.json ──▶ GitHub Pages
(you) (build_summits.py) (generated) (the poster)
Open Issues → New issue → Log a summit, or go straight to the form. Pick the peak, set the date, choose a fill color, and optionally add a Strava link, a note, and photos (drag image files into the Photos box). Submit — the poster updates in a minute or two.
- Traverses: select more than one peak in the Peak(s) dropdown and the whole hike — date, color, Strava link, note, and photos — is applied to every peak you tagged. Each peak's detail card lists the others from that day ("Traverse · also …").
- Repeat ascents: just log the peak again in a new issue. It shows every ascent; the triangle
uses the color of your most recent one, with a small
2×badge. - Editing / removing: edit the issue to change details, or close/delete it to remove that ascent. Every change rebuilds the site.
- Push this repo to
github.com/nniiicc/nh4kand make it public (required for free Pages and for embedded issue-attachment photos to load). - Run the workflow once: Actions → Build and deploy → Run workflow (or just file your first
summit issue). This creates the
gh-pagesbranch with the built site. - Settings → Pages → Build and deployment → Source: Deploy from a branch → Branch:
gh-pages/(root)→ Save. Your site publishes to https://nniiicc.github.io/nh4k/.
The workflow publishes to the gh-pages branch (like paper-feed-nmw) rather than using Pages
"artifacts," so re-running a build is always safe.
# Serve the site
python3 -m http.server 8000 # then open http://localhost:8000
# Rebuild summit data from the live repo's issues
GITHUB_REPOSITORY=nniiicc/nh4k python3 scripts/build_summits.py
# Or test the parser against sample issues (no network)
python3 scripts/build_summits.py --sample scripts/sample_issues.json- Colors: edit
data/palette.json(name → hex). Keep the names in sync with theFill colordropdown in.github/ISSUE_TEMPLATE/log-summit.yml. - Peaks / layout:
data/peaks.jsonis the source of truth for the 48 peaks and their display order (elevation, descending). The issue-form dropdown lists the same names.
| Path | Purpose |
|---|---|
index.html, assets/ |
The interactive poster (static, vanilla JS). |
data/peaks.json |
The 48 peaks + elevations + order. |
data/palette.json |
Named fill colors. |
data/summits.json |
Generated from issues by CI. |
.github/ISSUE_TEMPLATE/log-summit.yml |
The climb-logging form. |
scripts/build_summits.py |
Issue → JSON parser. |
.github/workflows/build-and-deploy.yml |
Build + deploy on issue events. |