← Back to the app

Badger Brew Ops guide

How to use every part of the app. The ? button on each screen opens the part of this guide for that screen.

Getting started

  1. Sign in with your email. There's no password: the app emails you a sign-in code. Type it in (or tap the link in the email).
  2. Join your team, or set up your brewery. If your admin invited the email you signed in with, you join automatically. If not, the app asks whether your brewery already uses Badger Brew Ops:
    • Yes, I'm joining my team: type the join code from your invite email (like grist-knockout-4821; capitals and spaces don't matter). The code works with any email, so it's the answer when you were invited at one address and signed in with another. No code? Ask your admin to invite the email you signed in with, then tap Check for invites.
    • No, I'm setting it up: name your brewery and you're its admin. If anyone at your brewery already uses Badger Brew Ops, ask them to invite you instead, so you're all looking at the same tanks.
    Made a brewery by mistake? Delete it in Settings → Brewery.
  3. Set up your brewery: a new brewery's tank board starts with Set up your brewery, six short steps from units to your crew (see Setting up your brewery). Or bring everything in from a spreadsheet with Settings → Import.
  4. Put it on your phone's Home Screen, so it opens full screen with its own icon, like an app: on an iPhone, in Safari tap Share → Add to Home Screen; on Android, in Chrome tap ⋮ → Add to Home screen (or Install app). Sign in there by typing the emailed code (the email's link opens the browser instead). On an iPhone this also keeps the app's copy for no signal safe: Safari clears a website's saved data after about a week without a visit, but not an app on the Home Screen.

Everything has sensible defaults, so you can start using the tank board right away and set up the rest (brew sheet fields, package types, alerts) when you get to it.

Setting up your brewery

