← Back to Home

How this site was built

An AI-human collaboration journey

This GitHub Pages site was created in multiple intensive sessions on December 2-3, 2025, through collaboration between a human curator at the KB (National Library of the Netherlands) and Claude Opus 4.5, an AI assistant by Anthropic.

Table of contents


Timeline overview

Phase Date Time Duration Commits
Repository reorganization Dec 2 17:02 - 19:52 2h 50m 3
Screenshot galleries Dec 2 (session 1) 2h 06m 5
GitHub Pages setup Dec 2 (session 1) 40m 4
UI refinements Dec 2 (session 1) 46m 6
Bug fixes & polish Dec 2 (session 1) 48m 5
KB huisstijl & compliance Dec 3 (session 2) ~2h 6
Code organization & footer redesign Dec 3 (session 2) ~1h 4
mmdc.nl catalog WBM submissions Apr 2–11, 2026 (7 active days) ~6 calendar days of wall-clock submission time
Total     ~10 hours (+ catalog run) 33 commits

Development phases

Phase 1: Repository reorganization (Dec 2, session 1)

Goal: Transform a flat, disorganized folder structure into a clean, navigable repository.

Actions:

Commits:

  1. 70d72a3 - Reorganize repository structure
  2. a0c030f - Update READMEs with internal links, image galleries, and accurate URL counts
  3. 1cf205e - Remove .claude and .prompt-page from gitignore and update session log

Phase 2: Screenshot galleries (Dec 2, session 1)

Goal: Add visual screenshots from the Wayback Machine to showcase each archived site.

Actions:

Commits:

  1. acbaea3 - Add Wayback Machine screenshot galleries to all archived site READMEs
  2. 4537732 - Fix Wayback Machine screenshots - remove erroneous captures
  3. 533e61b - Add Wayback Machine screenshots with trimmed donation banners
  4. d77396a - Replace screenshots with comprehensive deep-level captures
  5. 7aebfca - Update session log with final screenshot improvements

Phase 3: GitHub Pages setup (Dec 2, session 1)

Goal: Create a browsable website from the repository documentation.

Actions:

Commits:

  1. 4e39f33 - Add GitHub Pages site with navigation and breadcrumbs
  2. 80ff275 - Add screenshot gallery to kb.nl overview page
  3. 1f5ffec - Fix GitHub Pages layout and add index.md files
  4. 55e3bfe - Fix homepage text and sort table by date descending

Phase 4: UI refinements (Dec 2, session 1)

Goal: Polish the user interface and fix visual issues.

Actions:

Commits:

  1. 6e20fbc - Add screenshots to archived site cards on homepage
  2. ced0b2b - Fix table formatting, add lightbox for gallery images
  3. 1c7cc4e - Reorder Browse Archived Sites tiles by date (descending)
  4. 47f2d4e - Fix dead links: remove images/ directory links
  5. 94eddc9 - Fix pipe character causing table rendering issue
  6. 5856154 - Add missing Literatuurplein screenshots

Phase 5: Bug fixes & polish (Dec 2, session 1)

Goal: Fix remaining issues and improve content quality.

Actions:

Commits:

  1. 8f3256a - Fix GidsVoorNederland screenshots and add lightbox navigation
  2. a599157 - Extend lightbox to all content images
  3. 8c4ce2b - Fix LezenVoorDeLijst error screenshot
  4. 7294044 - Fix LezenVoorDeLijst screenshot with blog post page
  5. 6f14a67 - Update gallery captions and improve documentation

Phase 6: KB huisstijl & compliance (Dec 3, session 2)

Goal: Apply official KB brand colors and add comprehensive compliance documentation.

Actions:

Commits: 24-29. Various commits for KB huisstijl colors, compliance page, accessibility features


Goal: Improve code maintainability and refine footer design.

Actions:

Commits:

  1. e49f31f - Split CSS and JS into separate files
  2. 7536c28 - Fix footer styling: all white text, no gold circles, white logo 32-33. Documentation updates

April 2026: mmdc.nl catalog pages submitted to WBM

After the initial December 2025 WBM submissions covered the 317 static HTML pages, 112 PDFs and 38 static-asset images of mmdc.nl, the remaining 11,738 JavaScript-rendered catalog pages still could not be captured by the Wayback Machine directly — the live URLs returned an empty <div id="recordDetail"> shell. Once each record had been rendered into a self-contained static HTML file (see the catalog rendering write-up), the pre-rendered files were uploaded to a temporary public path https://mmdc.nl/wbm/site/search/catalog-page-{N}.html and submitted to the WBM’s Save Page Now API in a sequential run.

Submission timeline (from WBM_Timestamp_submission in the Excel)

All 11,738 catalog-pages rows in mmdc-urls-unified_15042026.xlsx carry a WBM submission timestamp. Aggregated by day:

