I recently got married – and as we know, weddings are expensive. Previously, I documented saving money by creating my own website and foregoing spending money on paper RSVPs. We also decided to skip paying a photographer the exorbitant extra fees to also photograph our reception, but we still wanted to have lots of memories from the event.
I’ve always loved getting in photo booths, having a bunch of laughs, and keeping the printed photos for later. But do you know how much a photobooth rental is? At least $1,500! And even then, they usually print out photos instead of providing a digital version that you can actually save and use long-term.
Well, in keeping with my theme of not spending money, but instead spending way too much time over-engineering a similar solution: I set out to build my own. And I succeeded.
The application, which is open-sourced on Github, is built with Electron, React, Tailwindcss, and x-state. It uses browser APIs like MediaDevices, MediaStream, and MediaRecorder to record your webcam and pass the data to an HTML canvas to create collage images, as well as video recordings.
I had a script running to watch the directory where the application saved the photos. That script looked at each new image, resized, and uploaded them directly to my Firebase storage account for immediate display in a gallery on the wedding website.
The “Memory Shack”
From a physical standpoint, the photo “booth” was renamed to the “Memory Shack”. It consisted of a borrowed portable USB-C LCD screen, a 6-button StreamDeck mini (because the screen was not a touch screen), a ring light, and a GoPro running as a webcam.
All of the wood used was donated from a friend and it was all pretty warped. We did the best we could with making it look nice – and it did turn out nice, if you don’t mind that it looks like an old shack in the woods. So, we renamed it to the “Memory Shack”.
Unfortunately, through the chaos of it all, I forgot to get a photo of the actual photobooth at the reception.
It may have looked janky and silly, but this thing was a hit! We had props, hats, glasses, and whatever silly things we could find from costumes between ourselves and friends. And the photos turned out absolutely hilarious and fun.
All-in-all, I spent at least 200 hours between research, prototyping, building, tweaking, and playing around with this. If I tried to cost:benefit ratio it all out with an hourly rate of my time, it probably would have been cheaper to rent a photobooth. However, after seeing the result of what I made, I think that I made the right choice by building this photobooth myself.