Shown in smart_boot.pdf is the first iteration of the schematic for the controller. I'm using two ALQ3F12 relays for switching the heater and fan, and a NUD3112 dual inductive load driver, which is specifically made for switching 12V inductive loads (aka the relay coils). This chip is incredibly inexpensive and makes things easier than doing my own relay driving with transistors and diodes. To get the required 12V and 3.3V for the circuit, a PBO-1-S12 AC-DC converter is used. This is a SIP AC-DC converter that is compact and requires a bit of external circuitry, most of which is optional. An ESP32-WROOM-32 is being used as the microcontroller, and will allow for all sorts of connected funtimes. Shown below is an image of the PCB that I'm getting manufactured.
Please ignore the woeful lack of isolation between mains and low voltage sections of the board. I could have done much better, but it'll work. My main goal was to be as compact as possible, since I don't have much space inside of the boot warmer to place the circuitry. I've ordered the boards, all the parts have already arrived, but we'll see if this works!