PHPackages                             magicsunday/webtrees-descendants-chart - 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. [Image &amp; Media](/categories/media)
4. /
5. magicsunday/webtrees-descendants-chart

ActiveWebtrees-module[Image &amp; Media](/categories/media)

magicsunday/webtrees-descendants-chart
======================================

SVG descendants chart module for the webtrees genealogy application — interactive D3.js tree visualization with spouse display and up to 25 generations.

2.6.3(1mo ago)373678[3 issues](https://github.com/magicsunday/webtrees-descendants-chart/issues)[1 PRs](https://github.com/magicsunday/webtrees-descendants-chart/pulls)GPL-3.0-or-laterJavaScriptPHP 8.3 - 8.5CI passing

Since Mar 15Pushed 4d ago1 watchersCompare

[ Source](https://github.com/magicsunday/webtrees-descendants-chart)[ Packagist](https://packagist.org/packages/magicsunday/webtrees-descendants-chart)[ Fund](https://paypal.me/magicsunday)[ RSS](/packages/magicsunday-webtrees-descendants-chart/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (10)Dependencies (31)Versions (43)Used By (0)

[![Latest version](https://camo.githubusercontent.com/6b4cfdf509d5182665ffc2de6672ad27577822f57388ae474a9ff75eaaa297c9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f6d6167696373756e6461792f77656274726565732d64657363656e64616e74732d63686172743f736f72743d73656d766572)](https://github.com/magicsunday/webtrees-descendants-chart/releases/latest)[![License](https://camo.githubusercontent.com/3d19d3556d100bb58466d4e3c91ff620077ee639fc76906a0a66bc8b0c7b33c7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d6167696373756e6461792f77656274726565732d64657363656e64616e74732d6368617274)](https://github.com/magicsunday/webtrees-descendants-chart/blob/main/LICENSE)[![CI](https://github.com/magicsunday/webtrees-descendants-chart/actions/workflows/ci.yml/badge.svg)](https://github.com/magicsunday/webtrees-descendants-chart/actions/workflows/ci.yml)

- [Descendants chart](#descendants-chart)
    - [Installation](#installation)
        - [Manual installation](#manual-installation)
        - [Using Composer](#using-composer)
            - [Latest version](#latest-version)
        - [Using Git](#using-git)
    - [Update](#update)
    - [Configuration](#configuration)
    - [Usage](#usage)
    - [Troubleshooting](#troubleshooting)
    - [Development](#development)
        - [Run tests](#run-tests)

Descendants chart
=================

[](#descendants-chart)

This module provides an SVG descendant chart for the [webtrees](https://www.webtrees.net) genealogical application. It is capable of displaying up to 25 generations of descendants from an individual.

**But beware, if you select too many generations, it may take a while and even slow down your system significantly.**

In addition to the descendants, the respective spouses are also displayed for a person. The display can be deactivated via the configuration form so that only the direct descendants are displayed.

[![descendants-chart-4-generations](assets/descendants-chart-4-generations.png)](assets/descendants-chart-4-generations.png)

*Fig. 1: A four generations descendants chart with spouses (drawn top to bottom)*

Installation
------------

[](#installation)

Requires webtrees 2.2.

There are several ways to install the module. The method using [composer](#using-composer) is suitable for experienced users, as a developer you can also use [git](#using-git) to get a copy of the repository. For all other users, however, manual installation is recommended.

### Manual installation

[](#manual-installation)

Important

**Download the right `.zip` file.** Each [GitHub release](https://github.com/magicsunday/webtrees-descendants-chart/releases/latest) page lists two kinds of archive:

- ✅ **`webtrees-descendants-chart.zip`** — listed under **Assets** at the bottom of the release. This is the install-ready archive: it bundles the required `vendor/` dependencies (such as `webtrees-module-base`).
- ❌ **"Source code (zip)" / `webtrees-descendants-chart-.zip`** — auto-generated by GitHub from the tag. This is the raw source *without* bundled dependencies. Uploading it to `modules_v4/` will fail with `Trait/Interface "MagicSunday\Webtrees\ModuleBase\…" not found` (or `ModuleAssetUrlInterface not found`).

**Always pick the asset zip, never "Source code (zip)".**

Important

**If a previous version of this module is already installed:** delete the entire `modules_v4/webtrees-descendants-chart` folder *before* extracting the new ZIP. Extracting on top of an existing folder leaves stale files behind that can clash with the new release — a common cause of `Interface … not found` errors right after an update.

To manually install the module, perform the following steps:

1. Open the [latest release](https://github.com/magicsunday/webtrees-descendants-chart/releases/latest) page.
2. Under **Assets**, download `webtrees-descendants-chart.zip`.
3. Upload the `.zip` file to your web server.
4. Unzip the package into your `modules_v4` directory.
5. Rename the folder to `webtrees-descendants-chart`.

If everything was successful, you should see a subdirectory `webtrees-descendants-chart` with the unpacked content in the `modules_v4` directory.

Then follow the steps described in [configuration](#configuration) and [usage](#usage).

### Using Composer

[](#using-composer)

Typically, to install with [composer](https://getcomposer.org/), just run the following command from the command line, from the root of your Webtrees installation.

```
composer require magicsunday/webtrees-descendants-chart --update-no-dev
```

The module will automatically install into the `modules_v4` directory of your webtrees installation. To make this possible, the "magicsunday/webtrees-module-base" package is used. Approval within Composer may be required here to authorize the execution of the package.

To remove the module run:

```
composer remove magicsunday/webtrees-descendants-chart --update-no-dev
```

Then follow the steps described in [configuration](#configuration) and [usage](#usage).

#### Latest version

[](#latest-version)

If you are using the development version of Webtrees (main branch), you may also need to install the development version of the module. For this, please use the following command:

```
composer require magicsunday/webtrees-descendants-chart:dev-main --update-no-dev
```

### Using Git

[](#using-git)

Clone the repository into your `modules_v4` directory (a *Code → Download ZIP* of the source works the same way):

```
git clone https://github.com/magicsunday/webtrees-descendants-chart.git modules_v4/webtrees-descendants-chart
```

A source checkout contains the module code **only** — it does **not** include the shared `webtrees-module-base` library, so on its own it fails with `Trait "MagicSunday\Webtrees\ModuleBase\…" not found`. Supply that library in one of two ways:

**Way A — drop-in (no code change).** Download [`webtrees-module-base`](https://github.com/magicsunday/webtrees-module-base) and copy its `src/` to the location this module's `module.php` already expects:

```
modules_v4/webtrees-descendants-chart/vendor/magicsunday/webtrees-module-base/src/…

```

**Way B — shared copy (one edit).** Place `webtrees-module-base` next to this module in `modules_v4/` (rename the extracted folder to `webtrees-module-base`), then point this module's `module.php` at it. A single shared copy then serves every magicsunday module installed this way:

```
// modules_v4/webtrees-descendants-chart/module.php
$loader->addPsr4(
    'MagicSunday\\Webtrees\\ModuleBase\\',
    __DIR__ . '/../webtrees-module-base/src'
);
```

Important

Both ways are overwritten by every module update, so you must redo them after each upgrade. For a maintenance-free install **without** Composer, use the [asset zip](#manual-installation) (it bundles all dependencies). Inside a **Composer-managed** webtrees, prefer `composer require magicsunday/webtrees-descendants-chart:dev-main`— see [Using Composer](#using-composer).

Update
------

[](#update)

To update to the latest version:

- **Manual installation**: From the [latest release](https://github.com/magicsunday/webtrees-descendants-chart/releases/latest) **Assets** section, download `webtrees-descendants-chart.zip` (not "Source code (zip)"), **delete the old `modules_v4/webtrees-descendants-chart` folder first**, and extract the new one. Extracting on top of an existing folder leaves stale files behind that can clash with the new release (a common cause of `Interface … not found` errors after an update).
- **Composer**: Run `composer update magicsunday/webtrees-descendants-chart --update-no-dev`.
- **Git**: Run `git pull` inside the `modules_v4/webtrees-descendants-chart` directory, then re-apply your source step (see [Using Git](#using-git)).

Configuration
-------------

[](#configuration)

Go to the control panel (admin section) of your installation and scroll down to the `Modules` section. Click on `Charts` (in subsection Genealogy). Enable the `Descendants chart` custom module (optionally disable the original installed descendant chart module) and save your settings.

[![Control panel - Module administration](assets/control-panel-modules.png)](assets/control-panel-modules.png)

*Fig. 2: Control panel - Module administration*

Usage
-----

[](#usage)

At the charts' menu, you will find a new link called `Descendants chart`. Use the provided configuration options to adjust the layout of the charts according to your needs.

Furthermore, it is possible to export the generated tree diagram as an SVG or PNG image in order to be able to use it elsewhere.

Troubleshooting
---------------

[](#troubleshooting)

**Fatal error after a manual installation or update: `Trait/Interface "MagicSunday\Webtrees\ModuleBase\…" not found` (or `ModuleAssetUrlInterface not found`)**

- You probably downloaded the GitHub-generated **"Source code (zip)"** (or used *Code → Download ZIP*) instead of the install-ready asset **`webtrees-descendants-chart.zip`**. The asset bundles the required `vendor/` dependencies; the source zip does not. Open the [latest release](https://github.com/magicsunday/webtrees-descendants-chart/releases/latest), scroll to **Assets**, download `webtrees-descendants-chart.zip`, and re-extract.
- If you used the asset zip, make sure you **deleted the previous `modules_v4/webtrees-descendants-chart` folder before extracting**. Stale files from an older version can shadow the new bundled vendor code and produce the same error.

**The chart does not appear / shows an error**

- Make sure the module is enabled in the Control Panel under Modules &gt; Charts.
- Check that your PHP version is 8.3 or later.
- Clear your browser cache and reload the page.

Development
-----------

[](#development)

To build/update the JavaScript, you can either use a local Node.js installation or Docker.

### Using Docker

[](#using-docker)

No local Node.js installation required. Just run:

```
make install
make build
```

To watch for changes and rebuild automatically:

```
make watch
```

### Using local Node.js

[](#using-local-nodejs)

```
nvm install node
npm install
npm run prepare
```

### Run tests

[](#run-tests)

```
composer update

composer ci:test
composer ci:test:php:phpstan
composer ci:test:php:lint
composer ci:test:php:rector
```

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance95

Actively maintained with recent releases

Popularity29

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity83

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 92.3% 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 ~54 days

Recently: every ~6 days

Total

36

Last Release

30d ago

Major Versions

1.2.0 → 2.0.x-dev2022-05-02

1.9.0 → 2.0.02024-12-01

### Community

Maintainers

![](https://www.gravatar.com/avatar/1979dde7200fccc0e21e18a29b5566f22fa01ad104e577254fe74e14ae04a297?d=identicon)[magicsunday](/maintainers/magicsunday)

---

Top Contributors

[![magicsunday](https://avatars.githubusercontent.com/u/564393?v=4)](https://github.com/magicsunday "magicsunday (442 commits)")[![gudjonsi](https://avatars.githubusercontent.com/u/100283838?v=4)](https://github.com/gudjonsi "gudjonsi (12 commits)")[![TheDutchJewel](https://avatars.githubusercontent.com/u/46184729?v=4)](https://github.com/TheDutchJewel "TheDutchJewel (9 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![06Games](https://avatars.githubusercontent.com/u/24252743?v=4)](https://github.com/06Games "06Games (2 commits)")[![jakubcabal](https://avatars.githubusercontent.com/u/8996062?v=4)](https://github.com/jakubcabal "jakubcabal (2 commits)")[![JustCarmen](https://avatars.githubusercontent.com/u/5641963?v=4)](https://github.com/JustCarmen "JustCarmen (2 commits)")[![frenzeldk](https://avatars.githubusercontent.com/u/1295777?v=4)](https://github.com/frenzeldk "frenzeldk (1 commits)")[![ddrury](https://avatars.githubusercontent.com/u/104515?v=4)](https://github.com/ddrury "ddrury (1 commits)")[![zaharchenko-yurka](https://avatars.githubusercontent.com/u/17779489?v=4)](https://github.com/zaharchenko-yurka "zaharchenko-yurka (1 commits)")

---

Tags

chartd3d3jsdata-visualizationdescendantsdescendants-chartfamily-treegenealogymodulesvgvisualizationwebtreeswebtrees-modulesvgmodulechartd3.jsdata visualizationvisualizationd3descendantsgenealogywebtreesFamily-treedescendants-chart

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/magicsunday-webtrees-descendants-chart/health.svg)

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

###  Alternatives

[picqer/php-barcode-generator

An easy to use, non-bloated, barcode generator in PHP. Creates SVG, PNG, JPG and HTML images from the most used 1D barcode standards.

1.8k27.4M109](/packages/picqer-php-barcode-generator)[lasserafn/php-initial-avatar-generator

A package to generate avatars with initials for PHP

4404.3M15](/packages/lasserafn-php-initial-avatar-generator)[yzalis/identicon

Generate unique identicon avatars from any string

6091.1M23](/packages/yzalis-identicon)[jkphl/iconizr

A PHP command line tool for converting SVG images to a set of CSS icons (SVG &amp; PNG, single icons and / or CSS sprites) with support for image optimization and Sass output

4869.0k](/packages/jkphl-iconizr)[ianw/quickchart

QuickChart chart API

46699.0k](/packages/ianw-quickchart)[samchristy/piechart

A simple class for drawing pie charts with ImageMagick or GD in PHP.

3447.9k1](/packages/samchristy-piechart)

PHPackages © 2026

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