Migrating to Gramps

Recently I’ve started to become concerned about my genealogy software. I’ve used the same software for over 20 years and I really like it. But it’s made by a small, family-run company, and it really hasn’t evolved very much over that timeframe. I’ve become more and more concerned that at some point it will shut down when the family has retired or just decides the effort is no longer worth it. I’m not naming the software because I’m not trying to fault them, and it really has been one of my favorite apps for a couple decades. I was already thinking about this potential end-of-life issue when a similar issue arose with Nisus Writer, and that pushed me over the edge to being proactive about this.

Would it be any better to use a bigger software package? Well, I’m not sure. I could imagine a larger company deciding for reasons that their software no longer aligned with their larger profit motives.

So that leaves me looking at Open Source solutions and for genealogy the main game in town is Gramps. So I took the plunge and am moving.

What has my experience been like? I was concerned because Gramps running on the Mac looked like it was janky open source software running on MacOS as an after thought. And frankly, that’s been my experience with running it. For now I’m sticking with it, as it seems like it’s the only way to get some guaranteed longevity and future-proofing from my software choice, although we’ll see if that plays out.

What do I like about Gramps?

  • It has a robust data model, which is better in most ways than the software I am migrating from. I find the event model particularly attractive.
  • It is open source, so theoretically it will be around for a long time. From the outside, it seems like it has a fairly active Linux and Windows development community.
  • It has a plug-in model that is extensible. The integration of plug-ins is not necessarily the smoothest, but I love that the ability exists.

What don’t I like?

I’m thankful that open source software exists and I’m thankful for those who work on Gramps in particular. I know that these volunteers make it all happen.

That said, I want to be honest about my experience – I’m not trying to disparage anyone here, this is just my attempt at an honest list of some of the shortcomings I’ve found. I know some of these are nitpicky, but hey, this is software I will be using for hundreds of hours a year:

  • It is using a Mac port of GTK, which is honestly just janky and doesn’t conform to any Mac UI conventions. Having a native Swift UI app talking to the Gramps engine would be so much better.
  • The user interface is too directly a reflection of the Gramps data model, reflecting mostly a CRUD interface to that model. In particular I find navigating quickly between people to be impossible – my existing software makes it basically one or two clicks to move from a person to their parent or their children. This seems like a super-common use case and it’s a shame that it seems so awkward in Gramps. Maybe I’m missing something. I would love a hot key to pull up a dialog with an auto-complete text field where I could type a person to quickly jump to.
  • On the Mac port, Gramps appears to have a massive memory leak, where opening edit dialogs grows memory usage by 200-300MB with each opening (this is truly terrible)! I’ve reported the issue but so far it’s had no attention or acknowledgement. I get the feeling there is no real Mac development community for Gramps.
  • Gramps has a very robust sourcing and citation system, which is great (!) but my prior software wasn’t as complete in this regard, so when importing that data basically every source citation became a separate source in gramps (it’s more nuanced than that, but it gives you the idea). Cleaning this up has been a massive undertaking and I imagine it will probably be a few years before I’ve expunged all the vestiges of the migration.
  • Merging different records could be more robust. Because of that issue above, merging the different sources and citations (and events) together can be a real pain – I can’t merge citations with “different” sources together (in reality they are the same source under-the-hood). Also you can only select two items to merge at a time. A nice usability improvement would be to allow selecting more than two, then orchestrating a merge between consecutive items all the way through the list. As it is now I have to do that manually.
  • Sharing events among people is too tedious. You have to navigate to the person then find or enter the ID of the shared event. I’d like to open an event and from there search and select the list of people I want to associate with that event.
  • The text input and storage system for notes is too proprietary.
    • If I paste rich text into a note it is converted to plain text.
    • If I enter text in a note and style it using Gramps’ proprietary system, then I copy that text and try to put it in another note, it is converted to plain text.
    • You can change the font size, but really what I want to do is change the zoom level (the display size of the text, not the point size of the text).
    • Boy I wish I could just use Markdown and have it interpret it for display. I’ve started writing my notes in Markdown anyway since that formatting doesn’t even interoperate within Gramps – and I am constantly copying source citation notes into Markdown documents.

Development Woes

  • I would love to dive in and work on some of these issues in code myself, but the instructions for setting up a dev environment are very sparse and leave a lot to be desired. In fact, I think there are big barriers to participation from a development standpoint:
    • There’s a Build from Source link which probably has some overlap with setting up a dev environment, but there’s a BIG WARNING to uninstall Homebrew, MacPorts, or Fink before attempting this (ironic since that prior link suggests building from source using MacPorts) — so yeah, please break your installed command line tools and workflows in order to develop on this package.
    • I’ve looked at the instructions in some detail and honestly I just had a hard time seeing a clear path to success when reviewing the docs. The instructions recommend setting up a separate Mac user just for development, which again, if it’s disconnected from my normal computing environment (e.g. my user files, my notes, my browser’s cookies, etc.) that is a huge barrier to entry for development. If the dev setup could be improved and documented I would be much more likely to start improving the software myself.

The Future

I hope I’m with Gramps to stay, and I hope I am able to get a bit of traction with the development community. The Gramps project has a lot of longevity and I’m hoping that with some further engagement the Mac Gramps story can be improved.


Introducing Photocite

Recently I’ve been processing a number of family history photos or scans of old family artifacts such as letters. For images that are historic which I may share or distribute as a part of my research, I want to be sure that I have a good citation for the image and I want to embed it in the image itself so that the sourcing information is less likely to be lost as the image gets distributed or passed around. I started off using Pixelmator Pro to painstakingly add text citations to the images, but this seemed arduous and somewhat inconsistent after a while, and if I needed to tweak the citation it got a bit fiddly.

PDF Slurping

I’ve been using Advantage Archives for looking at the newspaper archives of a number of different libraries as a part of genealogy research.

The trouble is that each library has a slightly different UI for browsing these newspapers, and the experience can be fairly cumbersome. Ultimately, you can download a PDF if you want, but all the clicking around still makes the process slow and frustrating.

Of course the built-in MacOS Preview tool can show you PDFs, too, and it’s navigation/zoom interface is easier, too (especially using pinch-to-zoom, etc).

TextExpander Citations

In my research I’ve been finding a lot of newspaper articles and transcribing them using automation. But when I’m documenting those articles and linking them to people, I also need to create a source citation. I try to use Evidence Explained-style citations to the best of my ability, but there’s a lot of repeated boilerplate text when writing these up – and there is formatting! Some parts of italicized, so that gets tedious, too.

Automating Transcription with ChatGPT

I recently discovered a trove of online newspaper archives for an region where a branch of my family research is focused. Advantage Archives partners with mostly small-town libraries, especially in the midwestern USA, to digitize old newspaper archives and put them online.

The discovery of all these newpaper archives has led me to want to transcribe and write source citations for hundreds of articles. You know what’s tedious? Transcribing and citing hundreds of articles! This is a job for automation!

Hello World

Welcome to Pedigree Pipeline, a place for me to share tips and techniques for automating genealogy and family history research — along with other insights or discoveries from my research itself. Much of my work is computer-centric these days, and I often find myself repeating the same tasks. As a software engineer, I’m always thinking about how to automate these workflows — primarily on a Mac, using the Unix command line and Mac-centric automation tools.