Migrating from Brewfather
Step-by-step guide to importing your brewing data from Brewfather into BrewForge
BrewForge can import your entire Brewfather library — batches, recipes, equipment and process profiles, and inventory — via a guided import wizard. This guide walks you through every step.
Brewfather Migration Discount
If you have remaining time on your Brewfather subscription (purchased after March 31, 2025), you can get a proportional discount on BrewForge. Upload your Brewfather/Paddle receipt in Settings → Subscription to submit a migration request. The discount is based on your remaining subscription time and stacks with other available promotions.
Before You Start
- BrewForge account — sign up if you haven't already
- Free tier limits — The Free plan has a limited number of brews. If you have a large batch history, consider upgrading before importing
- Brewfather export file — You'll generate this in Step 1
Step 1: Export Your Data from Brewfather
- Open Brewfather and go to Settings
- Scroll to the Data section
- Click Export All
- Choose JSON format
- Save the downloaded file
This file contains all your batches, recipes, profiles, and inventory in a single JSON export.
Make sure you use Export All, not a single-recipe export. The import wizard only accepts the full Brewfather JSON export.
Step 2: Start the Import Wizard
- In BrewForge, go to Settings → Brewfather Import
- Drag and drop your JSON file onto the upload area, or click Browse to select it
- BrewForge validates the file — if you see an error, double-check that you used "Export All" from Brewfather
Step 3: Select What to Import
The wizard shows four tabs. You can pick exactly what to bring over.
Batches
All your brew sessions, showing batch number, recipe name, and status (Planning, Brewing, Fermenting, Conditioning, Completed, Archived).
Use the search bar to find specific batches, or Select All / Deselect All to manage your selection quickly.
Recipes
Standalone recipes that aren't attached to a batch. Each shows style, estimated ABV, and IBU.
Recipes are imported with Idea status — you can promote them to a full brew later.
Profiles
Equipment, mash, fermentation, and water profiles from your Brewfather account.
Smart Auto-Selection
When you select batches or recipes, BrewForge automatically selects the profiles they use. The "Used by selection" filter lets you see only profiles referenced by your current selection. Each profile shows a badge indicating how many batches/recipes reference it (e.g., "3 batches, 1 recipe").
You can still manually add or remove profiles from the selection.
Inventory
Fermentables, hops, yeasts, and miscellaneous items with their current stock quantities.
Selecting batches or recipes automatically selects the ingredients they use, just like profiles. The "Used by selection" filter helps you focus on what matters.
Recipe-only ingredients — items that appear in your recipes but aren't tracked in your Brewfather inventory — are shown with a dashed border and a purple "Recipe only" badge. These are imported as ingredient definitions without stock quantities.
Step 4: Configure Import Options
Batch Options
- Preserve original batch numbers — keeps your Brewfather batch numbering intact
- Skip duplicate batch numbers — prevents re-importing batches you've already brought over in a previous import
Recipe Options
- Skip recipes with same name — avoids duplicates if you run the import again
- All imported recipes start with Idea status
Profile Options
- Skip profiles with same name — prevents duplicate equipment, mash, fermentation, and water profiles
Inventory Options
Choose how to handle ingredients that may already exist in BrewForge:
| Mode | What it does | Best for |
|---|---|---|
| Review matches manually | Review each ingredient match before importing | First-time import when you already have BrewForge inventory |
| Auto-merge with existing | Automatically merge by name, combining quantities | Quick import when you trust name matching |
| Skip duplicates | Keep existing items, skip anything with the same name | Re-importing after a partial import |
| Import as new | Create new entries for everything | Clean start with no existing inventory |
Review matches manually is recommended for your first import. It gives you full control over how each Brewfather ingredient maps to your existing BrewForge inventory.
Step 5: Reconcile Inventory
This step only appears if you selected Review matches manually AND chose inventory items to import.
For each ingredient, choose how to handle it:
- Create as new — add as a new inventory item (the default)
- Merge with inventory — combine with an existing inventory item, adding stock quantities together
- Link to My Ingredients — connect to an ingredient definition you already have
- Link to a Package — connect to an ingredient from a community or custom ingredient package
BrewForge auto-suggests matches by exact name. Items with a match are pre-filled — review and adjust as needed. Each suggestion shows the current stock quantity so you can verify you're merging the right items.
Step 6: Import
The wizard imports your data in phases, showing a progress bar:
- Profiles — equipment, mash, fermentation, and water profiles
- Inventory — ingredient stock items
- Ingredients — recipe-only ingredient definitions (created in a "Brewfather Import" package)
- Batches — your brew sessions (imported in chunks of 10)
- Recipes — standalone recipes
Don't close your browser tab during import. Large libraries with many batches may take a minute or two to process.
Step 7: Review Results
The final screen shows a summary of everything that was imported:
- Count of imported batches, profiles, and inventory items
- Count of skipped items (duplicates)
- Error details if any items failed to import
Click View Brews to see your imported batch history, or Back to Settings to return to the settings page.
Understanding Imported Data
Import Overrides: How Calculated Values Work
Imported values use Brewfather's calculations
When you import a batch, BrewForge stores Brewfather's calculated recipe values (OG, FG, ABV, IBU, color, attenuation, water volumes, mash pH) as import overrides. These values were computed by Brewfather's calculation engine — not BrewForge's.
What this means in practice:
- Imported recipe stats reflect Brewfather's formulas and settings, not BrewForge's
- A small blue import icon appears next to these values, indicating they came from Brewfather
- These override values are preserved as-is for historical accuracy
- Actual brew-day measurements (OG/FG readings you recorded in Brewfather) are imported separately and take priority over the calculated values
Switching to BrewForge Calculations
When you try to edit an imported recipe, BrewForge will prompt you with two options:
- Create New Version — creates a versioned copy of the brew with BrewForge calculations. The original imported version is preserved in the version history, so you can always refer back to the Brewfather values.
- Transform to Native Recipe — removes import overrides in-place, letting BrewForge recalculate all values (OG, FG, ABV, IBU, color, attenuation, water volumes, mash pH) using its own engine. This replaces the Brewfather values permanently.
The same prompt appears when you try to change the equipment profile on an imported brew.
What Maps Where
| Brewfather | BrewForge | Notes |
|---|---|---|
| Batches | Brews | Tagged "Imported". Status is mapped (Brewing → Brew Day, Fermenting → Fermentation, etc.) |
| Recipes | Brews (Idea status) | Available in your recipe library, not attached to a batch |
| Equipment profiles | Equipment profiles | Marked as imported. Automatically linked to brews that reference them |
| Mash profiles | Mash profiles | Marked as imported |
| Fermentation profiles | Fermentation profiles | Marked as imported |
| Water profiles | Water profiles | Marked as imported |
| Inventory | Inventory | Stock quantities preserved. Optionally merged with existing items |
| Recipe-only ingredients | Package ingredients | Created in a "Brewfather Import" package with zero stock |
Profile and Ingredient Linking
- Profiles imported with batches: BrewForge automatically links each brew to its imported equipment profile using Brewfather's internal IDs
- Batches imported without profiles: BrewForge attempts to match equipment profiles by name against your existing profiles. If no match is found, the brew is created without a profile link — you can assign one manually later
- Recipe ingredients: Each ingredient in an imported recipe is linked to a package ingredient — either from your inventory import, or auto-created in a "Brewfather Import" ingredient package
Troubleshooting
| Problem | Solution |
|---|---|
| "Invalid file format" error | Make sure you used Brewfather's Export All (JSON), not a single-recipe export or BeerXML export |
| Can't import all batches | Free tier has a brew limit — upgrade your plan before importing |
| Missing equipment profiles | If you didn't select profiles for import, BrewForge tries to match by name. Import profiles first, then batches for best results |
| Duplicate batches after re-import | Enable Skip duplicate batch numbers in the import options (Step 4) |
| Recipe values differ from Brewfather | Imported values use Brewfather's calculations. Edit the recipe and choose "Transform to Native Recipe" to recalculate with BrewForge's engine, or "Create New Version" to keep the original |
| Import seems stuck | Large libraries import batches in chunks of 10 — this can take a couple of minutes. Don't close the tab |