Milk choice in coffee usually gets treated as pure preference. It isn't. Whole milk, skim, oat, almond, soy, and coconut each behave differently in a steaming pitcher for specific, measurable reasons: how much protein and fat they carry, how their proteins respond to heat, and how they react to coffee's acidity. Once you know what's actually happening in the cup, picking the right milk stops being guesswork.

What actually makes milk foam
Cold milk proteins sit coiled up. As milk warms, they unfold and wrap around air bubbles, one hydrophobic end clinging to air, the other hydrophilic end holding onto water, forming a kind of skin around each bubble. Fat works against this: it competes with air for those same protein attachment points, so more fat generally means less stable foam.[1] In cow's milk, about 80% of that protein is casein and the rest is whey.[2]
Dairy: whole milk, 2%, and skim
In the US, milk sold as "whole" must legally contain at least 3.25% milkfat.[3] That fat is exactly why whole milk's foam is creamier and more velvety but less stable than skim's: skim, with almost no fat competing for space, produces the stiffest, driest foam, while whole milk trades some of that stability for a richer mouthfeel.[1] 2% sits in between. None of the three is objectively better than the others. Each is simply suited to a different kind of drink.
Why milk curdles in your coffee
Curdling happens when heat, acid, or both cause milk proteins to denature, unfold, and clump. Dairy's casein is relatively acid tolerant; one barista experiment found cold dairy held together down to about pH 4.1, while cold soy milk curdled as early as pH 4.6. Heat narrows that margin further, pushing dairy's threshold up to roughly pH 4.5 and soy's to about pH 4.7, meaning a lighter, more acidic roast (coffee generally sits between pH 4 and 5.5) is more likely to split a soy milk drink than a darker one.[4]
A 2019 peer-reviewed study in Food Hydrocolloids looked at this directly in soy milk and found something worth knowing: the separation is a reversible phase change, not permanent protein breakdown. Diluting or cooling the mixture restored a single, homogeneous phase. The researchers also noted that soy milks containing stabilizers like gellan gum or acidity regulators such as monopotassium phosphate curdled less often, based on anecdotal brand comparisons.[5]
Oat milk, and why "barista edition" exists
Plain oat milk, without added fat, tends to produce thin, watery foam, because its native protein (avenin) and starch alone don't hold enough air.[6] That's the specific gap "barista" oat milks are built to close. Oatly's own Barista Edition adds low erucic acid rapeseed oil for fat, plus dipotassium phosphate as an acidity regulator, which the company states directly "keeps our Barista Edition Oatmilk from separating when it hits your favorite hot drinks."[7] Added gellan gum in some formulations has been reported to extend foam half-life by 40 to 60%.[6] Oat proteins also unfold at a lower temperature than dairy's, starting around 140°F (60°C), so oat milk scorches, and its foam collapses, faster than dairy if oversteamed.[6]
Almond milk: lighter, but a real gap to close
Standard almond milk carries roughly 1 gram of protein and 1 to 1.5 grams of fat per 8 ounces, against roughly 8 grams of protein and 5 grams of fat in 2% dairy. That gap is why plain almond milk struggles to hold the kind of microfoam a latte needs.[8] Barista versions add plant protein (often pea protein) and oil (often sunflower), plus stabilizers like gellan gum and sunflower lecithin, closing some but not all of that gap. Its lower solid content also means it heats, and overheats, roughly 30% faster than dairy, leaving a narrower steaming window.[8]
Coconut milk: flavor over foam
Coconut milk is high in fat but carries little of the protein that actually builds foam structure, and specialty coffee guidance is consistent: it "really does not froth well at all." The better approach is to treat it like cream or half and half, stirred into an iced drink rather than steamed for a latte.[9]
Matching milk to the drink
For anything relying on real microfoam (a latte, cappuccino, or flat white), whole dairy, a barista-formulated oat milk, or soy milk (paired with a less acidic, darker roast) all have enough protein and fat to work. Skim gives the stiffest foam if volume matters more than texture. Almond and coconut milk both perform better in iced drinks, where foam isn't the point, than in steamed ones. None of this makes one milk objectively the best. It makes each one a better or worse fit for a specific cup, and that fit is really the only question worth asking before you pour.
Sources
Processing and chemistry details adapted from the sources below. Sources checked October 2026. Cup Taste is not affiliated with or endorsed by Clive Coffee, Agriland, BeanScene Magazine, Elsevier/Food Hydrocolloids or its study authors, CompleteHomeBarista, Oatly, or Seattle Coffee Gear.
[1] Clive Coffee. "The Science Behind Perfect Steamed Milk." https://clivecoffee.com/blogs/learn/the-science-behind-perfect-steamed-milk
[2] Agriland. "Know Your Dairy Products: Dairy Proteins, Whey and Casein." https://develop.agriland.ie/farming-news/know-dairy-products-dairy-proteins-whey-casein/
[3] U.S. Electronic Code of Federal Regulations, Title 21, Section 131.110 ("Milk"). https://www.ecfr.gov/current/title-21/chapter-I/subchapter-B/part-131/subpart-B/section-131.110
[4] BeanScene Magazine. "Proteins with Purpose: Why Milk Curdles and How to Avoid It." https://beanscenemag.com.au/proteins-with-purpose-why-milk-curdles-and-how-to-avoid-it/
[5] Brown, M., Laitano, F., Williams, C., Gibson, B., Haw, M., Sefcik, J., and Johnston, K. (2019). "'Curdling' of soymilk in coffee: a study of the phase behaviour of soymilk coffee mixtures." Food Hydrocolloids, 95, 462 to 467. https://doi.org/10.1016/j.foodhyd.2019.04.032
[6] CompleteHomeBarista. "Does Oat Milk Froth Well?" https://completehomebarista.com/guides/does-oat-milk-froth-well/
[7] Oatly. "Oatmilk Barista Edition" (product page). https://www.oatly.com/en-us/products/oatmilk/oatmilk-barista-edition-32-oz
[8] CompleteHomeBarista. "Best Almond Milk for Frothing and Latte Art." https://completehomebarista.com/guides/best-almond-milk-frothing-latte-art/
[9] Seattle Coffee Gear. "Best Milk for Coffee: Dairy vs. Plant-Based Options (Plus, Our Steaming Tips)." https://www.seattlecoffeegear.com/blogs/scg-blog/best-milk-for-coffee-dairy-vs-plant-based-options-plus-our-steaming-tips