For those people who can’t tolerate cow’s milk there are now lots of good options; we started with Barista Almond Milk for our morning coffee, but I couldn’t work out why the word “Barista” increased the price from $2.00/l to $4.50/l for them to add 50 mg of cheap powder. The chemist in me wanted to experiment.
TL;DR
- Buy some potassium bicarbonate online
- Make a 0.5% solution in water
- 0.5g (1/8 teaspoon) potassium bicarbonate in 100ml water
- Label it and keep it next to the coffee machine
- Add 5ml (1 teaspoon) to each espresso shot before adding the non-barista alt-milk
What’s in Barista milks?
Australia’s Own
This the ingredient list of Australia’s Own Barista Almond Milk, which makes excellent tasting coffee, but costs $4.50 a litre, and it’s not even organic.
| Ingredient (in order of appearance) | Amount (approx.) | What it actually does in the milk | Why it matters for espresso / frothing | Clean-label verdict |
|---|---|---|---|---|
| Australian water | ~94–95 % | Base solvent | — | Clean |
| Australian almonds | 3.5 % | Flavour + tiny bit of fat/protein | Barely enough for body or foam | Clean |
| Sugar | 1.7 g / 100 ml | Sweetness + slight viscosity | Rounds out acidity, tiny foam help | Natural but added |
| Vegetable oil (canola or sunflower) | ~0.5–1 % | Adds fat so it froths and feels creamy | Main reason it steams like dairy | Processed filler |
| Maltodextrin (from corn) | ~1–2 % | Cheap thickener + bulking agent | Gives body, stops separation | Processed filler |
| Potassium citrate | <0.5 % | pH buffer (raises pH) | Stops curdling on light-roast shots | Clean / useful |
| Dipotassium phosphate | <0.5 % | Stronger pH buffer + protein stabiliser | The #1 reason it never curdles | Clean / useful |
| Gellan gum (E418) | <0.2 % | High-tech thickener | Creates stretchy, glossy micro-foam | Synthetic gum |
| Xanthan gum (E415) | <0.2 % | Thickener + stabiliser | Holds foam structure for minutes | Synthetic gum |
| Locust bean gum (E410) | <0.2 % | Synergistic thickener with xanthan | Improves texture, prevents whey-off | Natural-ish gum |
| Calcium carbonate | <0.2 % | Fortification + mild buffer | Marketing “calcium” claim | Clean |
| Sunflower lecithin | <0.2 % | Emulsifier | Keeps oil + water mixed, better foam | Natural-ish |
| Salt | <0.2 % | Flavour enhancer | Brings out nutty notes | Clean |
PureHarvest
The budget alternative that works almost as well is: PureHarvest Organic Almond (Original) with only 5 ingredients; and it’s ORGANIC! However, on occasion it will curdle if pushed. Read on to find out why.
| Ingredient (in order of appearance) | Amount (approx.) | What it actually does in the milk | Why it matters for espresso / frothing | Clean-label verdict |
|---|---|---|---|---|
| Filtered water | ~89 % | Base solvent | — | Clean |
| Certified Organic Whole Activated Almonds | 7 % | Flavour + natural fat/protein source | Provides base creaminess and some protein for minimal foam structure | Clean |
| Certified Organic Rice Syrup | ~1–2 % | Natural sweetener + mild thickener | Adds subtle sweetness and slight viscosity to round out acidity | Natural |
| Plant Calcium | <0.2 % | Fortification + mild mineral buffer | Adds calcium for nutrition; slight pH stability help | Clean |
| Sea Salt | <0.2 % | Flavour enhancer + electrolyte balance | Enhances nutty notes and helps stabilize emulsions slightly | Clean |
Honorable mention: Mandolé Orchard
It would be remiss to not mention Mandolé Orchard Fresh Australian Barista Almond Milk as a really high quality, simple option with no nasties (it’s not organic, but it is a family farm in Australia). It’s more expensive at ~$7/L, but it’s also bullet proof; they used Dipotassium phosphate as a buffer with cane sugar and sea salt. Too posh for me, but lovely.
Why does alternative milk curdle?
The proteins break down so that the fats separate out – it curdles just like cows milk when you add lemon juice. We’ve all been there – you order a coffee, and it arrives with the rising-falling storm in the glass, your heart sinks ‘cos you just know that you’re gonna end up with floating curds on top and a dark, bitter liquid underneath.
This could be due to:
- making the milk too acidic
- heating the milk too much
- something left over in the glass; let’s not go there!
A deep dive into the chemistry of coffee…
A quick note on pH:
- Acid is below pH 7 (and down to pH 1)
- Neutral is pH 7
- Alkali is above pH 7 (and up to pH 14)
- Each 1 point on the scale is 10 times more acidic or alkali
- A buffer tends to hold a pH at a certain level when acid or alkali is added (it mops up excesses, until it’s used up)
What pH is espresso?
Espresso typically has a pH of 5.0–5.8, most often around 5.2–5.5.
- Lighter roasts → more acidic → lower pH (closer to 5.0)
- Darker roasts → less acidic → higher pH (closer to 5.8) Acidity comes mainly from chlorogenic, citric, and malic acids.
At what pH does almond milk curdle? (at 60°C)
Non-barista almond milk (no added stabilisers) tends to begin to curdle below pH 5.0–5.2 at 60°C.
- The proteins (small amount of almond protein + emulsifiers) denature and aggregate when pH drops near their isoelectric point (~pH 4.5–5.0) and heat accelerates this.
- At 60°C, curdling threshold is roughly pH ≤ 5.1 for the shot, which translates to final drink pH ≤5.2–5.3 using unstabilised almond milk.
- Barista versions tolerate down to pH 4.6 due to “buffers” (often phosphates).
So: Your espresso shot needs to be > pH 5.1 to avoid curdling at 60°C.
What levers can I play with to stop curdling?
- Limit the amount of coffee – consider pulling a ristretto, especially if it’s a double or 3/4 latte
- Use a darker roast
- Don’t heat the milk too much: 55–60°C (not hotter)
- Add an alkali to the coffee shot BEFORE adding the milk – a *tiny* amount to balance pH
- Add a tiny bit of honey to protect the proteins
- Pour the milk in FASTER at first, not slower
- Slow pour gives the first milk longer contact with pure espresso acid leading to micro-curdles that start the cascade
How much potassium bicarbonate (KHCO₃) to add?
Goal: Raise 20 g espresso from ~pH 5.0 to ~pH 5.4–5.6 (safe zone)
Potassium bicarbonate is a strong buffer used in plant milks:
- 1 g KHCO₃ in 1 L water raises pH by ~2.5 units (from 5.0 → 7.5)
- But espresso is buffered by its own acids so the impact is muted
We need 25 to 30 mg potassium bicarbonate (use a 0.01 g precision scale).
- Tip: Pre-make a 0.5% solution (0.5 g in 100 ml water) → use 5 ml of solution per 20 g shot.
Practical Dosing
You want 25 mg = 0.025 g, which is pretty much impossible without a micro-spoon.
- Make a 0.5% solution
- 0.5 g powder dissolved in 100 ml water
- 0.5g is 1/8 teaspoon
- 0.5g is a small pinch between thumb and index finger
- 0.5 g powder dissolved in 100 ml water
- Add 5ml per shot
- just under a teaspoon of liquid
- a teaspoon is 5ml
- just under a teaspoon of liquid
Label the bottle “Espresso Buffer – 5 ml per shot” and leave it beside the machine.
What if I don’t have potassium bicarbonate in the cupboard?
Order some on the internet – it’s pretty common for making bread and wine. In the meantime you can just use Baking Soda (note: that is not Baking Powder) – just use half as much.
| Alternative | Dose per 20 g espresso | pH Lift | Taste Impact | Notes |
|---|---|---|---|---|
| 0. Potassium bicarbonate (KHCO₃) | 25 mg | +0.3 to +0.5 | Neutral → faint mineral-water creaminess | Gentlest true buffer |
| 1. Sodium bicarbonate (baking soda, NaHCO₃) | 15–25 mg | +0.3 to +0.6 | Very mild salty → neutral at low dose | Best overall substitute |
| 2. Dipotassium phosphate (DKP, K₂HPO₄) | 25–35 mg | +0.4 to +0.7 | Creamy, slightly sweet | Closest to barista milk buffers |
| 3. Sodium citrate | 30–40 mg | +0.3 to +0.5 | Tangy → neutral | Slightly more acidic buffer |
Why add Potassium bicarb to the espresso?
Adding it to the espresso directly (rather than the milk) neutralises the espresso, so that when you start to pour the milk in it is already a good pH.
If you add the bicarb to the milk it will be diluted, and very little will be available to neutralise the espresso as you gradually add the milk – so the milk will start to curdle before you have managed to add it all. The slower you pour, the worse it will be.
Will it affect the taste?
Yes, a little bit, but it’s a trade off. Over 50 mg in 20 g espresso will taste soapy/bitter, but 25 mg should just mimic barista milk.
If you have bought an expensive light roast Ethiopian Yirgacheffe then some of the acidity will be dampened. Wash your mouth out with soap you philistine! Oh…
Bonus Tip – Latte Art Without the Junk
If you actually care about pouring rosettes or hearts, the milk itself is now the limiting factor. Your 7 % organic almond milk steams okay, but its foam still collapses quickly because it has almost no natural emulsifiers.
When you open a fresh 1-litre carton:
- add 1.4 g of sunflower lecithin powder (≈ one slightly heaped ⅛ teaspoon) straight through the spout.
- Close the cap and shake the carton hard for 10–12 seconds (like mixing paint).
Do it once per carton and you’re done:
- Glossy, stretchy micro-foam that holds latte art for 2–3 minutes
- Zero curdling (your KHCO₃ buffer still handles that)
- Zero taste change at this dose
Hard shaking a cold carton will not curdle the milk – curdling needs low pH + heat, and you have neither here. Lecithin just organises the fat you already have into stable, elastic bubbles when you steam it later.
Final Thoughts
If you’re a coffee nerd you probably have lots of toys already, so the opportunity to buy a set of measuring spoons down to 1/16 of a teaspoon, or a set of 0.01g drug scales won’t be missed!
Try it and report back in the comments – what’s your go-to roast?
