Each family runs its own copy on its own Cloudflare account. Access is by invitation only, and living people stay hidden from anyone without the right.
Shared
Relatives and researchers edit the same tree, each with their own role. Every change is logged and can be undone, and a clashing save is refused rather than overwriting someone else's.
Yours to take
GEDCOM in with a preview, GEDCOM out in 5.5.1 or 7.0, including structures Epoch does not show yet. No platform holds or mines the data.
No server
Built on Cloudflare Workers, D1, R2, Queues and Workflows. There is no machine to patch or keep running.
Families as they were, not as a form expects.
More than one family per child, partnerships that end and begin again, and dates kept
exactly as the record gives them. Choose a kind of link to trace it.
Highlight one kind of link:
Ended partnership
A sample family, invented for illustration.
A tree that handles real families
A child can have more than one parental family, and every link says what kind it is.
Biological, adoptive, foster, guardian and unknown parentage
Partnerships with separation, divorce, annulment, death and remarriage
Step relationships worked out from a parent’s partnerships
Ways to see the family
A focus-centred family view kept in the address, so Back and shared links restore it.
Pedigree, descendants, fan and hourglass charts, each with a text outline
A relationship finder that shows every route between two people
Ranked search that says why each person matched
Records and research
Pages for people, partnerships, places and sources, built around the evidence.
Sources, repositories and citations, showing what each source supports
Shared notes, research tasks and a data-quality report
Media attached to people, kept private in your own storage
Editing safely together
Several people can work on one tree without stepping on each other.
Owner, manager, editor, contributor and viewer roles per tree
Every change shows an Undo, and the change log keeps the rest
Two saves to the same record at once: the second is refused, not merged blind
GEDCOM in and out
Bring a tree from other software and take it with you again.
Validation and a preview before anything is written
Duplicate families in a messy file offered for merging
Structures Epoch does not show yet are kept and written back out
Four more ways to see the whole family
Beside the flat family view, four 3D views. Each can show the whole tree and trace several
lines at once.
1 of 4Rings
An overview to turn and explore: one ring for each generation, the youngest at the top and the oldest at the bottom, with lines up to the children.
2 of 4Ball
A glass ball with the family inside it. Height is the calendar, the oldest at the top; the wider a generation, the nearer its people sit to the glass.
3 of 4Ribbons
Each person is a ribbon of descent. A couple’s ribbons meet at a glowing knot, and their children’s ribbons branch out from it like a river delta.
4 of 4Orrery
A star cluster. Partners circle each other as a pair of stars, and their children circle the pair.
Epoch is one SvelteKit application, in a single repository on GitHub. Clone it, run it
on your own machine with a sample tree, then decide whether to install it.
git clone https://github.com/tdack/epoch.gitcd epochnpm installcp .dev.vars.example .dev.varsnpm run db:migrate:localnpm run dev
The app opens at localhost:5173, signed in as a local developer. With it
running, npm run seed loads a fictional sample tree.
Install it on your own Cloudflare account
One command creates everything Epoch needs, deploys it and checks the result. It signs in
through your browser, so there is no API token to make.
1
Have what it needs
Node 24, a Cloudflare account on a paid Workers plan, a Zero Trust organisation with
an identity provider, and a workers.dev subdomain or a domain on Cloudflare.
2
See the plan
Read-only: it shows what would be created or changed, and touches nothing.
./setup --plan
3
Run setup
Creates the database, storage bucket, queue, Worker, address and sign-in page,
deploys, checks the result and records you as the install owner. It asks only what it
cannot find out itself.
./setup
4
Invite your family
Import a GEDCOM file or start a tree, then invite relatives from the tree's Members
page, each with their own role.
Looking after an install
./setup doctor
Reports anything that has drifted from what setup created
./setup allow <email>
Lets someone through the sign-in page setup created
npm run deploy
Builds, applies any new migrations and deploys a new version
./setup teardown
Deletes only what this install created
Setup never creates your account, plan, Zero Trust organisation or domain, and never edits
an Access policy it did not create. Every flag is in ./setup --help and the README.
Questions
What does it cost to run?
Epoch runs on your own Cloudflare account, which needs a paid Workers plan. Cloudflare bills you for that directly. There is no Epoch subscription.
Who can see our tree?
Only the people you let in. Cloudflare Access handles sign-in, and Epoch then admits only the install owner, members of a tree and people with an open invitation. Anyone else who signs in is told to ask the owner for an invitation, and nothing is stored about them.
Inside a tree, each person has a role, and living people are hidden from anyone without the right to see them. Tree managers set that per tree.
What is in the demo?
A tree you can browse without signing in. Editing, invitations and GEDCOM import need an install of your own.
Can I bring my tree from other software?
Yes, as a GEDCOM file, which most family-tree programs and sites can export. Epoch validates the file and shows a preview before anything is written, and offers to merge duplicate families it finds.
Anything in the file that Epoch does not show yet is kept, and written back out when you export.
What happens when two of us edit the same person?
The first save wins and the second is refused with an explanation, so nobody’s work is overwritten silently. Every change also shows an Undo, which reverts your own latest change and says why if someone has changed the same records since.
Do I need my own domain?
No. Setup can give you a workers.dev address, or use one custom domain that is already active on your Cloudflare account.
Can I leave, or take the data with me?
Export the whole tree as GEDCOM 5.5.1 or 7.0 at any time. If you stop using Epoch, ./setup teardown deletes only what setup created.
Does it work on a phone?
Record pages, lists and the family view have phone layouts. The 3D views are best on a larger screen.
How is it related to webtrees?
Epoch is inspired by the capabilities of webtrees, not its screens or code. It is a separate application, written for Cloudflare, and exchanges data with other software through GEDCOM.
Is Epoch ready for my family’s records?
Epoch is young and under active development. Known gaps and planned work, such as printable reports, timelines and maps, are listed in the backlog. Export your tree as GEDCOM regularly, whatever software you use.