PHPackages                             fisharebest/webtrees - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fisharebest/webtrees

ActiveProject[Utility &amp; Helpers](/categories/utility)

fisharebest/webtrees
====================

webtrees online genealogy

2.2.6(3mo ago)81026.1k353[327 issues](https://github.com/fisharebest/webtrees/issues)[43 PRs](https://github.com/fisharebest/webtrees/pulls)8GPL-3.0-or-laterPHPPHP 8.3 - 8.6CI passing

Since May 2Pushed 1w ago23 watchersCompare

[ Source](https://github.com/fisharebest/webtrees)[ Packagist](https://packagist.org/packages/fisharebest/webtrees)[ RSS](/packages/fisharebest-webtrees/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (79)Versions (110)Used By (8)Security (1)

[![Latest version](https://camo.githubusercontent.com/bd722905025db4f6871d47e7dce5e00f3eaaf78f888134364088776885f60907/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f66697368617265626573742f77656274726565733f736f72743d73656d766572)](https://camo.githubusercontent.com/bd722905025db4f6871d47e7dce5e00f3eaaf78f888134364088776885f60907/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f66697368617265626573742f77656274726565733f736f72743d73656d766572)[![Licence](https://camo.githubusercontent.com/f49f24d8d066fd6af5eb9a63d4e29cf01efb89ffe4fb435e69f523c64a31aa80/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f66697368617265626573742f7765627472656573)](https://camo.githubusercontent.com/f49f24d8d066fd6af5eb9a63d4e29cf01efb89ffe4fb435e69f523c64a31aa80/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f66697368617265626573742f7765627472656573)[![Translation status](translate.webtrees.net/widget/webtrees/svg-badge.svg)](https://translate.webtrees.net/projects/webtrees/)

webtrees — online collaborative genealogy
=========================================

[](#webtrees--online-collaborative-genealogy)

**webtrees** is a web application for recording, viewing and sharing your family history. It imports and exports standard GEDCOM files, making it compatible with every major desktop genealogy application.

You host it on your own web server, so you stay in control of your data. Multiple family members can collaborate on the same tree at the same time, and you decide who can see what through fine-grained privacy rules.

Key features:

- Full editing of individuals, families, sources, media and other GEDCOM records
- Interactive charts — pedigree, fan, descendants, relationships
- Privacy controls per record, per user, per tree
- Multi-language interface (70+ translations)
- Theming support with several built-in themes
- Module system for extending functionality
- Multiple family trees in one installation

For user documentation, screenshots and demos visit ****.

This software is licensed under the GNU General Public License v3 or later. See [LICENSE.md](LICENSE.md) for the full text.

---

Getting started
---------------

[](#getting-started)

### Download

[](#download)

Download the latest stable release from [github.com/fisharebest/webtrees/releases/latest](https://github.com/fisharebest/webtrees/releases/latest).

### Server requirements

[](#server-requirements)

ComponentRequirementPHP8.3 – 8.6DatabaseMySQL (recommended), PostgreSQL, SQLite, or SQL ServerWeb serverApache, NGINX, IIS or similar (URL rewriting needed for pretty URLs)Disk space~100 MB for application files, plus space for media and databaseRequired PHP extensions: `ctype`, `curl`, `gd`, `iconv`, `intl`, `json`, `mbstring`, `pcre`, `pdo`, `session`, `xml`.

Recommended PHP extensions: `exif` (auto-rotate images), `zip` (compress downloads and use the upgrade wizard), `zlib` (compress HTTP responses).

PHP memory and execution time should be scaled to your tree size:

Tree sizeMemoryMax execution timeSmall (500 individuals)16–32 MB10–20 sMedium (5 000 individuals)32–64 MB20–40 sLarge (50 000 individuals)64–128 MB40–80 s### Installation

[](#installation)

1. Upload and extract the release archive to an empty folder on your web server.
2. Navigate to the URL in your browser — the setup wizard starts automatically.
3. Create your first family tree and optionally import a GEDCOM file.

Full installation and upgrade guides are available at .

---

Technical architecture
----------------------

[](#technical-architecture)

### Project structure

[](#project-structure)

```
app/                        Application source (PSR-4 root: Fisharebest\Webtrees\)
├── Cli/Commands/           CLI commands (extend AbstractCommand)
├── Contracts/              Interfaces (*Interface suffix)
├── Enums/                  PHP enumerations
├── Factories/              Object creation (Registry pattern)
├── Http/
│   ├── RequestHandlers/    HTTP controllers (one class per route action)
│   ├── Middleware/         HTTP controllers (one class per route action)
│   └── Routes/             Route definitions
├── Module/                 Modules (charts, reports, sidebars, tabs, themes…)
├── Services/               Domain services
└── …                       Domain classes (Individual, Family, Tree, etc.)

resources/
├── css/                    Stylesheets (compiled by webpack)
├── js/                     JavaScript (compiled by webpack)
├── lang/                   Language files (*.po, compiled into *.php for release)
└── views/                  View templates (*.phtml)

tests/
├── Unit/                   Unit tests
└── Feature/                Feature/integration tests

public/                     Web-accessible assets (compiled CSS/JS, images, fonts)
data/                       Runtime data (config, GEDCOM files, cache — not in VCS)
modules_v4/                 Third-party module directory

```

### Namespace and autoloading

[](#namespace-and-autoloading)

NamespaceDirectoryStandard`Fisharebest\Webtrees\``app/`PSR-4`Fisharebest\Webtrees\Tests\``tests/`PSR-4Global helper functions are in `app/Helpers/functions.php` (loaded via composer `autoload.files`).

### Coding standards

[](#coding-standards)

webtrees follows [PSR-12](https://www.php-fig.org/psr/psr-12) with these additional rules:

- Abstract classes are named `Abstract*`.
- Interfaces are named `*Interface`.
- Traits are named `*Trait`.
- Local variables and parameters use `$snake_case`.
- Nullable types are written `Type|null`, not `?Type`.
- PHP function/constant calls never use named arguments.
- Variable names are full English words (`$variables`, not `$vars`).
- Comments and identifiers use US English (`$color`, not `$colour`).
- All PHP functions and constants are imported with `use`; unused imports are removed.
- No two consecutive blank lines.
- Unit test method names are `camelCase`, not `snake_case`.

For javascript, we use [semistandard](https://github.com/standard/semistandard).

PSR standards applied:

PSRTopicPSR-4AutoloadingPSR-6CachingPSR-7HTTP messagesPSR-11Dependency injection containerPSR-12Coding stylePSR-15HTTP request handlers and middlewarePSR-17HTTP factoriesPSR-18HTTP client### Dependencies

[](#dependencies)

All dependencies are pinned to exact version numbers (no ranges).

**Main PHP dependencies** (via Composer):

- `illuminate/database`
- `symfony/cache`, `symfony/console`, `symfony/mailer`, `symfony/http-client`
- `league/flysystem`
- `league/commonmark`
- `aura/router`

**Main JavaScript dependencies** (via npm / webpack):

- Bootstrap 5
- Font Awesome
- LeafletJs
- DataTables
- Chart.js, Tom Select, Sortable.js

### Building from source

[](#building-from-source)

Prerequisites: PHP 8.3+, [Composer](https://getcomposer.org/), [Node.js](https://nodejs.org/) with npm.

```
# Install PHP dependencies
composer install

# Install JS dependencies and compile assets
npm install
npm run build

# Create a .ZIP file containing a release
composer build
```

### Quality and CI

[](#quality-and-ci)

Run the full local CI suite:

```
composer ci
```

This executes, in order:

ToolPurposeConfig filePHP\_CodeSnifferPSR-12 style enforcement`phpcs.xml.dist`PHPUnitUnit and feature tests`phpunit.xml.dist`PHPStan (level 6)Static analysis`phpstan.neon.dist`Individual commands:

```
# Coding style (fix automatically)
vendor/bin/phpcbf

# Tests with coverage
vendor/bin/phpunit

# Static analysis
vendor/bin/phpstan
```

### Testing

[](#testing)

Tests live in `tests/Unit/` and `tests/Feature/`. Run a subset with:

```
vendor/bin/phpunit --filter=testMethodName
vendor/bin/phpunit tests/Feature/SomeTest.php
```

### HTTP architecture

[](#http-architecture)

The application uses PSR-15 middleware and request handlers:

1. `index.php` boots the application and dispatches the request.
2. Routes are defined declaratively in `app/Http/Routes/`.
3. Each route maps to a request handler in `app/Http/RequestHandlers/`.
4. Middleware provides cross-cutting concerns (authentication, CSRF, etc.).

### Module system

[](#module-system)

Most user-visible features are implemented as modules in `app/Module/`. Modules implement one or more interfaces (e.g. `ModuleChartInterface`, `ModuleReportInterface`, `ModuleThemeInterface`) and are auto-discovered by the `ModuleService`.

Third-party modules can be placed in `modules_v4/`.

### Database

[](#database)

webtrees uses Laravel’s Illuminate Database (query builder and schema builder) without the full Laravel framework. Supported drivers:

- MySQL / MariaDB
- SQLite
- PostgreSQL
- SQL Server

Schema migrations are in `app/Schema/`. The current schema version is tracked in `app/Webtrees.php`.

Table names use a configurable prefix so multiple instances can share a database.

###  Health Score

73

—

ExcellentBetter than 100% of packages

Maintenance82

Actively maintained with recent releases

Popularity55

Moderate usage in the ecosystem

Community46

Growing community involvement

Maturity97

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 72.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~43 days

Recently: every ~25 days

Total

104

Last Release

53d ago

Major Versions

1.7.17 → 2.0.42020-05-18

1.7.18 → 2.0.122021-03-11

1.7.19 → 2.0.182021-12-02

1.7.20 → 2.1.52022-06-04

1.7.x-dev → 2.0.x-dev2026-03-19

PHP version history (11 changes)2.1.0-alpha.1PHP 7.4 - 8.1

2.1.8PHP 7.4 - 8.2

2.1.17PHP 7.4 - 8.3

2.1.21PHP 7.4 - 8.4

2.2.0PHP 8.2 - 8.4

2.2.1PHP 8.3 - 8.4

2.2.2PHP 8.3 - 8.5

2.1.23PHP 7.4 - 8.5

2.1.26PHP 7.4 - 8.6

2.2.5PHP 8.3 - 8.6

2.0.x-devPHP 7.1 - 7.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2306088?v=4)[Greg Roach](/maintainers/fisharebest)[@fisharebest](https://github.com/fisharebest)

---

Top Contributors

[![fisharebest](https://avatars.githubusercontent.com/u/2306088?v=4)](https://github.com/fisharebest "fisharebest (11770 commits)")[![makitso](https://avatars.githubusercontent.com/u/5147603?v=4)](https://github.com/makitso "makitso (1109 commits)")[![kiwi3685](https://avatars.githubusercontent.com/u/1231773?v=4)](https://github.com/kiwi3685 "kiwi3685 (1052 commits)")[![melizaa](https://avatars.githubusercontent.com/u/5202996?v=4)](https://github.com/melizaa "melizaa (253 commits)")[![ddrury](https://avatars.githubusercontent.com/u/104515?v=4)](https://github.com/ddrury "ddrury (174 commits)")[![JustCarmen](https://avatars.githubusercontent.com/u/5641963?v=4)](https://github.com/JustCarmen "JustCarmen (157 commits)")[![mpwt](https://avatars.githubusercontent.com/u/16311627?v=4)](https://github.com/mpwt "mpwt (132 commits)")[![magicsunday](https://avatars.githubusercontent.com/u/564393?v=4)](https://github.com/magicsunday "magicsunday (119 commits)")[![Omankoy](https://avatars.githubusercontent.com/u/446589?v=4)](https://github.com/Omankoy "Omankoy (110 commits)")[![tunandras](https://avatars.githubusercontent.com/u/15856891?v=4)](https://github.com/tunandras "tunandras (97 commits)")[![ljm42](https://avatars.githubusercontent.com/u/5751849?v=4)](https://github.com/ljm42 "ljm42 (93 commits)")[![volschin](https://avatars.githubusercontent.com/u/6284421?v=4)](https://github.com/volschin "volschin (88 commits)")[![jpretired](https://avatars.githubusercontent.com/u/350656?v=4)](https://github.com/jpretired "jpretired (87 commits)")[![scrutinizer-auto-fixer](https://avatars.githubusercontent.com/u/6253494?v=4)](https://github.com/scrutinizer-auto-fixer "scrutinizer-auto-fixer (71 commits)")[![tronsmit](https://avatars.githubusercontent.com/u/10382564?v=4)](https://github.com/tronsmit "tronsmit (68 commits)")[![gudjonsi](https://avatars.githubusercontent.com/u/100283838?v=4)](https://github.com/gudjonsi "gudjonsi (65 commits)")[![vytux-com](https://avatars.githubusercontent.com/u/5370583?v=4)](https://github.com/vytux-com "vytux-com (65 commits)")[![hsarslan](https://avatars.githubusercontent.com/u/4981164?v=4)](https://github.com/hsarslan "hsarslan (64 commits)")[![jon48](https://avatars.githubusercontent.com/u/5150782?v=4)](https://github.com/jon48 "jon48 (64 commits)")[![HRN-webtrees](https://avatars.githubusercontent.com/u/7372415?v=4)](https://github.com/HRN-webtrees "HRN-webtrees (60 commits)")

---

Tags

family-historyfamily-treegedcomgenealogywebtreesgenealogywebtrees

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/fisharebest-webtrees/health.svg)

```
[![Health](https://phpackages.com/badges/fisharebest-webtrees/health.svg)](https://phpackages.com/packages/fisharebest-webtrees)
```

###  Alternatives

[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M674](/packages/shopware-core)[tempest/framework

The PHP framework that gets out of your way.

2.3k37.6k21](/packages/tempest-framework)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[laravel/framework

The Laravel Framework.

34.9k556.2M21.5k](/packages/laravel-framework)[contao/core-bundle

Contao Open Source CMS

1301.7M3.1k](/packages/contao-core-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k6.0M778](/packages/sylius-sylius)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
