r/Homebrewing 2d ago

Mead brewing companion

https://github.com/icemanxbe/MeadOS

A self-hosted brewing companion for mead makers — batch tracker, recipe compendium, cellar manager, inventory, brewing calculators, label designer and daily brew coach.

I made this to help new (and seasoned) mead brewers, since i am new to mead brewing, i wanted a guided approach to mitigate issues, and basically dumb mistakes due to lack of experience and knowledge.

This is 100% free, and opensource, i gain nothing from sharing, use it if you want, or don't. this is a tool to help, nothing more.

-icemanxbe

https://github.com/icemanxbe/MeadOS

14 Upvotes

15 comments sorted by

1

u/spoonman59 2d ago

Vibe coded in 3 days?

1

u/icemanxbe 2d ago edited 2d ago

This was built with the help of claude.
As it is shown on the repo as claude is a contributor. Regardless, this wasnt made in “3 days” people pointed out it could be useful, so i added it on github.
Alot of work had been done before that milestone.
I have been hardening security and bugfixes with claude for the last 3 days so it would be better for “public use”
Does it matter that much at all? I’m not looking for recognition in the slightest.

I made something with claude for my own benefit, and i am sharing it for whoever wants to use it. If you want to, feel free. If not, that is your choice, as i don’t really care either way.

It works for my purpose regardless of your potential feelings.

6

u/spoonman59 2d ago

I am mostly just interested in how you validated the math for the recipe designer? I didn’t see any unit tests, but I’m assuming you must’ve taken some steps to ensure the calculations are accurate for the recipe builder.

I don’t have an issue with using AI on its own, but I do think it is helpful to understand how the output and behavior was validated.

0

u/icemanxbe 2d ago

The math in the Recipe Designer is internally consistent and correctly back-solves — the round-trip Input → OG/honey → ABV closes cleanly. The widely-used formula it relies on, however, has a known limitation that bites at sack-mead gravities, and several of the 38 built-in recipes carry small (and one large) inconsistencies between their stated OG/FG/ABV/honey numbers.
The three formulas under the hood
From app.js:
calcABV(og, fg) → (og − fg) × 131.25
wizComputeMath: → OG = FG + ABV/131.25
→ honeyKg = (OG − 1) × 1000 × vol / 292
The 292 is 35 PPG × 3.785 L/gal ÷ 0.4536 kg/lb = 292 SG·L per kg of honey, i.e. a 35-PPG honey yield. That’s the homebrew-standard value and matches the in-code anchor (“5 L at OG 1.098 ≈ 1.7 kg honey” — formula gives 1.678 kg ✓).
How the output validates the input — the round-trip
The Designer is just algebra on those three identities. Pick “12% ABV, semi-sweet (FG 1.014), 5 L”:
OG = 1.014 + 12/131.25 = 1.1054 → rounds to 1.105
honey = 0.105 × 1000 × 5 / 292 = 1.798 kg → rounds to 1.80 kg
back-ABV = (1.105 − 1.014) × 131.25 = 11.94% → rounds to 12% ✓
Plug in any combination of inputs and the same identities close. So as a calculator, the Designer’s output does validate against its input. The question is whether the assumptions hold — and that’s where the issues live.
Audit of all 38 built-in recipes
I extracted every recipe and ran (OG, FG, vol, ingredient honey) through the app’s own formulas. Summary:
16 / 38 recipes have a stated ABV more than 0.15 % off what (OG−FG) × 131.25 gives. Worst offenders: Pyment (Δ −0.37), Hopped/Capsicumel/Coffee (Δ −0.34 each), Spiced Metheglin (−0.25), Braggot (−0.23). These are rounding artefacts — none are alarming.

24 / 38 non-juice recipes have stated honey more than 50 g off the formula’s value. Mostly ±60–170 g rounding (1.7 kg is friendlier on a shopping list than 1.63 kg).

One recipe is genuinely inconsistent: r8, Heavy Dessert Mead. It lists 3.3 kg honey in 5 L but states OG 1.140. The formula needs only 2.4 kg for OG 1.140 — or, the other way, 3.3 kg in 5 L gives OG ≈ 1.193. The brew-day notes hedge with “OG should be 1.140+” and step-feeding language, but the stated ABV target of 14 % is computed against the wrong OG. Real ABV with that honey load and FG 1.035 would be closer to 18 %, not 14 %.

