Vegan mac and cheese does not taste like dairy mac and cheese, and the versions that come closest are usually the ones that stopped trying. The best pan I’ve made in five years of tinkering was cashews, white miso and a squeeze of lemon, and what it tasted like was a rich, tangy, faintly nutty sauce gripping the pasta. Genuinely good. Not cheese.
Nearly every disappointed message I get about this dish traces back to one of five beliefs. All five are wrong, and all five are fixable in a single evening.
The Comparison That Ruins It Before You Start
You are not going to reverse-engineer cheddar out of nuts and a spice jar. Dairy cheese gets its flavour from months of bacteria and enzymes chewing through milk protein, and its stretch from casein. Nothing in a plant kitchen does that.
So change the target. What you’re building is a thickened savoury sauce with four things dialled up: salt, fat, acid, umami. Judge it on that and it holds up. Judge it against a bubbling dish of dairy baked macaroni and it loses every time, which is fine — if that’s the craving, go and make that instead.
My mildly unpopular opinion: a well-seasoned cashew sauce beats a mediocre dairy one made with pre-grated cheddar and no mustard. I’d take the vegan one twice out of three.
Nutritional Yeast on Its Own Tastes Like Dusty Broth
Nutritional yeast is savoury. It is not cheesy. Tip a spoonful onto your palm and taste it — you’ll get something nearer a stock cube than anything from a cheese counter. That’s glutamate doing its job, and glutamate is one leg of the stool.
Past about 4 tablespoons per 400g of dry pasta it turns chalky and faintly bitter. I’ve pushed it to 6 out of stubbornness and binned the sauce. Stay at 3 to 4.
The other three legs:
- Salt — more than feels reasonable. Dairy cheese carries roughly 1.5 to 2% salt by weight, so anything standing in for it needs proper seasoning, not a pinch.
- Fat — 3 tablespoons of neutral oil or vegan block, or the fat that comes free with cashews. Fat is why it coats the back of a spoon instead of pooling.
- Umami and tang — 2 teaspoons of white miso, or 1 teaspoon of Dijon mustard, or both. Miso brings fermented depth; mustard brings a sharp edge that stops the sauce tasting round and flat.
Then the lemon. Half a tablespoon of juice, stirred in off the heat at the end. It’s small enough that nobody tastes lemon; it’s just the moment people go quiet and say “oh, that works.” Acid is what your brain reads as the tang of aged cheese. Leave it out and the sauce reads as gravy.
Cashews Give the Silkiest Sauce, But They Aren’t Compulsory
Cashews blend into something properly velvety because they’re soft, fatty and low in fibre. Soak 150g in just-boiled water for 30 minutes, or simmer them 12 if you forgot, then blend with 350ml of liquid for a full 90 seconds. Thirty seconds leaves a grittiness you’ll feel on the tongue.
The potato-and-carrot base is the one I make more often, because a bag of potatoes costs a fraction of what cashews do and half the people at my table can’t eat nuts. Boil 300g of floury potato and 120g of carrot, cut small, about 15 minutes, until a knife meets no resistance. Blend with 200ml of the cooking water, the oil and the seasonings.
One warning that cost me two ruined batches: potato starch turns gluey when it’s beaten. Twenty to thirty seconds, no more, or use a stick blender in the pan. Over-blend and you have wallpaper paste with paprika in it.
The carrot isn’t for flavour. It’s for colour. Without it the sauce is beige and your brain rejects it before your mouth gets a say.
A third base worth knowing: 400g of drained white beans blended in gives a thicker, earthier sauce. If you cook beans from dried, use the cooking liquid instead of water — already seasoned, already slightly thickened.
Shop-Bought Vegan Cheese Doesn’t Melt, It Collapses
Read the label on almost any block in the chilled aisle: water and coconut oil first, then potato or tapioca starch. Under heat that mixture goes stringy and promising for about a minute, then the coconut oil breaks out and leaves a slick of grease on top.
Don’t build a sauce on it. It’s genuinely good on the top, though. Grate 60g over the assembled dish, put it under a hot grill for 3 to 4 minutes and watch it — you get browned patches and a bit of pull, with the sauce underneath untouched.
Grated blocks behave better than slices, which carry more emulsifier and slump into one flat sheet instead of browning.
Plant Milk in a Roux: Which Ones Split and Which Hold
You can make a roux version, but not with any old carton. Two rules.
Unsweetened, always. Sweetened oat milk runs around 7g of sugar per 100ml, and in a savoury sauce that lands as wrong in a way people can’t name but definitely notice. Vanilla is worse.
And protein holds a roux together. Soya sits near 3 to 3.5g of protein per 100ml and behaves almost like dairy. Whole or barista oat works too, on fat and added stabilisers. What splits: thin rice milk, most standard almond milks (often under 0.5g protein per 100ml), light coconut drinks. They go grainy the moment the pan nears a simmer and whisking won’t bring them back.
The roux itself — ratios, why sauces go grainy, how to rescue one — I’ve gone through properly in the classic baked mac and cheese, and it works the same here. Add the lemon off the heat, though. Acid plus hot plant milk equals curdle.
Ingredients
- 350g macaroni or other short pasta
- 150g raw cashews, soaked in just-boiled water 30 minutes (or 300g floury potato plus 120g carrot, boiled)
- 350ml unsweetened soya milk, or the potato cooking water
- 4 tablespoons nutritional yeast
- 3 tablespoons neutral oil or melted vegan block
- 2 teaspoons white miso paste
- 1 teaspoon Dijon mustard
- 1 teaspoon garlic powder
- 1/2 teaspoon smoked paprika
- 1/2 tablespoon lemon juice
- 1 1/4 teaspoons fine salt, plus more to taste
- Black pepper
- 60g grated vegan cheese for the top, optional
Instructions
- Boil the pasta in well-salted water, draining 2 minutes short of the packet time. Keep back 200ml of the water.
- Drain the soaked cashews. Blend with the soya milk, oil, nutritional yeast, miso, mustard, garlic powder, paprika, salt and pepper for a full 90 seconds, until a drop rubbed between your fingers feels smooth.
- Pour the sauce into the pasta pan over low heat and stir 2 to 3 minutes. It thickens noticeably. Loosen with the reserved pasta water, a splash at a time, until it slides rather than clumps.
- Off the heat, stir in the lemon juice. Taste. It nearly always wants more salt here — add 1/4 teaspoon, taste, repeat once if needed.
- Eat straight from the pan, or tip into a dish, scatter over the grated vegan cheese, and grill 3 to 4 minutes until patchy and brown.
Leftovers set firm in the fridge, because that’s what starch does. Reheat a portion in a pan with 3 tablespoons of hot water rather than more plant milk — extra milk dilutes the seasoning and you spend the next five minutes chasing salt. The same fix works on my creamy pesto pasta and on the mash topping of a vegan shepherd’s pie that’s gone stiff overnight.