Hello! It is a custom solution. It's pretty basic, my code isn't open source, but I can share more details if you'd like.
I don't have time to make a full tutorial, but you can take a look at the code here: https://gist.github.com/wizbane/6f243859412b6fa22900a71961124142