Most of my ideas start as "that would be neat." This one did too.
On Friday the 12th of June I messaged my friend Tom during my lunch break and asked whether a family-tree tool for our fictional worlds sounded like a cool idea. He said "Yes, it would be cool." That was the founding conversation, in full. About thirty hours later there was a public beta online.
I want to tell you how that actually went, because the sequence was flatter and stranger than the version where someone hits a problem and builds the solution.
Shortly before, I'd been trying to build family trees inside Obsidian with Excalidraw, because I wanted AI automation somewhere in that loop. Nothing was on fire about it.
It failed on every axis at once. I couldn't get the things I wanted into it. What I could get in looked bad. And none of it was usable data afterwards — it was a picture of a family tree, not a family tree. Any one of those problems I'd have worked around. All three together meant I was using the wrong surface.
That's the pattern I've used for most of my worldbuilding tooling since: build a surface where the AI can work on the same thing I'm working on, instead of the two of us operating on separate versions of the world. I didn't have any of that worked out when I messaged Tom. It's just where things went once I started building.
The part that makes Ahnenwerk different from every other family-tree tool is that it doesn't store a tree at all. It stores what happened — births, marriages, adoptions, deaths, and a long list of stranger things — and derives the visible tree from that history.
I'd like to claim that was the plan. It wasn't. It fell out of the requirement. Once you're working out how a human and an AI are both supposed to author the same genealogy, a drawing stops being an option and a list of facts about people stops being enough. What's left is the history itself, and everything else is a view of it.
That choice pays for itself immediately, because fiction does things to people that ancestry software has no word for. Look at the Egyptian gods, which ship as one of the example trees. Osiris is murdered and dismembered by Set, then fathers Horus anyway. Amun and Ra merge into Amun-Ra. Osiris and the Apis bull merge into Serapis. In a drawing you redraw the whole thing by hand every time and hope you don't contradict yourself. In normal genealogy software you don't model it at all, because two people becoming one person isn't a supported life event.
If the tree is a history, none of that is special. It's just another event with a date on it.
The first working version came out of Fable 5's initial public release, using the design system I already had. It was already event-sourced. It already handled the strange cases. It looked decent. I was very happy with it.
That same evening, at 23:21 my time, the US government issued an export control directive and access to Fable 5 was switched off worldwide — for everyone, including Anthropic's own staff. (Anthropic's statement.)
I didn't notice. I went to bed thinking everything was fine and found out the next morning.
So the model that had built the thing was gone, and I moved to a different one and kept going. It was a detour. I'm telling you because it's the sort of thing that gets left out of build stories, and because "and then geopolitics happened" is a strange sentence to be able to write about a weekend project.
About thirty hours after that lunch-break message, there was a public beta on a Netlify subdomain. No launch strategy behind it. Putting it on the internet was just the easiest way to show Tom. I shared it with a worldbuilding community for testing, kept using it myself, and fixed the rough edges I found by actually trying to build trees with it.
A week later it launched properly on its own domain, with a guide, a custom GPT, and an agent skill for building trees with AI.
Why make it public at all? It was a cool tool, I liked it, and I didn't want to keep it to myself. That's the whole reason. I could retrofit a market thesis onto it, but it would be fiction, and I already have somewhere to put that. There was never a moment where it turned from a thing I'd made into a thing I rely on, either; it was useful from the first tree I put in it.
Forty-six days after launch, the first feature request arrived from someone who isn't me.
They asked for two things. A dated name change — their example was a woman taking her husband's name at marriage, recorded as an event rather than by overwriting the old one. And a way to sever a parent–child relationship without erasing that it had existed, which they suggested could look on the tree much like a divorce does.
Both are the same observation: the tool already treated relationships as things that start and end, but still treated names and parentage as permanent facts. They found the two places that asymmetry shows, in a world I know nothing about, and told me about it for free.
Someone had gone past using the thing and cared enough to want more from it. I'm still happy thinking about it.
Ahnenwerk is free, needs no account, and runs entirely in your browser. Open the Egyptian gods tree — the fusions are near the bottom.