24 Hours of Genealogy: What We Built and What We Found

Seven new people in the database, a visual overhaul of the family charts, source citations with GPS coordinates, three git repos merged, and a 200-year-old mystery about a sea captain who never came home.

I've been building a custom genealogy web application for the Harriman family tree — a live, interactive graph that lets you navigate ancestors, see family clusters, and pull up source citations for every person in the database. Yesterday and today were a long session. Here's what happened.

The Genealogy App Gets a Visual Overhaul

The app already existed, but the charts were cramped and hard to read. I rebuilt two major views from scratch.

The ancestor chart — the one that traces a direct line backward through time — got bigger boxes (190×66px), larger names, and a set of markers that appear automatically based on the data:

  • 🏳️ Country/state flags derived from birth and death places (30+ countries, all US states)
  • ★ Gold highlight for historically notable ancestors (William the Conqueror, Attila the Hun, etc.)
  • 🪶 Native ancestry marker, detected automatically from notes and place fields
  • 🔴 Red reconnect dot when the same person appears in multiple branches (consanguinity detection)
  • ● Alive indicator in blue for living people; ✝ YEAR for confirmed deaths; ? for unknown

The family cluster view got the same treatment, plus a deliberate layout change: mother on the left, father on the right. (The original was reversed. It bothered me.) Sisters are sorted to the right of the sibling group with a pink bottom bar. Lines from the person of interest to their close kin are highlighted in blue. The whole thing is 14px names in 195×70px boxes now — readable without squinting.

I also added a real-time live research feed powered by Server-Sent Events, so when the research agents are actively digging and writing results back to the database, you can watch new discoveries appear in the sidebar as they happen.

Rich Source Citations

Every person in the database can now have structured source citations, and the app renders them as styled cards in the detail panel. FindAGrave sources get a green card with the memorial ID and a direct link. Physical records (gravestones, ledgers) get an amber warning: "Physical record — not fully digitized, requires in-person verification." Family documents show who holds the record.

For cemeteries, there's a location block with GPS coordinates and a Google Maps directions button. The coordinates are hardcoded for known cemeteries: Laurel Hill in Saco (43.4940°N, 70.4289°W), Arundel Cemetery in Kennebunkport (43.3637°N, 70.4781°W), and others as they come up. Click "Get Directions" and it opens straight in Maps.

Seven New People Added to the Database

This is the genealogy work. The database now has 512 people. Most of the new additions are from the Plummer line — William Alfred Plummer Jr. is my direct ancestor, and we've been working backward.

The new records:

  • William Alfred Plummer Sr. (1825–1896) — married Emily Jane Billings November 1848, Saco, Maine. Buried Laurel Hill Cemetery. FindAGrave #116164132.
  • Emily Jane Billings (1831–1889) — her parentage is still unknown. Buried with William at Laurel Hill. FindAGrave #157337392.
  • Charles L. Plummer — eldest child, born April 1854, settled in Kennebunkport (then called Arundel). Buried Arundel Cemetery.
  • Frank E. Plummer (1861–1935) — married Abbie S. Kimball 1884. Buried Laurel Hill.
  • Abbie S. Kimball Plummer (October 10, 1858–1936) — Frank's wife. More on her below.
  • Susan I. Plummer (1867–1936) — likely youngest child. Not yet on FindAGrave; needs Maine vital records verification.
  • Clara Anna Plummer Webber (1899–1962) — Frank and Abbie's daughter.

Two new family records were created linking all of these together: F_WAP_EMILY (William Sr. + Emily, four children) and F_FRANK_ABBIE (Frank + Abbie, one child).

The Abbie Kimball Data Puzzle

This one's a good example of why you never trust a single source.

My cousin Brenda looked at the gravestone at Laurel Hill and read the birth year as 1850. That's a completely reasonable read — old stones, weathered carving. But FindAGrave has Abbie born on October 10, 1858. And the stone itself, looked at again more carefully, reads 1859.

So: 1850 (Brenda's original read), 1858 (vital records via FindAGrave), 1859 (what the stonemason actually carved). Three numbers. The death year — 1936 — matches everywhere: the stone, FindAGrave, and a family document Brenda holds. That one's solid.

The database now shows all three data points, with a note explaining the discrepancy. The citation cards list both FindAGrave and Brenda's family record as separate sources.

Branching Out: The Jane Billings Mystery

Emily Jane Billings married William Plummer in 1848, but who were her parents? There's a family story — the kind that survives in fragments — about a woman named "Jane Billings" from the Kennebunk area who had a child by a sea captain. He shipped out. He never came back.

If that child was Emily, born 1831, then the conception window is roughly March–December 1830. Kennebunk was an active coasting port at the time — schooners running between Boston and Portland, shipyards on the Kennebunk River, captains coming and going with the tide.

The research trail so far:

  • Seth Bryant's "Record of Vessels, Kennebunk District" — a handwritten ledger held at the Kennebunkport Historical Society, listing ship names, owners, and masters. This is the primary target.
  • National Archives RG 036 — U.S. Customs Service records for the Kennebunk district, including vessel entrances, clearances, and cargo manifests from 1820–1832.
  • NEHGR Vol. 96, p. 177 — "The Saco, Maine, Descendants of Nathaniel Billings of Concord, Massachusetts" — the key genealogical article mapping the Saco-area Billings family tree.
  • Joseph Billings + Lydia Hobson (married 1788, Buxton, York County, Maine) — confirmed as a strong candidate for Emily's grandparents based on geography and timing.

The plan: identify captains in port during the 1830 window from the ship records, then cross-reference surnames against DNA matches among Emily's descendants. It's a long shot. It's also exactly the kind of puzzle that makes this worth doing.

Git Branches Merged, Three Repos Updated

The code side of this project spans three repositories: the genealogy web app, a Python-based historical research agent (gene_agent), and a TypeScript social search agent (gene_social_search). All three had open feature branches or uncommitted work from the session.

By end of day, everything is merged back to main/master and pushed to GitHub:

  • feature/user-contributionsmaster in the genealogy web app (contributions system, live feed, chart upgrades, citation rendering)
  • Agent coordination module committed to gene_agent (src/gene_agent/coordination/task_queue.py)
  • MongoDB task queue schemas and remote merge committed to gene_social_search

Mailcow Troubleshooting (Still In Progress)

Unrelated to genealogy but worth noting: the webmail interface at mail.86hate.com is returning HTTP 500. SMTP, IMAP, and SOGo (the calendar/contacts interface) are all fine — email is flowing in and out, clients can connect. The issue is specifically the PHP-based admin/webmail UI.

Root cause identified: the PHP workers are connecting to MySQL via Unix socket (/var/run/mysqld/mysqld.sock), but the socket fails in the FastCGI context even though it works fine from the CLI and from the container startup script. A patch to fall back to TCP (host=mysql) is in progress. It's a weird one.

What's Next

  • Verify Susan I. Plummer (1867–1936) via Maine vital records or census — she's in the database but not yet confirmed as Emily's daughter
  • Find Emily Jane Billings's parents — 1850 census, birth records, NEHGR article
  • Research the captain — Kennebunk ship records, 1830 customs house
  • Fix the mailcow webmail 500
  • A photo of William Alfred Plummer Jr. is apparently on its way from Brenda — when it arrives, it'll get attached to his record in the database

The genealogy app is live at genealogy.86hate.com. It's a private family tool for now, but if you're related to any of the above and want access, reach out.

Read more