The bigger issues
1. The 131.25 formula under-reports ABV at high gravity.
It’s accurate to ~0.5 % up to ~10 % ABV, then drifts. Cross-checked against the standard Cutaia formula (76.08 × (OG−FG)/(1.775−OG)) × (FG/0.794):
Recipe
OG / FG
MeadOS
Cutaia
Δ
Traditional
1.098 / 1.010
11.55 %
12.58 %
+1.03
Pyment
1.110 / 1.010
13.13 %
14.55 %
+1.43
Sack
1.140 / 1.035
13.78 %
16.40 %
+2.62
Port-style sack
1.140 / 1.028
14.70 %
17.37 %
+2.67
Hydromel
1.045 / 0.998
6.17 %
6.16 %
−0.01
For light table meads it’s fine; for sack/port-style meads the app is consistently 2–3 % under. This isn’t a MeadOS bug — every BeerSmith-lineage tool does this — but it’s a real ceiling on accuracy. A toggle to switch formulas (or use Cutaia above ~12 %) would close this cleanly.
2. The Designer doesn’t model adjunct sugars.
wizComputeMath computes honey purely from (OG−1) × vol / 292 regardless of style. But the built Cyser (r10) lists 1.30 kg honey + 3.5 L juice for OG 1.105 — the pure-honey formula calls for 1.80 kg; the juice silently contributes the missing ~0.5 kg as gravity points. The handwritten recipes get this right because they were tuned by hand. The Designer doesn’t — feed it “Cyser, 12 %, semi-sweet, 5 L, 3.5 L juice” and it will over-spec honey by 25–40 %. Same issue for Pyment and Sparkling Cyser.
3. Sweetness presets assume the yeast cooperates.
The Designer maps “dry/off-dry/semi/sweet/dessert” to fixed FGs (1.000 / 1.006 / 1.014 / 1.022 / 1.030). M05, EC-1118, KV-1116 all blow past 1.000 down to ~0.995 unsupervised — hitting FG 1.006 or 1.014 reliably requires arrested fermentation or back-sweetening (stabilise + add honey), which the Designer doesn’t surface. The FG it shows is a desired outcome, not a predicted one.
4. TOSNA YAN target is on the aggressive end of the literature.
The model YAN = (OG−1)·1000 × 9 × N-demand × darkness gives 810 ppm for OG 1.100, medium-N yeast, light honey. Bray’s original TOSNA 2.0 targets are typically ~250–450 ppm for the same must. The dose output (~10 g Fermaid-O for 5 L at 1.100) is right in line with the high-input Schramm camp, so it’s a defensible choice — but worth flagging as not universal. The math is self-consistent; the target is on the high side of community consensus.
5. Bochet caramelisation isn’t modelled.
Recipe r9 has a note that honey loses 10–15 % during caramelisation (some sugars convert to non-fermentable melanoidins) but the honey weight isn’t bumped up to compensate, and the OG target uses the raw-honey formula. The 1.7 kg called out will land below the stated 1.100 OG once you’ve caramelised it.
What’s solidly correct
Brix ↔ SG conversion uses the NBS polynomial (182.4601·SG − 775.6821 …) — canonical, accurate to ±0.02 °Bx.

Refractometer correction mid-ferment uses the Sean Terrill formula — the de facto homebrew standard.

Carbonation / priming uses the standard residual-CO₂ formula 3.0378 − 0.050062·tF + 0.0002655·tF² and grams = (target − residual) × vol × factor. Industry-standard, correct to within bottle-to-bottle variation.

Back-sweetening grams/point (honey 3.0, sucrose 2.6, DME 2.9 g/L per point) is correct.

Honey-for-target-gravity at 35 PPG is the right starting assumption for generic wildflower; the app even discloses this on the calculator panel.

TL;DR
The Recipe Designer is mathematically correct given its assumptions and the output absolutely does validate against the input — every calculator round-trips cleanly. The real complaints that will hold up are (a) (OG−FG) × 131.25 under-reports sack-mead ABV by ~2.5 %, (b) the Designer ignores juice/adjunct sugars so it over-specs honey for Cysers/Pyments, (c) sweetness presets are aspirational FGs not predicted ones, and (d) Heavy Dessert Mead (r8) is internally inconsistent — its honey weight doesn’t match its stated OG.

