Non-Dairy Yogurt
Making yogurt from a plant milk is not “the same but with oat milk.” The culture is the same, the temperature is the same, and almost everything else is different, because dairy yogurt depends on two things plant milks don’t have: lactose to ferment, and casein to set.
Once you know that, the whole category makes sense and the failures stop being mysterious.

The two problems
Problem 1: no lactose. L. bulgaricus and S. thermophilus are dairy organisms — they eat milk sugar. A plant milk contains little or no sugar they can readily use, so you almost always have to add a sugar for the culture to ferment. Usually 1–2 teaspoons of ordinary sugar or maple syrup per cup. It gets consumed; the finished yogurt is not sweet.
Problem 2: no casein. This is the bigger one. Dairy yogurt sets because acid destabilizes casein micelles, which then link into a continuous protein gel. That’s the entire mechanism of a yogurt set, and no plant protein does it. Soy comes closest and still isn’t the same. So with plant milks you’re generally acidifying a liquid and then thickening it by some other means.
That’s the honest framing, and it’s why commercial plant yogurts have long ingredient lists. They’re not cutting corners — they’re solving a real structural problem.
What actually works, ranked
Soy — the best, and the only one that really sets
Soy milk is the clear winner and it’s the one I’d tell anyone to start with. Soy protein (glycinin and β-conglycinin) genuinely gels when acidified — it’s the same chemistry that makes tofu — so soy yogurt sets on its own without thickeners. It’s also protein-rich, so it behaves closest to dairy.
Requirements:
- Plain, unsweetened soy milk with nothing but soybeans and water. No gums, no oils, no added calcium carbonate (which buffers acid and fights the pH drop), no “barista” formulations. The shortest ingredient list on the shelf.
- Add ~1 tsp sugar per cup to feed the culture.
- Heat to 180 °F, cool to 110 °F, culture, incubate 6–10 hours.
Soy yogurt sets firm, tastes clean but beany, and strains beautifully into a Greek-style thickness. Protein content is the predictor — look for 7 g+ per cup.
Coconut — the richest, needs help
Full-fat canned coconut milk makes a luxuriously rich yogurt, and it’s the best-tasting of the plant options in my view. But it sets by fat solidifying when cold, not by protein gelling — which means it’s thick out of the fridge and loose at room temperature.
- Use full-fat canned coconut milk (or coconut cream), not carton coconut beverage, which is mostly water.
- Add 1–2 tsp sugar per cup.
- It will separate — fat rising, thin liquid below. Whisk it, or add a thickener.
- Thicken with 1–2 tsp tapioca starch or ½ tsp agar per cup, cooked in before culturing.
- Incubate 12–24 hours; coconut ferments slower.
Tangy, rich, faintly coconut. Excellent with fruit.
Cashew — the smoothest
Blend raw cashews with water (roughly 1:3), no straining needed since cashews blend completely. The fat and the finely dispersed protein give a genuinely creamy, thick result with no thickener required. This is the best homemade option after soy, and it’s the least fussy.
Soak the cashews, blend very smooth, heat gently, cool, culture. Mild, rich, slightly sweet.
Oat — the hardest, and here’s why
Oat milk seems like it should work and it’s the most frustrating.
The problem is enzymes and starch. Commercial oat milk is made by treating oats with amylase to break starch into sugars — that’s where its natural sweetness comes from and why it’s thin. If any active amylase remains, it keeps digesting starch and your yogurt gets progressively thinner and sweeter as it ferments, which is the opposite of what you want. And oat protein doesn’t gel.
What to do: use oat milk with no residual enzyme activity (heating to 180 °F helps), and thicken deliberately — tapioca starch, a little pectin, or agar. Expect a thin, sweet, pleasant drinkable yogurt rather than a spoonable set. Accept that and it’s fine.
Almond — thin
Low protein, low fat, mostly water. It acidifies fine and doesn’t set at all. Homemade almond milk with a high nut-to-water ratio does better. Needs thickener; results are modest.
Others
Pea protein — commercially excellent (high protein, sets reasonably) and hard to source as a plain milk at home. Rice — very thin, very starchy, mostly a bad idea. Hemp, flax — strong flavors, no set. Macadamia — rich and expensive, behaves like cashew.
| Milk | Sets on its own | Needs thickener | Verdict |
|---|---|---|---|
| Soy | Yes | No | Best overall — start here |
| Cashew | Mostly | Rarely | Creamiest homemade |
| Coconut (full-fat) | Fat-set only | Helpful | Richest; separates |
| Pea protein | Yes | No | Great commercially, hard at home |
| Oat | No | Yes | Thin and sweet; manage expectations |
| Almond | No | Yes | Thin |
| Rice | No | Yes | Skip it |
Thickeners, and what each one does
- Tapioca starch — 1–2 tsp/cup, cooked in before culturing. Clean flavor, glossy. My default.
- Agar — ¼–½ tsp/cup. Sets firm and slightly brittle; can go rubbery. Must be boiled to activate.
- Pectin — sets well; needs the right type and sometimes calcium.
- Cornstarch — works, can taste starchy.
- Guar / xanthan gum — tiny amounts (⅛ tsp/cup). Thickens without cooking, but slimy if overdone.
- Straining — the no-additive option. Works well for soy and cashew, poorly for oat.
Cultures
Regular dairy yogurt culture works on plant milks and this surprises people. It’s the simplest approach: use a spoonful of live dairy yogurt or a standard freeze-dried starter.
Two caveats:
- If you need it strictly vegan, dairy-derived starters are out. Vegan-specific starters exist and are widely sold.
- Backslopping is less reliable than with dairy. Plant substrates don’t maintain the two organisms’ balance well, so subculturing degrades faster. Expect to restart more often, or use a fresh starter each time.
Also: probiotic capsules can work as a starter, but the organisms in them are usually not the yogurt pair, so you get a fermented plant milk rather than yogurt. Fine, just different.
Method, adjusted
- Choose a milk with the shortest ingredient list. Additives — gums, oils, added calcium carbonate, “stabilizer blends” — are the most common cause of failure. Calcium carbonate in particular buffers the acid and can stall the pH drop.
- Add sugar — 1–2 tsp per cup. Non-negotiable for most plant milks.
- Add thickener if needed, cooked in.
- Heat to 180 °F, hold 10 minutes. Less critical than for dairy (there’s no whey protein to denature) but it kills competitors and deactivates residual enzymes.
- Cool to 110 °F, culture, incubate.
- Incubate longer — plant milks generally ferment slower. 8–24 hours rather than 4–8. Taste for tang rather than watching the clock.
- Chill undisturbed. Coconut especially firms up dramatically cold.
Honest expectations
Soy strained into a Greek style is genuinely as good as dairy Greek yogurt. I’ll defend that.
The rest are good foods that are not dairy yogurt, and the useful move is to stop trying to make them be. Coconut yogurt is a rich tangy cream. Oat yogurt is a pleasant sour drink. Cashew yogurt is a smooth cultured cream. Judged as themselves they’re excellent; judged as dairy substitutes they’re disappointing, and that’s a framing problem rather than a recipe problem.
Where to expect a real difference: structure and mouthfeel. Where you won’t: the tang. The acid is the same acid.
Other non-dairy ferments worth knowing
If plant yogurt is a workaround, these are plant ferments that aren’t compromises at all:
- Water kefir — genuinely non-dairy by nature, not by substitution.
- Cashew or almond “cheese” — cultured nut pastes, aged, sometimes rinded. The good ones are legitimately excellent, and they belong beside Cheese rather than in yogurt’s shadow.
- Tempeh — a plant ferment with no dairy analogue at all.
- Rejuvelac — fermented sprouted-grain liquid, used as a culture for nut cheeses.
Where to go next
- Yogurt — the dairy version, and why 110 °F is a ratio control.
- Kefir — including water kefir, which is dairy-free by nature.
- Koji, Miso & Soy — the deepest plant-ferment tradition there is.
Comments (0)