The one rule: fat and protein do the work
Every plant milk is water plus some ratio of fat, protein, and starch, and that ratio is the whole story. Protein is what curdles, browns, and builds body: soy and pea have it, almond and rice barely do. Fat is what foams, whips, and carries flavor: coconut and barista blends have it. When a recipe misbehaves with a plant milk, it's almost never the brand; it's that the job needed protein or fat the carton didn't have.
The single most useful trick in this guide: soy milk plus one tablespoon of lemon juice or vinegar, rested five minutes, is vegan buttermilk. It curdles because soy actually has the protein to curdle. Pancakes, biscuits, ranch, marinades: that one swap unlocks the entire buttermilk canon. Almond milk will not do this. It just becomes sad lemon water.
| Milk | Reach for it when | Why it works | Skip it for |
|---|---|---|---|
| Soy (unsweetened) | Baking, buttermilk, savory sauces, protein | Closest to dairy in protein (≈7 g/cup); curdles and browns properly | Delicate teas: it can overpower |
| Oat, barista blend | Coffee, lattes, foam art | Added fat + emulsifiers hold a real microfoam | Low-sugar goals; it drinks sweet |
| Oat, regular | Cereal, porridge, general drinking | Naturally mild and a little sweet | Whipping or curdling: it can't |
| Almond (unsweetened) | Light drinking, smoothies, cereal | Clean and light, few calories | Coffee (splits), rich baking, anything needing body |
| Cashew (or home-blended) | Cream sauces, queso, soups | Blends completely silky; neutral canvas | Pouring uses: thin unless you blend it rich |
| Coconut, canned | Whipped cream, curries, ice cream | The only one with enough fat to whip | Coffee and cereal: the flavor runs the show |
| Pea (e.g. Ripple) | Protein without soy | ≈8 g protein/cup, surprisingly neutral | Recipes where a faint earthiness matters |
| Rice | Allergy-friendly households | The least allergenic common option | Anything needing body: it's the thinnest |
Coffee, and why your almond milk keeps splitting
Milk splits in coffee when acid plus heat overwhelms what little protein it has. Hot, acidic brew hits a thin milk and the curds you see are the protein giving up all at once. Barista formulations fix this with added fat and acidity regulators, which is why they cost more and foam like they mean it. If you love your regular carton, warm it first and pour coffee into milk, not milk into coffee. Or just let the barista blends do what they were built for.
Which plant milk froths best, by the numbers
Foam is protein doing structural work. Whipping air into a liquid makes bubbles, and something has to hold the wall of each bubble up while the foam sits on the coffee; in milk that job falls to protein, with fat adding body and, past a point, working against stability. So the protein column below predicts most of what happens in the jug. Soy has about four and a half times the protein of oat and five times that of almond, which is why an ordinary soy or pea milk will build microfoam straight from the carton while an ordinary oat or almond milk gives you large, short-lived bubbles that break before the pour.
| Milk | Protein (g) | Fat (g) | Per 240 ml cup (protein) | USDA record |
|---|---|---|---|---|
| Soy, unsweetened, plain | 3.6 | 2.1 | about 8.5 g | FDC 1999630 (Foundation) |
| Pea (Ripple, unsweetened) | 3.3 | 1.9 | about 8.0 g | FDC 1945193 (Branded label) |
| Oat, unsweetened, plain | 0.8 | 2.8 | about 1.9 g | FDC 2257046 (Foundation) |
| Almond, unsweetened, plain | 0.7 | 1.6 | about 1.6 g | FDC 2257045 (Foundation) |
| Cashew, unsweetened | 0.4 | 1.3 | about 1.0 g | FDC 2388827 (Branded label) |
| Rice, unsweetened | 0.3 | 1.0 | about 0.7 g | FDC 171942 (SR Legacy) |
| Coconut beverage, fortified | 0.2 | 2.1 | about 0.5 g | FDC 174116 (SR Legacy) |
Barista oat closes the gap without adding protein. Oatly's Barista Edition ingredient list adds rapeseed oil and dipotassium phosphate: the oil supplies the body the protein cannot, and the phosphate is an acidity regulator that stops the milk breaking against hot espresso, which is the other half of the problem described above. That is a formulation answer rather than a compositional one, and it works well enough that barista oat outsells every other option in coffee shops.
Two honest limits on the table. The figures are composition, not a foam test: they explain why soy and pea behave the way they do, and they rank the milks the way baristas rank them, but no head-to-head foam study sits behind them. And commercial cartons vary around the USDA figures, so read the panel on the one in your fridge if a gram matters to you.
The fortification fine print
Fortified plant milks are one of the easiest places to pick up calcium (typically ~300 mg per cup, matching dairy) and B12, but only the fortified ones, and only if you shake the carton, because fortificants settle. Homemade oat milk is cheap and genuinely good, and carries none of that. Fine either way; just know which one you're pouring.