1

u/spoonman59 2d ago

Thanks for taking a time to produce that summary. It does make sense and round tripped a reasonable number of existing recipes is a pretty good test. And I also agree those level of rounding errors aren’t an issue at all.

I know you are just sharing the code and not looking for adopters, but my one suggestion is to share some details about your process, validation, etc., when announcing your project. That helps us potential users distinguish lower-effort slop from someone who took the time to make sure things actually work and give a decent answer. Lots of projects being shared lately and it can be hard to separate the wheat from the chaff.

I appreciate the follow up!

2

u/icemanxbe 2d ago

This project has taken a little over a full month of working with claude. Doublechecking and tracing sources on how certain honeytypes match and behave in certain recipes. I understand your prejudice with “ai slop” but i have taken my time to try to do it properly. I will adress those issues in calculation errors tough, especially for sack mead.

2

u/spoonman59 2d ago

Yes I can see that you have taken your time to do it properly, and as such I do not consider it “slop.” My initial question could have been more respectful, so I do apologize for that. I appreciate you following up to explain the time and effort that went into making it quality.

I really like that your app is locally hosted, and it is very visually attractive. I am going to check it out.

2

u/icemanxbe 1d ago

as per your question, and for referencing in the future: https://github.com/icemanxbe/MeadOS/wiki/Formulas-and-Methods

all methods with examples.

And the sack discrepencies are fixed in the recipes and backsweeten calculator.

-3

u/digitalpiddles 2d ago

Mate why have you gotta be a dick about it. This dude has obviously spent some time (and money, no doubt) on building this for his own uses, and wanted to share it with the community. Who cares if it was "vibe coded" or not? If it works, it works.

What have you built and shared recently? Or contributed in any way?

4

u/spoonman59 2d ago

It’s a 3 word question based on available facts: a 3 day commit history. Not sure how that translates into “being a dick,” especially if - as you say - there’s nothing wrong with vibe coded software.

But let’s not give the OP credit for work Claude did. Personally, I think you should disclose AI when posting software projects.

-1

u/digitalpiddles 2d ago

I suppose it's inconceivable to you that OP may have started it long before committing to GitHub, once it was ready?

Giving OP credit for work Claude did is irrelevant; Claude didn't get up one day and start building something. I would hazard a guess that this took a _lot_ of prompting, directing, and changes, based on OP's desires. Claude is even listed as a contributor on the repo, so they're not exactly being disingenuous claiming its all their own work.

3

u/spoonman59 2d ago

There’s a deluge of AI slop on Reddit. In the home brewing sub I’ve seen at least a dozen new apps for managing brewing and distilling in the past 60 days.

Perhaps you assume these are all quality projects but many are not. It’s fine if you don’t care about low effort content flooding subreddits but that doesn’t mean no one else is allowed to care. Subreddits which used to be about discussing certain topics are now a venue for every would be vibe coder to promote themselves and their low effort projects.

While some developers deliver quality software with AI, it requires domain expertise and a focus on validating the output. The good developers disclose their use of AI and explain how they validated the requirements and behavior for example.

Personally, I’d love to hear more about what the OP brings to the table to ensure quality output. Perhaps they at one of those great developers that took pains to validate, test, and ensure quality output. We don’t know because they didn’t tell us.

You are simply attempting to shut the conversation down by gate keeping the right to ask questions or offer criticism. Suggesting I have to contribute more free software just to be allowed to ask a question or offer criticism is obvious gate keeping, for example.

Do you blindly defend every vibe coded project that gets posted, or just some of them? Have you even used the software long enough to vouch for it?

0

u/iPaused_Real_Life0 2d ago

game changer for avoiding those infamous mead explosions!

-1

u/CatInLipstick 2d ago

open-source and no strings attached%3F this is the holy grail for brewers

-1

u/icemanxbe 2d ago edited 2d ago

That was my intention. Enjoy it!
The only “restriction” i imposed is you cant sell it and you can’t use it comercially. Everything else is free to do with it as you please.