This page was created using Claude Code, working from a folder of PDFs, TeX source files, and notes, plus a few pointers to the mathematician's own department web page. None of the steps below required writing code by hand — they were all done by describing what was wanted, in plain language, over a series of conversational turns. Here, roughly, is the order things happened in.
Start from a folder of papers
Collect whatever you already have — PDFs, scanned lecture notes, TeX sources, drafts — into a single folder. It's fine if the filenames are a mess (course codes, dates, cryptic abbreviations, duplicate copies with slightly different names). That's the raw material Claude works from.
Ask for a consistent naming convention
Claude opened each file, read the title page and abstract to identify what it actually was (not just its filename), and proposed a naming scheme — in this case, a prefix for papers versus lecture notes, followed by a stable title, then a year, then coauthors. Files that turned out to be earlier drafts or duplicate copies of the same work were tagged rather than discarded, and kept next to their final versions.
This step benefits from a bit of back-and-forth: the first pass may put the year in the wrong place for good alphabetical grouping, or miss that two differently-named files are the same paper. It's worth iterating on the convention before there are hundreds of files to rename twice.
Fill in the gaps from the web
Most researchers have a departmental page listing publications, and often an old page of PDF preprints. Pointing Claude at those pages let it find papers that weren't in the folder yet, download the ones that were missing, and apply the same naming convention to them.
Build a searchable bibliography page
With the files organized, Claude generated a single self-contained HTML page: a search box, sections for papers and lecture notes, and for each entry a title, year, and author list, plus buttons linking to whichever local file versions exist. For published papers, it looked up the DOI (checking candidate matches against author names and journal titles rather than trusting the first hit) and added a link to the publisher's page, along with a button that pops up a ready-to-copy BibTeX citation.
Correct it as you go
Automated matching gets some things wrong or leaves gaps — a DOI lookup can land on the wrong paper with a similar title, an old departmental page can have a typo, a paper can be missing entirely. Rather than treating the bibliography as a one-time export, corrections were supplied conversationally as they were noticed ("the DOI for X is actually Y", "add this paper I found", "label this one as an unpublished draft") and Claude edited the live page directly.
Add a memorial & about page
A second page held the more personal material: a photograph, a short note about who the site is for, links to obituaries, tributes, and other biographical resources, and a way for people to flag anything missing from the archive.
Publish it
The finished folder — the HTML pages, the paper archive, the images — was committed to a Git repository and pushed to GitHub Pages, which serves a <name>.github.io repository as a public website at no cost. Since publishing is a one-way, visible action, it's worth reviewing the page locally first and only pushing once it looks right.
A few things that helped
- Deciding on the file-naming convention early, since every paper added afterward has to fit it.
- Asking Claude to verify anything it found automatically (a DOI match, a name, a date) against a second source before treating it as fact, rather than accepting the first plausible-looking result.
- Treating the bibliography as a living document: small, specific corrections over time produced a more accurate page than trying to get every citation perfect on the first pass.
- Keeping a consistent visual style across pages by asking for new pages to match the existing one, rather than starting each page's design from scratch.
- Reviewing changes before they were published, especially anything that would be pushed publicly or sent externally.