← Tom KeefePROJECT 09

Family Tree

A place to keep my family’s history together, with room for everyone to contribute.

Why I built it

I wanted our family history to live somewhere the family could maintain together. Names, dates, and relationships are easier to get right when relatives can add what they know, and a correction should not erase the record of what came before.

What it does

Anyone can sign up to start a private family tree and invite relatives to join it. The tree connects people and relationships, while individual records hold the details behind them. Changes keep a history, so the family can see what was edited and revisit a correction. Dates can stay approximate when that is all we know, and a GEDCOM export provides a copy that can be used outside the app.

What I built

A Next.js app with separate family workspaces, invitations, and a Postgres database. Family access is checked in the app and scoped again at the database layer. A design system from Claude Design gives the tree, person records, and forms a consistent visual style. The data model keeps relationships, uncertain dates, and recorded changes explicit. That lets the tree grow as the family learns more, without forcing every detail to be certain from the start.

ROLEBuilt and operated
STACKNext.js · Drizzle · Postgres
DESIGN SYSTEMClaude Design
SHARINGInvite your family
EXPORTGEDCOM
STATUSSign Up

A shared picture of the family.

People and relationships, with the details kept close.

01 / THE FAMILY TREE

See how everyone connects.

Move through generations, follow relationships, and select a person to explore their record.

The Keefe family tree showing relatives across generations, relationship lines, a selected person, and zoom controls.
02 / A PERSON’S RECORD

The details behind each name.

Names, life details, and tabs for personality, stories, and contacts give each person their own record.

Family Tree person record with Info, Personality, Stories, and Contacts tabs, names and life details, and options to add audio or an obituary link.
03 / FAMILY STORIES

Save the stories worth passing on.

Keep life events with dates, source details, and attached recordings, so memories have a place alongside the family tree.

Family Tree Stories tab showing two life events with approximate dates, source fields, attached recording notes, and edit links.
← All projectsNEXT — Code Coach

Let's talk.

Most of what's on this page started as a problem I was annoyed about. Happy to talk through any of it, or yours.