I've been working on and off for the past year or so on some new homebrew recipe software, codename Brewed, and I figured it might be time to show something off.
First off, this is a pretty big departure from how homebrew software normally works. It's more an experiment than anything, and it's almost certainly not for everyone. It's opinionated, incomplete, and is probably missing your favorite feature. That said, I've used it to formulate all of my recent recipes, and the beer has turned out great.
Brewed is different from traditional homebrew software in that it is declarative rather than imperative. Software folks will know what this means, but here's a quick explanation for everyone else:
Traditional homebrew software is imperative. You tell the software how to brew your recipe. Sure, it might do some calculations for you, but creating recipes is still a process of trial and error.
Contrast this with a declarative approach, one where you tell the software what you want to brew, and it figures out the how.
This might seem a little strange, but it makes sense when you think about it. Why should a homebrew recipe be locked to a specific batch size or mash efficiency? Wouldn't it be better to be able to share recipes and have them automatically adapt to your equipment and process?
The screen is divided into three columns.
In the left column you have your brewing system and ingredient library. The brewing system, which currently only contains two fields (mash efficiency and batch size) is specific to the brewer and completely decoupled from the recipe.
The middle column is for what I'm calling the abstract recipe. This is what you create and share with other brewers. This is probably also the most foreign looking part of the software and almost certainly deserves a little explanation:
- Base Malts - The base malts in your recipe as defined by percent of OG. The software automatically figures out how much of each base malt you need (taking into account your brewing system) in order to hit your target OG.
- Specialty Grains - Specialty grains are defined in terms of oz/gal. The software automatically figures out how much of each specialty grain you need based on your batch size.
- Kettle Hops - Kettle hops are defined in terms of % of IBU. The software automatically figures out how much of each kettle hop you need in order to hit your target IBUs.
- Dry Hops - Dry hops are defined in terms of oz/gal. The software automatically figures out how much of each dry hop you need based on your batch size.
The right column is your calculated recipe, customized for your system and ready to brew.
Scaling recipes to a different batch size or mash efficiency is as simple as changing those values in the UI. The ingredient amounts will automatically update. Whether you're brewing 15 gal at 55% efficiency, or 5 gal at 80% efficiency, the abstract recipe is exactly the same.
- Save and load abstract recipes (JSON and (optionally) a free web service).
- Automatic conversion between all-grain and extract.
- PDF export for easy printing/archiving of calculated recipes.
- Yeast pitch rate calculator?
- Mash calculator?
I plan to release all of this under a BSD license, but I just need a little more time to clean up a few things and throw it on GitHub.
I'd love to hear your thoughts on Brewed, and declarative recipes in general. I haven't seen any other software trying this approach but it's been really fun to explore.