Inspiration
Roots began as a personal project: I wanted to understand my own family history without turning fragile memories, archive leads, and half-proven matches into a tidy but unreliable tree. The first version, MyFamilyTree, was private by design. It helped organize family records, interviews, certificates, research notes, contradictions, and open questions.
As the project grew, the bigger problem became clear. Genealogy tools often make it easy to collect names, but harder to understand why a claim is true, uncertain, rejected, or still waiting on evidence. Roots is the public version of what we learned: a local-first, AI-assisted genealogy workspace for people who want to know where they come from without surrendering privacy or accepting unsourced AI guesses.
What it does
Roots helps people build an evidence-first family history project on their own machine. Users can start from a blank tree, sample data, or imported genealogy files, then organize people, relationships, sources, research targets, interview prompts, proof gaps, rejected candidates, and export-ready data.
The core idea is simple: a search hit is not a fact. Roots separates records, claims, citations, confidence, contradictions, and human review. AI workers can help plan research, search sources, summarize findings, and identify missing evidence, but they do not silently rewrite the canonical family tree. Proposed changes move through review with citations and reasoning.
Roots also includes visual ways to explore the story: tree views, family profiles, research boards, timelines, journeys across place and time, and export paths for GEDCOM/GEDCOM X interoperability.
How we built it
We built Roots out of lessons from MyFamilyTree, a private local-first genealogy app created for my real family archive. That prototype established the core architecture: canonical tree data kept separate from generated outputs, a source registry, research targets, evidence records, proof warnings, privacy boundaries, and a continuity system so work could survive many agent sessions.
From there, we extracted the reusable pattern into Roots. The public repo is designed around fictional or privacy-reviewed sample data, not private family records. The app structure emphasizes a clear workflow: start a project, add people, define claims, identify proof gaps, run bounded research workers, review evidence, visualise the result with the Journey viewer and export.
Codex helped build and audit the system: generating scaffolding, reviewing data integrity, writing ADRs, building verification scripts, designing research loops, and turning the private prototype into a public-facing utility.
Challenges we ran into
The hardest challenge was not drawing a family tree. It was preserving trust.
Genealogy is full of tempting false certainty: duplicate online trees, copied indexes, partial dates, name variants, family memory, OCR mistakes, and records that look close but describe the wrong person. We had to design the app so uncertainty stays visible instead of being smoothed away.
Privacy was another major challenge. A private family tree can contain living people, sensitive dates, photos, certificates, correspondence, and stories that should never leak into a public demo. That forced a strict separation between private working data and public-safe examples.
We also had to design around real-world source access. Some records are public APIs, some are paywalled, some require archive requests, and some can only be obtained manually. Roots treats those limits as part of the research process rather than something to bypass.
Accomplishments that we're proud of
We turned a personal family-history workspace into a reusable public tool that other people can adapt for their own research.
We are proud of the evidence model: Roots tracks not just “facts,” but where claims came from, what supports them, what contradicts them, what was searched unsuccessfully, and what still needs human review.
We are also proud of the local-first design. Family history is intimate data. Roots is built so people can work privately, preserve their own sources, and decide what is safe to share.
Finally, we built the project with a real continuity discipline: ADRs, source policies, verification scripts, research logs, export checks, and privacy gates. The app is not just a visualization; it is a working research system.
What we learned
We learned that uncertainty is not a weakness in genealogy software. It is one of the most important things the software can preserve.
We learned that AI is most useful as a research assistant, not an authority. It can search, compare, summarize, extract, and suggest next steps, but humans need to decide what counts as proof, what deserves publication, and what should remain private.
We also learned that family history is more than names and dates. The most meaningful product experience comes from connecting evidence to story: where people lived, what records survived, which questions remain open, and how each generation fits into a larger journey.
What's next for Roots
Next, we want to make Roots easier for anyone to clone, run locally, and start using with their own family project. That means stronger onboarding, better sample data, clearer first-run prompts, and guided workflows for interviews, source collection, and proof-gap review.
We also want to add country-specific source packs, starting with common research lanes like New Zealand, the Netherlands, the UK, Ireland, Australia, and the United States. Each pack should explain useful archives, APIs, paid sources, manual request paths, and what kinds of claims each source can confirm or falsify.
Longer term, Roots should become an open genealogy research engine: local-first by default, evidence-first by design, AI-assisted where useful, and careful about privacy from the ground up.

Log in or sign up for Devpost to join the conversation.