2020 and 2021 have really been banner years for my flagship personal project: the genealogy sitebuilder Geneac!

In case you were not aware, Geneac is a genealogy sitebuilder I’ve been working on for a few years now. It has its roots in a project I worked on during my undergraduate degree called Familiar. With Geneac, I rearchitected my ideas from the ground up to provide a better developer experience (and hopefully a better user experience too!)

There have been a more than a few developments since my announcement post in 2019.

Hacktoberfest Contributions

The thing I am most proud of about Geneac is that I am not the only one who has contributed to it!

For some background, I discovered open-source software as a kid, and have always dreamed I would be able to make significant contributions myself. To be honest, while I have a handful of commits on others’ public projects (and currently work for GitHub, whose stated purpose is to provide a place for OSS developers to congregate) I am still not a great contributor. Hacktoberfest is an online event sponsored by Digital Ocean to encourage people like me to contribute to open source projects, or invite others to contribute to your own project.

In 2020 I took a chance and labeled some issues in the Geneac repository as “Hacktoberfest”-eligible in the hopes of attracting others to the project - and I got a few takers! I repeated the process this year and got another great feature contribution from somebody. I hope that the people who contributed enjoyed working with me, because I definitely enjoyed working with them!

Documentation

This is not a feature of the application, but I created a site to house the documentation of geneac here. My hope is that this makes setting it up or developing it even easier!

Improving the Developer Experience with Devcontainers

One of the most significant improvements made this year was the introduction of VS Code devcontainers. As an avid VS Code user, it made sense to me to go all-in here since I’ve had first-hand professional experience with how easy it makes setting up a consistent development environment. My general aversion to vendor lockin is assuaged since it is based on open source technology - it is, after all, just a Docker container with some special integration with VS Code. As an added bonus, I got some feedback from a Hacktoberfest contributor that it made getting started really easy!

You can read about setting up the development environment here.

Citations

From a usability side of things, there have been a number of improvments to the Citation feature that made it easy and interesting to cite the source your data comes from. The key feature is that it automatically parses out links and displays them as links on the page. At some point I would like to do some analysis on the citations so I can pull out statistics about where all the information is coming from as well.

citation demo

Automated Infrastructure Deployments with GitHub Actions

At the risk of sounding like a shill, AWS is the best-in-class cloud at the moment. It just is. This year, I shifted Geneac to run everything that’s not hosted in Heroku, on AWS. This includes storage (S3) and email (SES) and may in the future hold more, but right now I’m focused on hosting this as cheaply as possible.

The cool thing as that I define my infrastructure in a CloudFormation file available in the Geneac repository, and then I deploy it to all of my environments at once using a GitHub Action. This means I pretty much never need to go into the AWS Console!

The Demo Site

If you’re interested in seeing Geneac in action, you can go to geneac-demo.herokuapp.com. If you’re interested in using Geneac yourself, send me an email at mitchell.rysavy@gmail.com and we can talk about how I can help you set up an instance for yourself.