laravel-liberu/php-gedcom
A PHP library for reading and writing GEDCOM genealogy files. Parse individuals, families, events, and sources into structured objects, or generate valid GEDCOM for export, with a clean API that fits neatly into Laravel and other PHP projects.
[WIP] GEDCOM-X mapping PR is the single most strategically relevant line item. If your roadmap includes FamilySearch API sync, Ancestry-style interchange, or any JSON-native archival format, this release moves the package from "GEDCOM file reader" to "interchange layer." Treat it as an early signal, not a shipping commitment.UID/_UID support across all record types with GedcomX export is a deceptively important feature. Stable per-record identifiers are what let you import → edit → export without duplicating individuals or orphaning relationships. This directly reduces support tickets and data-corruption incidents in any edit-capable product.liberu-genealogy org (a genealogy application suite) and this release was authored largely by an automated contributor. That is acceptable for a utility library, but it makes the package a dependency decision, not a platform decision — plan an abstraction boundary around it.Adopt when:
UID/_UID coverage is a direct fit.Look elsewhere — or gate adoption behind a spike — when:
To executives: We can ship genealogy import and modern JSON export on top of an existing open-source library instead of funding a bespoke parser. The v4.2.0 release adds two things that matter commercially — a path to GEDCOM-X (the interchange format FamilySearch and similar platforms speak) and stable record identifiers, which is what prevents duplicate people and broken relationships when customers edit and re-export their trees. Recommendation: adopt as a scoped dependency behind our own interface, fund a short spike on the WIP GEDCOM-X mapper, and avoid committing publicly to GEDCOM-X output until it stabilizes.
To engineering: Pin to v4.2.0 exactly; the GEDCOM-X mapping is flagged WIP and its API surface should be assumed unstable. Wrap the library in a thin adapter and map into our own domain objects so we can swap parsers without touching product code. Prioritize the UID/_UID round-trip path — it's the highest-value, lowest-risk part of this release — and add fixture-based tests covering real-world GEDCOM dialects, including _UID variants. Note the release was largely automated, so review the diff rather than relying on release-note confidence, and confirm our minimum PHP version against the package's composer.json before upgrading from v4.1.1.
How can I help you explore Laravel packages today?