A new brewery's empty tank board offers Set up your brewery: one page of six short steps, in order. The step you're on is open; the rest show what's already there. Skip any step, come back to any step (Change or add), and change anything later in Settings.

  1. Units and time zone: how numbers are shown and typed. Looks right, or change them in Settings → Brewery.
  2. Your brewhouse: its name, turn size, and usual turns per batch. Two sites? Add each one. (Each one's kettle volumes and efficiency are in Settings → Equipment.)
  3. Your tanks, in groups: a kind, a name, a range, and a size. "FV" 1 to 8 makes FV1 to FV8; picking brite tanks switches the name to "BT". Names already there are left out, so adding the same group twice is harmless.
  4. Your beers: one per line, a name, then a comma and its style if you like ("Pale Ale, American Pale Ale"). Or import recipes from BeerXML on the Recipes page, which adds their beers too.
  5. What's in the tanks right now: for each tank with beer in it, the beer, its batch number (the next number if left blank), roughly when it was brewed, and its stage. Its size is the tank's size; correct anything on the batch's page. Nothing in them yet? They're all empty right now.
  6. Your crew: invite people in Settings → Team and permissions, or Later.

Until every step is done or skipped, the tank board shows Finish setting up with how many are done. "Looks right", "all empty", and "Later" are remembered on that phone or computer.

Just looking around? The demo on the sign-in page is a ready-made brewery of its own. Other ways to start on the empty board also loads a backup file, or fills the brewery with made-up sample data.

The demo

Try the demo on the sign-in screen opens a demo brewery of your own, with no email: two locations (a 15 bbl and a 30 bbl brewhouse, so batches of one, two, and three turns), about three months of made-up brewing ending today, and every part of the app in use: brew sheets, cellar logs, inventory, raw materials, the calendar, and menu boards.

The tank board

The first screen: every tank, grouped by location. A full tank shows its beer, batch number, how much is in it, its stage (with its color), and how many days it's been in that stage ("today" on its first day). An empty tank shows its status: Empty, Cleaning, or Maintenance, and Acid due (with why) when it needs an acid cycle before it's filled. Once your brewery logs its cleanings (caustic, sanitize, and so on, not only acid), an Empty tank with nothing logged since its last batch left says Not cleaned since #142 left.

Messages show in a bar at the top (tap × to close one), and questions like "Delete FV2?" in a box that says what the button does: Enter answers yes, Esc answers no.

A red bar means no signal: you're seeing the last saved copy, and changes are kept on the phone (see No signal). A green bar, "A new version of the app is ready", means the app was updated: tap Reload when you're not in the middle of typing.

Starting and moving batches

Start a batch

Tap an empty tank. Enter the batch number (it must be unique), the beer, the brew date, and the size. It starts Fermenting unless you choose another stage. A new batch gets the location's usual number of turns (see brewhouse settings).

Change the stage or move it

On the batch's page, tap Stage / transfer…. The stages are Fermenting, Dry hopping, Conditioning, Carbonating, Ready, and Packaged. When you pick a new stage, its start date is set to today (you can change it).

Every change is kept in the batch's history; a mistake is fixed by saving the right values, and the history shows both.

A batch's page

Tap a full tank. At the top: the stage, the tank, days in the stage, how much is in the tank, and the brew date. Then:

Log cellar work

Tap + Log cellar work: the date, an action (Check, Tank sample, Dry hop, Rouse, Crash, Harvest, Drain, Spund, Carbonate, Ready, Other), gravity, pH, temperature, a cellar change ("FR to 62"), and notes. Dry hop, Crash, Carbonate, and Ready offer to move the batch to the matching stage (Dry hopping, Conditioning, Carbonating, Ready) in the same step. Tap an entry to correct it (it's marked "edited") or delete it.

Additions

Tap + Addition for dry hops, fruit, spices and the like: what, how much, when, and the lot number. The name and lot suggestions come from your raw materials.

The brew-day sheet

On a batch's page, tap Brew-day sheet. It follows your paper sheet's order (choose the fields in Settings → Brew sheet).

Your permission level needs "Start batches and edit batch details" to fill it in; others can see it.

The printed brew sheet

On a batch's page, tap Print brew sheet (or Print on the brew-day sheet). It prints the same fields in the same order with a box for each turn, the targets (water as the formula, since the grist isn't weighed yet), the ingredients with a Lot column and blank rows, and whatever's already been entered. The usual set of fields fits on one Letter page.

The QR code opens that batch in the app (after signing in) to type in the numbers. With no signal, the link is printed instead.

Volumes and level checks

Every tank shows how much is in it. The app doesn't store that number: it works it out from every movement of beer, like a bank balance: the knockout into a fermenter, transfers, packaging, losses, and level checks. So a mistake is fixed with a new record, never by editing a number, and every barrel can be traced.

Check level (sight glass)

On a batch's page, tap Check level and type what the sight glass shows. If it's less than on record, say what the difference was: served (poured from this tank; the default for serving tanks), loss, or a correction. More than on record is noted as a correction. Later movements count from the latest check.

Packaging

On a batch's page, tap Package…. Enter how many of each package type you filled (set your types in Settings → Packages). As you type, the app shows the barrels, about how much is left in the tank, and what's left would fill ("about 20 × ½ bbl keg").

Splits and blends

On a batch's page, tap Split / blend…. Both make a new batch, so a tank always holds one batch and each part has its own stage, additions, and packaging.

Inventory: finished goods

Tap Inventory on the tank board. Kegs and cases on hand, worked out from records: packaging puts them in, removals and counts take them out.

Count, move, remove

Pars, restocking, draft lines, and on deck

Inventory: raw materials

Inventory → Raw materials. On hand by lot = received − used on batches + counts. Receiving, counting, ordering, and setting up items need their own permission, "Receive, count, and order raw materials" (separate from finished goods).

Planning calendar

Calendar on the tank board opens the plan: tanks down the side (and a Whole brewery row for things not tied to a tank, like a delivery), days across the top. A phone shows three days, a computer the whole week; ‹ and › move, Today comes back. A plan is never a record: nothing on the calendar changes a batch, a tank, or stock. Doing the work records it, as usual.

Alerts

The orange box on the tank board lists what needs attention: no gravity logged lately, too long in a stage, acid due, a beer under par, low on a raw material. The server checks every 15 minutes (and the app checks whenever it loads), so it's current even when nobody has the app open.

No signal (offline)

Opening the app shows the copy kept on your phone straight away, and the current data replaces it a moment later; if that takes more than a moment, a line under the header says "Updating… showing data from 10:42 AM". The app also keeps working with no signal. A red bar shows how old the data on screen is. Floor work is kept on the phone and sent, in order, when the signal returns: starting, moving, and packaging batches; tank status; cleanings; cellar log entries and additions; brew-day sheet values; level checks; splits and blends; counts, moves, and removals; raw material deliveries and counts.

Setup changes (beers, tanks, locations, settings) need a signal.

If a change can't be saved when it's sent (say, a coworker filled that tank first), it's listed in a "These changes couldn't be saved" box at the top, so nothing is lost silently. Changes arrive in the order they were made.

Who can do what

Each person has a level. An admin can change what a level includes, or adjust one person (Settings → Team and permissions). The usual levels:

PermissionViewerTaproomCellarBrewerHead brewerAdmin
Log readings and cellar work✓✓✓✓
Set a tank's status (cleaning, maintenance)✓✓✓✓
Log cleanings✓✓✓✓
Change stages and transfer beer✓✓✓✓
Package beer✓✓✓✓
Count and move finished goods✓✓✓✓✓
Receive, count, and order raw materials✓✓✓✓
Start batches and edit batch details✓✓✓
Beers and recipes✓✓
Beer menu details (description, ABV, IBU, prices, and the menu's lists)✓✓✓
Tanks and locations✓✓
Acid rules✓✓
Units, time zone, targets, and brew sheet fields✓✓
Rename the brewery✓
Download and load backups✓
Delete batches, beers, tanks, and locations✓
Plan the schedule (calendar and beer schedules)✓✓
Move items on the calendar and tick them done✓✓✓

Everyone in the brewery can see everything. Anything you can't do is hidden or greyed out, and the database checks it too.

The Taproom level is for a taproom manager: finished goods (counts, moves, pars, draft lines) and the beer menu, but nothing on the brewhouse side (batches, tanks, recipes, brew sheets, or raw materials).

Settings: Brewery

Settings: Equipment

Settings: Brew sheet

Settings: Beers

Recipes

Recipes have a page of their own: Open recipes in Settings → Beers, or Its recipes in a beer's form. The list is on the left (on a phone, first); the recipe you choose, or the one you're writing, is beside it (on a phone, instead of the list, with ← All recipes to go back).

Settings: Menu

What the taproom's menu is made of. Each beer fills these in under On the menu (Settings → Beers). Anyone with "Beer menu details" (Head brewer, Admin, and the Taproom level) sets them up.

Fonts and logos

Your own files for the menu boards, kept with the rest of the brewery's records (so they're in every backup).

Menu boards

A taproom's menu boards are made from its draft lines (Inventory) and each beer's menu details. A change to a line or a beer shows on the TV within about 15 seconds, so a board is never out of date. Anyone with "Count and move finished goods" (like the Taproom level) designs and runs the boards; everyone in the brewery can preview and print them.

Designing a board

Design… opens the board builder: the choices on one side and a live preview on the other (on a phone, the preview is on top). Switch the preview between TV, Phone (the public page), and Paper. Nothing changes on the TV until Save board.

A board's links

Settings: Packages

Settings: Cleaning

Acid cleaning: styles that always need an acid cycle afterward (a tank is flagged "Acid due" when a batch of one of them leaves it). Each tank can also need acid every few turns (set on the tank). Log an acid cycle from the tank's settings (tap an empty tank on the board, then Log cleaning…). Only acid steps count here: caustic, rinse, and sanitize don't reset the turns.

Recent cleanings: every tank's cleanings in one list, newest first, one line per tank and day (the steps, notes, and who). Tap one to open its tank. Download as a spreadsheet saves the whole log (date, tank, step, note, who), for an inspection or your own records.

Settings: Team and permissions

Settings: Alerts

Settings: Import

  1. Choose what's in it: tanks, beers, batches in tanks, cellar log entries, or a calendar plan (a row per item: the day, or rough words like "Fall" for a someday plan; what, like "Brew" or your own words; the tank, beer, who, and notes). (Import tanks and beers first, then batches, then cellar logs.)
  2. Paste cells copied from Excel or Google Sheets (with the header row), choose a CSV file, or paste a Google Sheets link (shared as "anyone with the link can view") and tap Read sheet.
  3. Check the columns (matched by name; change any) and the preview: each row is imported, already here (skipped), or a problem (and why). Numbers are read in your units; dates as 2026-10-07, 10/7/2026, or 10/7/26.
  4. Tap Import. Importing the same sheet again is safe: what's already here is skipped. New locations (for tanks) and beers (for batches) are made on the way.

Settings: Backup and export

Settings: API keys

A key lets an outside tool or an AI assistant read and write here as you, with some or all of your permissions (never more). Make one with a name, untick what it shouldn't do, choose how it changes things, and copy it: it's shown once. Revoke it any time; it stops working at once. Admins see every key in the brewery and when each was last used. Everything a key writes is marked on the record as "via" the key's name (in a batch's cellar log, additions, and history, and in Inventory's recent changes), and listed under What keys did lately. A key can also read and change settings (units, locations, tanks, beers, package types, alerts, the menu's lists, the brew sheet's fields), under the same permissions; never the team, permissions, keys, or backups. What the API can do: the API guide.

Settings: My account

Morning summary: each morning (6:00 in the brewery's time zone unless you pick another hour) you get today's jobs and alerts at this brewery, like "5 jobs, 2 alerts. First: Package: Helles". What's in it is your level's usual, or one you pick: Everything (today's jobs and all alerts), Cellar (today's jobs and the cellar's alerts: gravity, stalled, pH, acid, too long in a stage), Taproom (your own jobs and the taproom's alerts: under par, low on stock), Only my jobs, or Off. Turn on notifications on this device sends it to this phone or computer; on an iPhone, add the app to the Home Screen first and turn it on from there. If none of your devices takes it, it comes by email instead. A day with nothing on sends nothing. Signing out turns this device's notifications off. (The demo doesn't send any.)

The calendar in your phone: Make a calendar link (tick Only what I'm on for just yours) and subscribe to it: Add to Apple Calendar on an iPhone or Mac, or in Google Calendar on a computer, Other calendars → + → From URL. It shows the plan and the expected steps, read-only (change plans in Badger Brew Ops). The link is shown once; anyone with it can see the plan, so keep it to yourself. Turn off stops it at once. Google refreshes subscribed calendars only every several hours.

The email you're signed in with, switching breweries (if you're in more than one; the app remembers your choice), and Sign out. Signing out clears this phone's copy of the data; if there are changes not yet sent, the app warns you first.

Problem reports: when something goes wrong in the app (not a mistake you can fix, like a name that's already used), it sends a short report so it gets fixed: the error message, the screen you were on, the app's version, your browser, and who and which brewery. It never sends your records. With no signal, the report waits on the phone and goes later.