Learn how lactose, proteins and fats affect milk steaming, foam quality and coffee flavor. Discover how to choose the best milk for cappuccinos and lattes.
Previous post
Milk for Cappuccino: The Complete Guide to Foam, Sweetness and Texture
Date
Ten years ago, ordering a flat white with plant milk felt like an apology. Today it's half the bar. But between oat milk that steams like a dream and almond milk that splits in the cup there's an enormous gap — and that gap isn't about the brand. It's chemistry.
Once you understand what's happening inside the pitcher, you stop testing plant milks at random and start choosing them the way you choose a grinder or a roast level.
Cow's milk comes with a near-perfect foaming system built in. Its proteins — caseins and whey proteins — unfold under heat and air, migrate to the surface of every bubble and form an elastic film that holds it in place. Fat delivers body and mouthfeel, and lactose provides sweetness without any added sugar.
Plant milks have none of that by default. They're engineered emulsions: water, a milled and filtered raw material, and — in barista versions — added fat, emulsifiers and buffering salts that correct what nature left out. When a plant milk foams well, it's because someone designed it to.
Three factors govern texture:
Oat (≈1–1.3 g protein/100 ml in barista versions, ~3 g added fat). Its trick isn't protein — it's enzymatic starch hydrolysis. During production, amylases break oat starch down into maltose and dextrins. The result: natural sweetness with no added sugar, a viscosity close to whole milk, and dense, glossy microfoam. Barista formulations also add vegetable oil and salts such as dipotassium phosphate, which buffer the mixture and nudge the pH upward.
Soy (≈3–3.5 g protein/100 ml). The only one playing in dairy's league on protein content. Its globulins (glycinin and β-conglycinin) do an excellent job stabilising bubbles: well-steamed soy gives a firm, full-bodied, persistent foam. Foam isn't its problem. Acid is.
Almond (≈0.5–1 g protein/100 ml). Little protein, little natural fat once diluted, plenty of suspended solids. It foams with large bubbles that deflate fast and tends to separate into phases. Barista versions compensate with emulsifiers and added fat, but it remains the hardest to master. In exchange, it brings a toasted, nutty profile that suits certain coffees beautifully.
It isn't just marketing. Oat wins for four concrete reasons:
If you want a single plant milk for the whole menu, this is it.
Here's the phenomenon that causes the most headaches on bar: you pull the espresso, add the plant milk, and get lumps, a separated layer or a grainy surface.
The milk isn't "off". Those are precipitated proteins.
Plant proteins have an isoelectric point: the pH at which their net charge is zero and they stop repelling each other. Without that repulsion they aggregate and drop out of suspension. For soy protein that point sits around pH 4.5, and the instability zone starts well before it, around pH 5.5.
Now look at the coffee. Espresso typically ranges between pH 4.8 and 5.5, and that figure depends directly on roast level:
Add temperature on top: heat accelerates protein aggregation. A 90 °C espresso hitting cold plant milk is the worst-case scenario. That's why the same coffee that curdles soy in a hot cortado can work perfectly over ice.
Three bar-tested fixes:
| Roast / coffee profile | First choice | Alternative | Avoid |
|---|---|---|---|
| Light, filter, high acidity (washed Ethiopia, Kenya) | Barista oat | — | Soy (curdles easily) |
| Medium, fruity-balanced | Barista oat | Barista soy | Standard almond |
| Medium-dark, chocolate and nut | Barista soy | Barista oat | — |
| Dark, Italian-style espresso | Soy or oat | Barista almond | — |
| Iced coffee / cold brew | Any | Almond performs well here | — |
Quick rule: the more acidic the coffee, the more neutral and buffered the milk needs to be. The darker the roast, the more freedom you have.
Plant milk doesn't forgive what dairy forgives.
There's a reason an oat flat white tastes brilliant with some coffees and flat with others. Notes of cocoa, unrefined cane sugar, nuts and caramel share an aromatic family with oat's maltose and soy's roasted profile. They build on each other rather than compete.
Coffees with bright citric or floral acidity, by contrast, get flattened: the plant milk covers exactly what makes that lot special. Save those for filter.
At Blue Faro we select several origins with a chocolatey profile that work especially well with plant milk: Brazilian natural with cocoa and hazelnut, washed Colombian with panela and milk chocolate, and our espresso blend built to carry oat milk's body without losing sweetness.
Not sure where to start? Tell us which plant milk you use and we'll recommend the roast that suits it best.
Why does soy milk curdle in coffee? Because coffee is acidic and pulls the mixture's pH toward soy protein's isoelectric point (≈4.5), where proteins aggregate and precipitate. Heat speeds it up. Use buffered barista versions, pour coffee into the milk, and avoid very light roasts.
What's the best plant milk for latte art? Barista oat, thanks to its viscosity and glossy microfoam. Barista soy is the runner-up, giving firmer foam that pours less fluidly.
What temperature should plant milk be steamed to? Between 55 and 60 °C. Above 65 °C it loses sweetness and the foam breaks down.
What's the difference between standard and barista versions? Barista versions contain more added fat, emulsifiers and buffering salts that stabilise foam and raise pH to withstand coffee acidity.
Can you make a latte with almond milk? You can, but it's the hardest: low protein, fragile foam and a tendency to separate. It performs much better in cold drinks or with dark roasts.