How to Choose the Right Milk for Your Coffee (the Honest Comparison)

How to Choose the Right Milk for Your Coffee (the Honest Comparison)

Adding milk to coffee is one of those small decisions that can completely change the cup. The wrong milk can flatten a bright single origin into something generic. The right milk can make a balanced coffee even better — or it can ruin a coffee that's perfectly good black.

We drink mostly black coffee at the roastery, but we also make a lot of lattes and cortado-style drinks for friends, family, and customer service calls. After years of trying every milk on the market, here's the honest comparison: what each milk does to coffee, how it foams, and when to use it.

This isn't a "best milk" guide. There's no best. There's the right milk for the right coffee.

The five milks that matter

We're going to skip the rare stuff (pea milk, hazelnut milk, pistachio milk) and focus on the milks you can actually buy at any grocery store. Five options, all of them work in coffee, all of them have tradeoffs.

  • Whole dairy milk. The default. What your grandparents used.
  • Oat milk. The plant-milk default. What every café uses.
  • Almond milk. The classic nut milk.
  • Soy milk. The original plant milk.
  • Coconut milk (from a carton, not a can). The sweet, tropical option.

There are also barista editions of most of these — oat barista blend, almond barista blend, etc. We'll talk about why those exist when we get to each milk.

Whole dairy milk

What it does to the cup: Adds body, sweetness, and richness. Whole milk makes any coffee taste more like a "treat" — which is why lattes with whole milk feel more decadent than lattes with skim. The fat carries the flavor compounds in coffee, which is why whole milk makes coffee taste more flavorful than lower-fat dairy.

How it foams: Best foam of any milk. Whole dairy stretches into glossy, dense microfoam that holds its shape. If you've ever had a café latte with beautiful latte art, it was almost certainly whole dairy.

When to use it: When you want a richer, more decadent cup. Pairs especially well with chocolatey or nut-heavy coffees (Brazil, Honduras, dark roasts). Doesn't add much to bright, citrusy coffees — the milk masks the brightness you paid for.

Downsides: Lactose. If you can't tolerate dairy, you can't use it. Whole milk is also higher in calories than plant milks, which matters to some people.

Barista edition: Regular whole dairy is already great for coffee. No barista edition needed.

Oat milk

What it does to the cup: Adds creaminess and a slight natural sweetness. Oat milk is the closest plant milk to whole dairy in body and mouthfeel. It doesn't add much flavor of its own — it mostly just adds creaminess.

How it foams: Very good. Barista-edition oat milk (like Oatly Barista or store-brand equivalents) foams nearly as well as whole dairy. Regular oat milk foams less and separates faster.

When to use it: When you want a creamy latte but can't do dairy. Pairs well with most coffees — doesn't mask bright, citrusy notes the way some other plant milks do.

Downsides: Some oat milks have added sugar or oils that can upset sensitive stomachs. Read the ingredients — the best oat milks for coffee have just oats, water, and maybe a little oil and salt.

Barista edition: Yes, get the barista edition. The extra fat and protein help it foam properly. Regular oat milk is fine in a pour but bad in a steamer.

Almond milk

What it does to the cup: Adds a slight nutty flavor and a thinner body than dairy or oat. Almond milk makes coffee taste slightly thinner and slightly nuttier. The nuttiness can be a nice complement to nut-heavy coffees (Brazil, Honduras) but doesn't add much to other origins.

How it foams: Poorly. Almond milk is low in protein, which is what creates stable foam. Even barista-edition almond milk doesn't foam as well as dairy or oat. The foam also collapses faster.

When to use it: When you want a low-calorie, slightly nutty cup and don't need to foam it. Pairs well with chocolatey or nut-heavy coffees when you want to lean into the nuttiness. Pairs poorly with bright, citrusy coffees — the almond flavor competes with the citrus.

Downsides: Low protein means poor foam. Most almond milks also have added gums and emulsifiers that can leave a film on top of your coffee or curdle if the coffee is very hot.

Barista edition: Get it if you're steaming almond milk, but accept that the foam won't be as good as dairy or oat.

Soy milk

What it does to the cup: Adds a creamy body and a slight beany flavor. Soy milk is thicker than almond milk and has more protein, which makes it closer to dairy in mouthfeel. The "beany" flavor is real and noticeable, especially in lighter-roast coffees.

How it foams: Excellent. Soy milk has the highest protein content of any plant milk, which means it foams very well — close to whole dairy. Many baristas actually prefer soy for latte art because the foam holds its shape longer.

When to use it: When you want a high-protein, dairy-free latte with good foam. Pairs well with chocolatey or nut-heavy coffees. The beany flavor can clash with bright, citrusy coffees, but most people stop noticing it after a few cups.

Downsides: The beany flavor is divisive — some people love it, some people can't stand it. Soy is also a common allergen.

Barista edition: Yes, get the barista edition. Soy foams well even without it, but the barista version has more fat and less beany taste.

