Releases: werb-dev/werb
Release list
Werb v0.5.0
Second feedback-driven release. A third batch of forum testers (Eric974,
Stanovitch, and a returning Arwen) pushed on editor ergonomics, ingredient
search, and water chemistry; their notes were triaged into issues
#31–#38 plus a reopened
#7 and worked through together.
Headline: the recipe editor gains BeerSmith-style retargeting (scale to a
volume, solve to an OG or IBU, ± steppers), every recipe now shows grain-bill
percentages and a BU:GU balance gauge, and water chemistry can finally work
backwards — pick a target profile and let Werb suggest the salts.
Added
- BU:GU gauge + grain-bill percentages. Every fermentable row shows its
share of the bill by mass (read view + editor); the targets strip gains a
sixth tile, BU:GU (IBU ÷ gravity units), with a soft in-style range derived
from the style's IBU and OG ranges. Closes
#32. - Editor retargeting tools. A toolbar under the live banner: Scale to…
a new batch volume (proportional, opt-in — not a side effect of editing the
volume field), Solve to OG… (scales the whole grain bill), and Solve
to IBU… (scales the hops). Plus ± steppers on fermentable and hop amounts.
Closes #33. - Water salt suggestion (inverse calc). Pick a target profile and hit
Suggest additions: a non-negative least-squares solver over the salt→ion
matrix proposes gypsum / CaCl₂ / Epsom / table salt / baking soda, fills the
editable salt fields, and the existing forward strip shows how close the
match lands. Shares theFRACmodel with the forward calc so the two never
disagree. Closes #10. - Personal per-ingredient prices. Click any price in the cost panel to set
what you actually paid (€/kg grain, €/g hop, €/pack yeast). Overrides bypass
the global inflation coefficient and are flagged "your price"; stored
per-install, never written into the recipe (BeerJSON stays standard). Seeds
the future inventory module. Closes
#2. - Unsaved-changes guard. Leaving the editor — back button, or closing the
tab/window — now warns when the draft has unsaved edits.
Closes #35. - Out-of-sequence brew-step guard. Starting a step while earlier ones are
still pending asks for confirmation (soft — real brew days skip and reorder).
Closes #37.
Changed
- Ingredient picker ordering (#7,
reopened from v0.4). An empty query now lists alphabetically instead of in
catalog order (no more surprise "Pilsner malt" default); a prefix on the
visible name outranks a prefix on a hidden alias; and when an alias drove the
match the picker shows it (e.g. "Honey — miel") so the ordering reads sensibly. - Category-scoped fermentable search — setting a row's type to "sugar"
lists only sugars, etc. Closes
#34. - Richer bundled examples + refreshed README screenshots. Added a flagship
"West Coast IPA" sample that exercises most of the app end-to-end (stepped
mash, full boil + dry-hop schedule, salt + fining miscellaneous additions, a
sugar adjunct, and the complete BJCP envelope) and an "Oatmeal Stout" for
dark-colour contrast; backfilled full BJCP style ranges onto the existing
four so every sample now renders the in-style gauges. Regenerated the README
screenshots against the flagship so they show BU:GU, the in-style gauges, and
grain-bill percentages. A new test asserts every bundled example is valid
BeerJSON (the app silently skips invalid samples, so this guards the "Import
samples" path).
Fixed
- Style-fit gauges agree between the recipe view and the editor banner.
Both judge fit on the computed recipe (grain bill + hops), so the level
bars sit at the same spot whether you're viewing or editing. The read view
used to feed the gauge the file's claimed OG/FG/IBU/etc. while the editor
used the live compute, so the needles jumped when you toggled edit mode. The
big numbers still show the claimed values with the ≈computed sanity line +
divergence warning; only the fit gauge follows the computed reality.
Regression-guarded by an e2e that asserts the gauges are identical across
both screens. - macOS "Werb is damaged" on Apple Silicon
(#31). Documented the
quarantine workaround (xattr/ right-click → Open) and the no-install PWA
in the README and release notes. Proper Developer ID signing + notarization
is tracked for a future release.
Deferred
Werb v0.4.0
A feedback-driven release. Two batches of forum tester input got triaged into docs/ROADMAP.md and worked through in order: twelve issues closed across Phases 1–3.
The recipe editor stops being a write-only screen. Targets update live, hopstand finally bitters something sensible, sub-boil hops have a real kinetic model behind them, and ingredient pickers work in French.
Headlines
- Live OG / FG / IBU / ABV / Color banner sticky at the top of the recipe editor — no more toggling between edit and view to see how a grain-bill tweak lands (#6).
- Whirlpool / hopstand is a real hop USE with a temperature input. The IBU calc routes sub-boil additions to a Malowicki kinetic path (two-step Arrhenius), calibrated against Tinseth at 100 °C × 60 min so boil-hop behavior doesn't drift (#16).
- Editor ingredient picker rebuilt — tiered matching (name prefix > name contains > secondary fields), no more 10-item cap, no more clipping by section cards on phones (#7).
- French aliases on the picker — "blé" finds Wheat malts, "gypse" finds gypsum, "mousse d'Irlande" finds Irish moss. Canonical names stay verbatim per SPEC §i18n (#14).
- BIAB persists across navigation, and the Quick start wizard auto-flips
mash_modewhen you pick the BIAB layout. Unused vessel sections hide automatically (#3, #4, #5). - Mash thickness (L/kg) is now an equipment-level default (#15).
- Discoverability sweep — "View in Journal →" CTA after completing a brew, Library onboarding hints at where recipes live + GitHub sync, Export button names its formats inline (#13, #17, #18).
- Water chemistry: Burton/Munich source-vs-target preset now reports a real match (#11).
- Yeast pitch message names the actual missing input (fermentables / batch size) and derives OG from the grain bill (#8).
- Behavioural Playwright smoke suite layered onto CI on top of the existing screenshot capture step.
Full notes: CHANGELOG.md.
Which file do I download?
| Platform | Bundle |
|---|---|
| macOS (Apple Silicon, M1 / M2 / M3 / M4) | Werb_0.4.0_aarch64.dmg |
| Linux (Debian / Ubuntu) | Werb_0.4.0_amd64.deb |
| Linux (Fedora / RHEL) | Werb-0.4.0-1.x86_64.rpm |
| Linux (other distros, portable) | Werb_0.4.0_amd64.AppImage |
| Windows | Werb_0.4.0_x64-setup.exe |
werb CLI (macOS Apple Silicon) |
werb-aarch64-apple-darwin.tar.gz |
werb CLI (macOS Intel) |
werb-x86_64-apple-darwin.tar.gz |
werb CLI (Linux, fully static) |
werb-x86_64-unknown-linux-musl.tar.gz |
werb CLI (Windows) |
werb-x86_64-pc-windows-msvc.zip |
Or skip the install and run the PWA.
Known gaps
- #19 — Import errors on some standard BeerJSON / BeerXML files. Blocked on reproducer files; please share a failing sample if you've hit one.
- #27 — Full SMPH IBU model. Malowicki kinetics ship in this release (the highest-leverage piece); the rest is gated on extending BeerJSON upstream with the SMPH inputs.
- Phase 4 features still open — PDF brew sheet, inventory module, per-ingredient pricing, water source-profile loading + salt-suggestion solver. See the ROADMAP.
Werb v0.3.0
Werb v0.3.0 — brewing math + maintainability release
Werb v0.2.0
Werb v0.1.0
See CHANGELOG for the full feature list.
Downloads below — pick the one that matches your OS. macOS builds are Apple Silicon only (aarch64); Intel Mac users can run the web PWA for now.
Verify your download
| Platform | Suggested asset |
|---|---|
| macOS (Apple Silicon) | Werb_0.1.0_aarch64.dmg |
| Windows | Werb_0.1.0_x64-setup.exe (NSIS) or Werb_0.1.0_x64_en-US.msi |
| Linux (Debian/Ubuntu) | Werb_0.1.0_amd64.deb |
| Linux (any distro) | Werb_0.1.0_amd64.AppImage |
| Linux (Fedora/RHEL) | Werb-0.1.0-1.x86_64.rpm |
| Anything else | The web PWA — full feature parity, installable to your home screen |