Date (UTC) Catalog pages submitted First submission Last submission
2026-04-02 361 14:36:53 23:59:41
2026-04-03 2,911 00:00:04 23:59:52
2026-04-04 2,921 00:00:23 23:59:26
2026-04-05 2,453 00:00:02 23:03:37
2026-04-06 1,083 11:09:14 23:59:47
2026-04-07 1,929 00:00:22 13:50:53
2026-04-11 80 (retry) 17:10:07 17:44:21
Total 11,738 2026-04-02 14:36:53 2026-04-11 17:44:21

What the timestamps tell us

The matching WBM_Timestamp_capture column in the same sheet (which holds the latest snapshot the CDX API reports for each URL) shows that in every case the Wayback Machine subsequently indexed the submission successfully — see the catalog-page-2 / 500 / 5000 examples on the mmdc.nl page.

Scripts that drove the run: archived-sites/mmdc.nl/_archiving-artifacts/scripts/SaveToWBM_mmdc_catalog.py (initial submission), fetch_actual_wbm_timestamps.py (CDX verification), and scripts/wbm-archiver/SaveToWBM_mmdc_rerun.py (April 11 retry).


Major achievement: AI vision recognition

The breakthrough

One of the most significant achievements of this project was using AI multimodal vision to automatically extract meaningful captions from screenshot images.

The problem

Gallery captions were generic and meaningless:

The solution

Claude Opus 4.5 used its native vision capabilities to:

  1. Read each PNG screenshot directly (not just filenames)
  2. Extract page titles from Wayback Machine banners
  3. Identify content - author names, article titles, section headers
  4. Generate meaningful captions in Dutch and Frisian

Results

Annotated LezenVoorDeLijst screenshot: the generic gallery caption "Pagina 104937" at the bottom of the image is circled in red, and the actual page title "Training verplaatst, nog plaatsen vrij" at the top is also circled — showing what the vision model read to replace the meaningless caption. Example: the AI read the page title “Training verplaatst” directly from the screenshot to replace the generic “Pagina 104937” caption — the first row in the table below.

Site Old caption New caption (from vision)
LezenVoorDeLijst Pagina 104937 Training verplaatst
LezenVoorDeLijst Pagina 154224 De man die alles achterliet
Leesplein Boek 277 Annemarie Bon
Leesplein Boek 287 Nanda Roep
Leesplein Boek 342 Ron Langenus
Literatuurplein Prijzen Overzicht Literaire prijzen
Literatuurplein Canon Overzicht Canon van de Nederlandse geschiedenis

Why this matters

This demonstrates AI can:


KB huisstijl implementation

On December 3, 2025, the site design was updated to align with the official KB (Koninklijke Bibliotheek) house style guidelines. This ensures visual consistency with other KB digital properties.

Key changes

📄 Full KB huisstijl documentation →


Compliance & accessibility

As a final phase, comprehensive compliance testing and improvements were implemented to ensure the site meets European standards.

GDPR/AVG compliance

Aspect Status
Cookies None used
Analytics No tracking
Personal data None collected
Third-party services None embedded

WCAG 2.1 Level AA

Feature Implementation
Skip link “Skip to main content” for screen readers
Keyboard navigation Full keyboard support throughout
Focus indicators 3px blue outline on all focusable elements
Color contrast Minimum 4.5:1 ratio (WCAG AA)
ARIA labels All interactive elements labeled
Focus trapping Modal dialogs trap focus correctly
Reduced motion Respects prefers-reduced-motion

Responsive design

Breakpoint Target
> 768px Desktop
601-768px Tablet
401-600px Mobile
≤ 400px Small mobile

Additional features:

SEO optimization

Feature Implementation
Meta tags Title, description, keywords, canonical
Open Graph Full social media sharing support
Twitter cards Twitter sharing optimization
Schema.org JSON-LD structured data (Website, Breadcrumb list, Organization)

Security

📄 Full Accessibility, Privacy & Licensing Documentation →


Why frequent commits matter

One unexpected benefit of working with Claude Code is how it transforms version control from a chore into a natural part of the workflow.

Before AI assistance

With AI assistance

Benefits of frequent commits

Benefit Description
Detailed history Every change is documented with context
Time tracking Commit timestamps enable accurate time expenditure analysis
Easy rollback Small commits make it simple to undo specific changes
Better collaboration Clear history helps others understand the evolution
Learning record The commit log becomes a tutorial of the development process
Accountability Each decision is recorded with its rationale

This project as example

This project has 40+ commits over two sessions. Each commit represents a logical unit of work:

The result is a complete, searchable history that serves as both documentation and a learning resource.


Full session log

The complete session logs with all prompts, actions, and technical details are available at:

📄 Session 1 (Dec 2, 2025) - Repository reorganization, screenshots, GitHub Pages setup

📄 Session 2 (Dec 3, 2025) - KB huisstijl, compliance, code organization, documentation refinements


Tools used


License

The source code and text content of this project are dedicated to the public domain under CC0 1.0. For image credits and copyright information, see compliance.