I bought four cartons of non-dairy milk, made twelve drinks, and took notes on every single one. Oat, almond, coconut, and macadamia milk — tested in hot lattes, iced coffee, and frothed for latte art. Some performed beautifully. Others curdled, separated, or tasted like I’d poured coffee into flavored water. Here’s exactly what happened with each one, plus a clear winner for every drink type.

The Test Setup
I tested each milk in three scenarios: a hot latte (steamed and poured over a double espresso), an iced coffee (cold milk poured over cold brew with ice), and frothed (using a steam wand for microfoam). I used the same espresso for all hot drinks, the same cold brew for all iced drinks, and the same steam wand technique for all frothing tests. I also tested both the regular grocery store version and the “barista edition” of each milk, which is something worth understanding before you buy.
What You’ll Need to Follow Along
- Your preferred dairy-free milk (see my recommendations below for each drink type)
- Freshly brewed espresso or strong coffee for hot drinks
- Cold brew concentrate for iced drinks
- A milk frother, steam wand, or French press (for frothing tests)
- A thermometer (optional, but helpful for steaming to the right temperature — 140°F to 155°F)
Oat Milk: The Best All-Around Option
In a Hot Latte
Oat milk was the clear winner for hot lattes. It has a natural creaminess and subtle sweetness that complements espresso without competing with it. When steamed, it develops a velvety texture similar to whole dairy milk — not identical, but closer than any other plant milk I tested. No curdling, no separation, no weird aftertaste. The flavor is clean and slightly sweet, like you added just a touch of honey to your latte. It blends seamlessly with the espresso and the two flavors support each other rather than fighting. Score: 9/10.
In Iced Coffee
Excellent here too. Oat milk stays integrated in cold coffee — no separation even after 20 minutes of sitting. The texture is smooth and the sweetness balances the bitterness of cold brew nicely. It makes a cold brew taste like a proper iced latte rather than watered-down coffee with white stuff floating in it. Score: 9/10.
Frothing Quality
This is where oat milk really shines, especially the barista editions. I got a microfoam that was glossy, smooth, and dense enough for basic latte art — not as elastic as dairy microfoam, but I managed a decent heart and a passable rosetta. The foam held its shape for about 3-4 minutes before starting to deflate, compared to 6-7 minutes for dairy. Very respectable. Regular (non-barista) oat milk froths adequately but produces larger, less stable bubbles. Score: 8/10 (barista edition), 6/10 (regular).
Almond Milk: Best for Iced Coffee Only
In a Hot Latte
Disappointing. Almond milk is thin — it has a watery consistency that makes your latte taste diluted rather than creamy. Worse, it has a tendency to curdle when it hits hot espresso. The acidity and heat of the espresso cause the almond proteins to coagulate, creating tiny white clumps that float on the surface. It happened with both the regular and barista editions, though the barista version was slightly less prone to it. The almond flavor also competes with the coffee rather than supporting it — you taste almond and coffee as separate, sometimes clashing flavors. Score: 4/10.
In Iced Coffee
This is where almond milk works. Cold temperatures prevent the curdling issue, and the lighter body is actually pleasant in an iced drink — refreshing rather than heavy. The subtle nuttiness adds an interesting dimension to cold brew without overpowering it. It’s also the lowest-calorie option (about 30 calories per cup for unsweetened), which matters if you’re counting. Pour it over cold brew with lots of ice and it’s genuinely good. Score: 7/10.
Frothing Quality
Poor. Almond milk produces a thin, bubbly foam that looks like dish soap suds rather than microfoam. The bubbles are large, uneven, and pop within seconds. Even the barista edition barely improved things. No chance of latte art — the foam dissipates before you can pour. If frothing matters to you, almond milk is not your choice. Score: 3/10.
Coconut Milk: Best for Tropical Iced Drinks
In a Hot Latte
Coconut milk brings a distinct, unmistakable coconut flavor to everything it touches. In a hot latte, this means your espresso takes on a tropical character whether you want it or not. If you love coconut, this might be appealing. For me, it was too dominant — I wanted to taste espresso with a creamy complement, not a coconut drink with espresso notes. The texture is reasonably creamy (coconut milk has a higher fat content than almond or oat), but the flavor overpowers everything. Score: 5/10.
In Iced Coffee
Better in a cold context. Coconut milk over cold brew with ice creates something that tastes intentional — like a tropical iced coffee that belongs on a beach menu. The cold temperature tames the coconut flavor slightly, and the richness adds a luxurious mouthfeel to iced coffee. If you’re making a blended coffee drink, coconut milk works especially well because the thickness holds up to ice and blending. Score: 7/10.
Frothing Quality
Decent but inconsistent. Full-fat coconut milk (from a can) froths surprisingly well — the high fat content creates a stable, creamy foam. But the carton coconut milk you buy in the refrigerated section is much thinner and froths poorly. If you’re using coconut milk specifically for frothing, spring for the canned full-fat version and thin it slightly with water. Score: 6/10 (canned), 4/10 (carton).
Macadamia Milk: The Premium Option for Pour-Over
In a Hot Latte
Macadamia milk surprised me. It has a smooth, almost buttery quality with a very neutral flavor — it doesn’t compete with coffee the way coconut or almond milk does. In a hot latte, it lets the espresso be the star while adding richness and body. No curdling, no separation, no off-flavors. The only downside is cost — a carton of macadamia milk runs $5-6 compared to $3-4 for oat milk. For a daily latte, that adds up. But for a special occasion or a weekend pour-over, it’s a genuinely lovely experience. Score: 8/10.
In Iced Coffee
Smooth and neutral. Macadamia milk integrates into iced coffee cleanly, adding subtle richness without any competing flavor. It’s like adding a splash of cream to your cold brew — the coffee flavor stays front and center. If you’re the type who appreciates a clean, minimalist iced coffee where the beans are the star, macadamia milk is your best bet. Score: 8/10.
Frothing Quality
Good, not great. Macadamia milk froths better than almond but not as well as oat. You get a smooth, tight foam that holds for about 2-3 minutes. Basic latte art is possible but challenging. The barista edition is meaningfully better for frothing and worth the extra cost if microfoam matters to you. Score: 6/10 (regular), 7/10 (barista edition).
Barista Edition vs Regular: Is It Worth the Extra Dollar?
“Barista edition” milks contain added fats (usually sunflower oil or rapeseed oil) and sometimes stabilizers like gellan gum. These additions serve a specific purpose: they increase the fat content to more closely mimic dairy milk, which improves frothing, reduces curdling, and creates a creamier mouthfeel in hot drinks.
Is the extra dollar worth it? If you’re making hot lattes or frothing, absolutely yes. The difference is significant — barista edition oat milk froths into a microfoam that’s genuinely close to dairy, while regular oat milk gives you something foamy but crude. For iced coffee, you’re fine with the regular version. The cold temperature means the frothing improvements don’t matter, and the creaminess difference is less noticeable over ice.
My recommendation: keep barista edition oat milk on hand for hot drinks and latte art, and use regular oat or almond milk for iced coffee. This gives you the best performance at the lowest overall cost.
Homemade Oat Milk Recipe
Since oat milk won the overall test, here’s how to make it at home for a fraction of the store-bought price. It takes about 5 minutes.
What You’ll Need
- 1 cup rolled oats (not instant, not steel-cut — rolled oats give the best texture)
- 4 cups cold water
- 1 pinch of salt
- Optional: 1 tablespoon maple syrup or 2 pitted dates for sweetness
- A blender
- A fine-mesh strainer, cheesecloth, or nut milk bag
How to Make It
Add the oats, cold water, and salt to your blender. Blend for exactly 30 seconds — no longer. Over-blending breaks down the oat starches too much and gives you a slimy, gummy milk that coats your mouth unpleasantly. Thirty seconds is enough to break down the oats without extracting excessive starch.
Strain immediately through a fine-mesh strainer or nut milk bag into a jar or pitcher. Don’t squeeze the pulp — pressing extracts more starch and, again, leads to sliminess. Just let gravity do the work. The entire straining process takes about 2 minutes.
Store in the refrigerator for up to 5 days. Shake before using — homemade oat milk separates naturally, which is completely normal. The flavor is clean, slightly sweet, and noticeably fresher than store-bought. Cost: about $0.25 per quart compared to $4-5 for a store-bought carton.
One caveat: homemade oat milk doesn’t froth well. Without the added fats and stabilizers of commercial barista editions, it produces thin, unstable foam. For frothing, stick with store-bought barista edition. For pouring into pour-over coffee or adding to iced drinks, homemade is excellent.
The Curdling Problem: Why It Happens and How to Prevent It
Curdling in plant milks is caused by the acid in coffee denaturing the proteins in the milk. It’s the same chemistry as adding lemon juice to milk — the acid causes proteins to clump together. Almond milk is the worst offender because its proteins are particularly sensitive to acid and heat. Here’s how to minimize curdling with any plant milk:
- Temperature matters: Let your coffee cool slightly (below 170°F) before adding the milk. Extreme heat accelerates curdling.
- Add the coffee to the milk, not the milk to the coffee. This gradually raises the milk’s temperature and acidity rather than shocking it.
- Use barista editions: The added fats and stabilizers buffer against curdling.
- Choose low-acid coffee: Dark roasts, cold brew, and low-acid varieties cause less curdling because there’s less acid to denature the proteins.
- Try warming the milk first: Heating the plant milk separately before combining it with coffee reduces the temperature shock and dramatically cuts down on curdling.
The Final Rankings
After twelve drinks and a lot of note-taking, here are my definitive picks:
Best for hot lattes: Oat milk (barista edition). No contest. Creamy, sweet, froths beautifully, doesn’t curdle.
Best for iced coffee: Tie between oat milk and macadamia milk. Oat if you want sweetness, macadamia if you want the coffee flavor to stay front and center.
Best for frothing and latte art: Oat milk (barista edition). It’s the only plant milk that gets close to dairy microfoam quality.
Best budget option: Homemade oat milk for daily iced or pour-over coffee. Twenty-five cents a quart is hard to argue with.
Best premium option: Macadamia milk for weekend pour-over. The neutral, buttery flavor lets high-quality beans shine.
Skip: Almond milk in hot drinks. Life’s too short for curdled lattes.
Frequently Asked Questions
Does plant milk change the caffeine content of my coffee?
No. The caffeine is in the coffee, and adding any type of milk (dairy or plant-based) doesn’t change the amount of caffeine in your cup. It dilutes the concentration per sip (because there’s more liquid total), but the total caffeine remains the same. If your espresso has 120 mg of caffeine, your latte has 120 mg of caffeine regardless of what milk is in it. The same applies whether you’re using dairy or any of the alternatives I tested — the research on milk and caffeine is clear on this point.
What about soy milk?
I didn’t include soy milk in this test because its popularity has declined significantly in favor of oat and almond. That said, soy milk is a solid all-around performer — it froths well, has a neutral flavor, and is high in protein. Its main downside is the “beany” flavor some brands carry, which can clash with coffee. If soy is your preference, look for barista editions from brands like Alpro or Pacific Foods, which minimize the beany taste.
Why does my plant milk separate in iced coffee?
Separation happens because plant milks are emulsions — tiny fat and protein particles suspended in water. Cold temperatures and the acidity of coffee can break this emulsion, causing the heavier particles to sink and the lighter liquid to rise. Oat milk is the most resistant to separation, while almond is the most prone. A quick stir brings everything back together. Barista editions separate less because they contain emulsifiers that keep everything integrated longer.
Can I heat homemade oat milk for a latte?
You can, but it may get slightly slimy when heated due to the oat starches. The commercial oat milks use enzymes to break down these starches during production, which is why they stay smooth when steamed. For hot drinks, I recommend store-bought oat milk. Save the homemade version for iced coffee and cold applications where the starch issue doesn’t come into play.