greatgramps
A static site generator for GRAMPS family tree databases.
greatgramps reads a GRAMPS database and builds a browsable static website from it. Each person in the tree gets their own page with biographical details, family relationships, events, photos, and a relationship label showing how they connect to a chosen root person. The site also includes index pages for people, places, events, census records, birthdays, and surnames.
The site is built from the point of view of one or more root people — typically the living members of a family who each want to browse the tree as themselves. Each root person gets their own section of the site where relationship labels (“your grandmother”, “your 2nd cousin”) are calculated relative to them. A top-level index page lets you switch between roots.
The site is generated once and served as plain HTML — no server-side code required. It’s not a web frontend for GRAMPS (like gramps-web), in that it’s read-only, but it produces a fairly rich browsable site for your tree. Once built, the site can be hosted with ease, with no Python or GRAMPS installation required.
This approach lets you manage your own tree using open source software without relying on subscription or proprietary services, while still making it easy to share your tree with your family on the web.
Requirements
Python 3.10+
A GRAMPS sqlite database
Demo
A demo is available at gramps.bennuttall.com which features a generated family tree showcasing what greatgramps can build from a GRAMPS database.
Installation
Install GRAMPS first. See the GRAMPS installation instructions.
Also install PyICU for locale-aware sorting, via your platform’s package manager (otherwise GRAMPS logs a warning and falls back to less accurate sorting of names and places). On Debian/Ubuntu:
sudo apt install python3-icu
Note
greatgramps does not install GRAMPS itself — it imports the system-installed gramps Python
package. If you install greatgramps in a virtualenv, create it with --system-site-packages
(or otherwise enable site packages), so it can find the system-installed gramps package.
Then install the project. The core package only handles reading the GRAMPS database; pick the extras for the features you need:
pip install greatgramps[cli,html,pdf]
cli— thegrgrcommand-line toolhtml— thegrgr build/grgr rebuild-pagecommands for generating the static sitepdf— thegrgr pdfcommands (also requires Ghostscript)
If you only have the html extra installed (no cli), build the site with python -m
greatgramps.build instead of grgr build — it has no dependency on typer or rich.