Arbor

Professional genealogy module: event-centric, source-centric data model aligned with GEDCOM 7.0 and Gramps. Multi-script names, fond/opis/delo citations, DNA, GPS research workflow, REST API, GEDCOM

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.

Arbor

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


  1. Download the release ZIP or copy the Arbor directory into site/modules/Arbor/.
  2. If installing manually, go to ProcessWire admin > Modules > Refresh.
  3. Install Arbor.
  4. ProcessWire should also install ProcessArbor and ArborApi.
  5. Go to Setup > Arbor.
  6. Create a tree and start adding people.

Permissions


Arbor installs these permissions:

  • arbor-view: view Arbor trees
  • arbor-edit: create and edit trees owned by the current user
  • arbor-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.

More modules by Maxim Semenov

  • Context

    Export ProcessWire site context for AI development (JSON + TOON formats)
  • Mercato

    ProcessWire-native commerce toolkit: products, cart, checkout, orders, payments, discounts, fulfilment, inventory, recovery, reports, and demo storefront.
  • Ichiban (SEO control center)

    Comprehensive SEO module: meta/OG/schema, audit, redirects, revisions, email reports.
  • WireWall

    Advanced traffic firewall with VPN/Proxy/Tor detection, rate limiting, and JS challenge
  • Cookie

    Privacy & cookie consent management: banner, category-based async loading of scripts/embeds, consent log, Google Consent Mode v2, visual widget builder.
  • Ally (a11y)

    Self-hosted accessibility widget powered by Sienna (MIT). Adds font, contrast, language, and navigation tools to any page. No external CDN — the JS bundle is served from your own server.
  • Subscribe

    Newsletter subscription handler with lists, double opt-in, honeypot, rate limiting and unsubscribe link.
  • Squad

    AI integration for ProcessWire. Supports Anthropic, OpenAI, Google, xAI, and OpenRouter.
  • Invite Access

    Restricts site access to visitors with a valid invite code. Designed for staging environments with multiple teams.

All modules by Maxim Semenov

Install and use modules at your own risk. Always have a site and database backup before installing new modules.