About BeerJSON

BeerJSON is a JSON based format for describing beer recipes

Examples

Recipe

We define the units to be used at the top of the recipe file, but they can be overriden by including a unit, within the definition of for example the fermentation section.

{
    "title": "Bitter",
    "author": "Bob Brewer",

    "volume-unit": "l",
    "temperature-unit": "C",
    "weight-unit": "kg",
    "time-unit": "minute",
    "duration-unit": "minute",

    "mash": {
        "start": 0,
        "finish": 60,
        "profile": [
            {
                "time": 0,
                "temperature": 65,
                "addition": [
                    {
                        "name": "grain.Marris Otter",
                        "weight": 6
                    },
                    {
                        "name": "Water",
                        "volume": 20
                    }
                ]
            },
            {
                "time": 40,
                "temperature": 67
            }
        ]
    },
    "boil": [
        {
            "duration": 60,
            "addition": [
                {
                    "name": "hops.Fuggles",
                    "weight": 0.05
                }
            ]
        },
        {
            "duration": 10,
            "addition": [
                {
                    "name": "hops.Cascade",
                    "weight": 0.025
                }
            ]
        }
    ],
    "fermentation": {
        "profile": [
            {
                "time": 0,
                "temperature": 18,
                "addition": [
                    {
                        "name": "yeast.WLP002",
                        "volume": 0.1
                    }
                ]
            },
            {
                "name": "cold crash",
                "duration": 3,
	        "duration-unit": "day",
                "temperature": 1
            }
        ]
    },
    "serve": {
        "temperature": 10
    }
}

Ingredients file

{
	"hops" : [

		{
			"name"	:	"Fuggles",
			"alpha"	:	4.50,
			"beta"	:	2.00
		},
			
		{
			"name"	:	"Cascade",
			"alpha"	:	5.50,
			"beta"	:	6.00
		}
	],

	"grain" : [
		
		{
			"name"      :	"Pilsner",
			"diastatic" :	60.0,
			"srm"       :	1.0
		},
		
		{
			"name"      :	"Marris Otter",
			"diastatic" :	120.0,
			"srm" 	    :	3.0
		}		
	],

	"yeast" : [
		{
			"name" 		  : 	"WLP002",
			"lab"		  : 	"White Labs",
			"min-attenuation" : 	63.0,
			"max-attenuation" :     70.0,
			"min-temperature" :	18.3,
			"max-temperature" :	20.0
		}
	]
}