Danger Brewing: The JavaScript Powered Kegerator

This is a story about a completely unnecessary, over-engineered appliance that dispenses beer, has its own web application and reports data in real-time.

Danger Brewing

I wanted to keg my own beer since I started brewing 7 years ago, mostly because bottling beer is the worst. The initial plan was to build a collar-style keezer. But then I remembered I’m a software engineer, I like building things and I love a flimsy pretext to interject technology.

Project Goals

Just To Say It

Some important things to point out:

Freezer build

Here’s where the journey started:

The Freezer

This is an off-the-shelf chest freezer from Home Depot, more specifically, this one. What may be the reason why I even embarked on this build in the first place is that a non-white chest freezer doesn’t exist. You can find a few of them out there, but they’re either enormous, too small or are trying to hide from other freezers. None of those traits are acceptable for my purposes, so I purchased a white freezer and wrapped it in wood. The inspiration of which can be found here.

There’s a 2x4 skeleton around the freezer.

Base Skeleton

With a similar skeleton around the lid.

Lid Skeleton

The original goal was to use reclaimed wood, pallet wood or something up-cycled. This proved to be quite difficult to find enough consistent building materials. I ended up using generic “white wood” (I’m still not sure what this is exactly) and pine from the hardware store. The “reclaimed” look was inspiration from Young House Love. The wood was roughed up randomly and stained with two different colors at different time intervals.

Stained Pine

Stained White Wood

No worries about the freezer exhaust, it was accounted for:

Freezer Exhaust

The draft towers are off the shelf 1.25” galvanized steel pipe and fittings. Most I was able to acquire locally with only a few pieces requiring purchase online.

Lid Complete

Draft Towers In Place

Draft Towers Finished Side

Draft Towers Finished Front

One last finishing touch, a skull bottle opener and cap catcher.

Skull Bottle Opener

To see more of the build process in detail, click here.

Kegerator Build

The freezer I purchased fits three corny kegs (maybe a fourth if it was smaller in size and the gas tanks were on the outside), however there are four taps. This was so I could operate 3 CO2 beers at once or some combination of CO2 and Beer Gas (nitro).

There’s the standard equipment involved:

To circumvent future moisture issues, an ingenious air flow solution was built, which I aggressively borrowed from here.

Air Flow

The goal here is to keep some air circulating in the freezer to prevent mold and keep a consistent temperature. Because I chose not to build a collar or alter the height of my freezer, my implementation deviates from the original a bit. I couldn’t physically accommodate 2” PVC with kegs vertically so I only built half of the air flow solution — which works just as well.


Aside from monitoring keg volume and temperature, I wanted to use this project as a means to learn some new technologies. The kegerator is conceptually two main components:

The hub is a Raspberry Pi that sits on the lid of the kegerator (mostly just to look awesome).


It is responsible for collecting sensor data and reporting it to my web application. There are three sensors being used:

The hub is running a Node application, built using Johnny Five. The data it collects is reported to Firebase. The web application is using the same Firebase project as its data source.

To read more about the technology build process in detail, click here.

Wrapping Up

This project took a lot longer than I had anticipated. I was often discouraged, spent too much money and learned lessons the hard way. But ultimately, when I poured that first beer and saw my web application update in real time — holy. shit.

To see what I have on tap at any given moment or want to see how my freezer is doing, the web application can be found here: dangerbrewing.io. It’s currently hosted for free, so it may be slow to load. If you’re a complainer or some kind of jerk, feel free to send some dollars my way to fix that.

To read more about the build process, click here. Or to read more about the technology involved, head here.

If you embark on a similar journey, I’d love to hear about it.


cross-posted to medium

tags: Web Development, Ember, Firebase, JavaScript, Raspberry Pi, Medium