Arbor is a ProcessWire genealogy module for building source-based family trees.
It combines people, families, places, sources, documents, photos, DNA notes,
research questions, search logs, tasks, proof conclusions, and GEDCOM import/export
inside the ProcessWire admin.

Status
Beta. Arbor is usable in a test copy, but should not be installed on an important
production site without a full database and file backup first.
Repository: github.com/mxmsmnv/Arbor
Author: Maxim Semenov
Website: smnv.org
Email: maxim@smnv.org
If this project helps your work, consider supporting future development: GitHub Sponsors or smnv.org/sponsor.
Requirements
- ProcessWire 3.0.200 or newer
- PHP 8.1 or newer
- MySQL/MariaDB, SQLite, or PostgreSQL through ProcessWire's database layer
Modules
Arbor installs the schema, models, configuration, permissions, and shared services.ProcessArbor provides the admin UI under Setup > Arbor.ArborApi provides optional REST-style endpoints for integrations.
Features
- Multiple family trees with owner/public settings
- Person profiles with names, events, notes, sources, photos, and relationships
- Family/union management with partners, parents, children, and relationship type
- Interactive tree viewer with main person, selected-person panel, agenda, and legend
- Places, repositories/archives, sources, citations, documents, and document leads
- Research workflow: questions, tasks, search log, proof conclusions, and next actions
- DNA kits, matches, and segments
- GEDCOM 5.5.1 and GEDCOM 7 export
- GEDCOM import foundation
- Optional AI helper integration through AiWire-compatible providers
Installation
- Download the release ZIP or copy the
Arbor directory into site/modules/Arbor/. - If installing manually, go to ProcessWire admin > Modules > Refresh.
- Install
Arbor. - ProcessWire should also install
ProcessArbor and ArborApi. - Go to Setup > Arbor.
- Create a tree and start adding people.
Permissions
Arbor installs these permissions:
arbor-view: view Arbor treesarbor-edit: create and edit trees owned by the current userarbor-admin: administer all Arbor trees and delete trees
Public trees can be viewed without ownership checks. Editing always requires a
logged-in user with the correct Arbor permission.
PocketWire
Arbor's PocketWire opt-in is intentionally status-only. The request actor must
be the current ProcessWire user and a superuser or logged-in user with
arbor-view. PocketWire never receives tree names or counts, people, families,
places, sources, documents, photos, DNA or research records—including data from
trees marked public—and exposes no write action. Genealogy browsing remains in
Arbor's existing permission- and living-person-aware interfaces.
Data And Files
Arbor creates database tables prefixed with arbor_.
Uploaded files are stored under:
/site/assets/files/arbor/
Uninstalling the module removes Arbor database tables. Before uninstalling, make
sure you have exported or backed up any family data you want to keep.
Publication Notes
Before listing Arbor as a stable ProcessWire module, test:
- fresh install on an empty ProcessWire site
- upgrade from an older Arbor schema
- uninstall on a disposable copy
- CRUD flows for trees, people, families, sources, documents, photos, DNA, and research
- permissions with owner, editor, admin, and anonymous users
- mobile and narrow admin layouts
License
MIT. See LICENSE.