Coconut milk (carton, not canned)

What it does to the cup: Adds sweetness and a distinct coconut flavor. Coconut milk is sweet on its own and adds a tropical note to coffee. It's not subtle — you'll know there's coconut in the cup.

How it foams: Poorly. Coconut milk is low in protein and high in fat, which makes it foam inconsistently. Even barista-edition coconut milk doesn't produce café-quality microfoam.

When to use it: When you want a sweet, tropical-flavored coffee or iced coffee. Pairs surprisingly well with bright, fruity coffees (Kenya, Ethiopia, natural-process Brazil). Pairs poorly with chocolatey or nut-heavy coffees — the coconut competes with the other flavors.

Downsides: The coconut flavor is strong and not for everyone. Also, most "coconut milk" in cartons is mostly water with coconut cream and gums — check the ingredients.

Barista edition: Yes, get the barista edition. It foams slightly better and tastes less artificial.

Which milk should you actually buy

If you drink dairy and want the best cup: whole dairy. No plant milk matches it for foam and richness.

If you can't do dairy and want the closest alternative: barista-edition oat milk. It's the most versatile and foams the best.

If you want a low-calorie option: almond milk, but don't try to make lattes with it.

If you want a high-protein, dairy-free latte: barista-edition soy milk. It foams nearly as well as dairy.

If you want something sweet and tropical: coconut milk for iced coffee, not for lattes.

If you're choosing for a specific drink: see the table below.

The cheat sheet (by drink)

| Drink | Best milk | Why | |---|---|---| | Black coffee | Skip the milk | Drink it black to taste the coffee | | Latte | Whole dairy or barista oat | Both foam beautifully and complement the espresso | | Cappuccino | Whole dairy | Best foam, classic pairing | | Cortado | Whole dairy | Less milk means the milk flavor matters more | | Flat white | Whole dairy or barista oat | Same as latte — needs good foam | | Iced coffee | Oat milk or coconut milk | Both add creaminess without overwhelming the cold coffee | | Cold brew | Oat milk or coconut milk | Same as iced coffee | | Espresso | Skip the milk | Espresso is meant to be tasted, not diluted | | French press coffee | Whole dairy or oat | Both complement the heavy body of immersion-brewed coffee | | Pour-over coffee | Whole dairy or oat (small amount) | Don't drown pour-over in milk — you paid for the clarity |

The pairing cheat sheet (by coffee origin)

Different milks complement different coffees. Here's the rough guide:

  • Bright, citrusy coffees (Costa Rica Tarrazú, washed Colombia, Ethiopia): Whole dairy or oat. Avoid almond and coconut — they compete with the citrus.
  • Chocolatey, nut-heavy coffees (Brazil, Honduras, dark roasts): Whole dairy, almond, or oat. The nuttiness of almond complements the nuttiness of the coffee.
  • Fruity, complex coffees (Kenya AA, natural-process Ethiopia): Whole dairy or oat. Don't add competing flavors.
  • Earthy, heavy coffees (Sumatra, dark-roasted anything): Whole dairy. Plant milks don't have the body to complement a heavy cup.

For the full lineup, see our single origin collection.

What we actually use at the roastery

At the roastery, when we're making lattes or cortado-style drinks for visitors, we use:

  • Whole dairy for most drinks. It's the default for a reason.
  • Barista-edition oat milk for dairy-free requests. Oatly is the most consistent, but most store-brand barista oat milks are fine.
  • Nothing else. We've tried every plant milk. Oat is the only one that works as a general-purpose dairy substitute.

If you want to read more about how we brew the coffee we serve, our How We Taste-Test New Coffees post walks through the cupping process.

Why freshness matters even with milk

A mediocre coffee with great milk is still a mediocre coffee. The milk can hide flaws, but it can't fix them. If you're using milk to make stale coffee taste better, you're using the wrong tool.

Most grocery store coffee was roasted 2 to 6 months before you bought it. Specialty roasters who ship to order — like us — roast on Wednesday, ship on Thursday, and the bag arrives at your door within a week of roast. Even with milk, the difference between fresh-roasted coffee and grocery store coffee is dramatic.

If you've been wondering why your at-home lattes don't taste like the ones at the café, the answer is almost always the coffee, not the milk. Better beans, less milk.

For more on what freshness actually means in coffee, our What "Fresh Roasted" Actually Means post walks through it.

Want to try our coffees in a latte? Our single origin lineup is built for both black and milk drinks. The Colombia and the Brazil are the two we reach for most often when making milk drinks. Every bag you buy helps fund animal rescue efforts through our partnership with ASPCA, Best Friends Animal Society, and local shelters.

Brew slow. Sip slow. ☕

P.S. If you're picking milk for an espresso-based drink, our How to Dial In Espresso at Home post covers the espresso side. And if you're brewing a milk drink for someone who's dairy-free, oat milk is almost always the safer choice than almond or soy.