Vegan comfort food recipes that are actually filling

The honest version — not twelve ingredients you’ve never heard of, not meals that leave you hungry in an hour. Just eight proper comfort food recipes that happen to be vegan, plus everything you need to know about why plant food sometimes doesn’t satisfy and how to fix it.

~22g~9g~12g45 min
Net carbs per bowlFibre per servingProtein per servingTotal cook time

Why vegan food sometimes doesn’t fill you up

If you’ve ever eaten a beautifully photographed vegan bowl and felt hungry again an hour later, you’re not imagining it. It happens. And it’s not a moral failing — it’s usually a structural problem with how the meal was built.

A lot of vegan recipes are heavy on vegetables and light on protein and fat. Which sounds fine on paper, but vegetables — even in large volumes — digest relatively quickly and don’t trigger the satiety signals that protein and fat do. You can eat a full plate of roasted vegetables and feel satisfied for about forty-five minutes. Eat the same volume of lentils and you’ll stay full for two to three hours.

Worth understanding: Research published in nutritional science consistently shows that protein is the most satiating macronutrient, followed by fibre, then fat, then carbohydrates. Vegan diets that don’t prioritise protein-dense ingredients — legumes, tofu, tempeh, edamame — will almost always leave people hungry. This is the core issue, and it’s entirely solvable. According to the Harvard T.H. Chan School of Public Health, plant proteins are fully adequate for satiety when eaten in sufficient quantity and variety. 

The other issue is volume eating. Some people, transitioning from meat-heavy diets, try to replace a chicken breast with the same weight of vegetables. That doesn’t work. You need the caloric density of legumes and whole grains to replace the caloric density of animal protein.

The three things that actually create satiety

Before the recipes, it’s useful to understand what makes a meal genuinely filling. Then you can apply the same logic to anything you cook.

Protein — the non-negotiable one

Protein triggers the release of satiety hormones — PYY and GLP-1 — and suppresses ghrelin, the hunger hormone. For vegan meals, this means including legumes, tofu, tempeh, edamame, or seitan in every main meal. Not as a garnish. As a main component. Roughly 20–30g per meal is the useful target.

Fibre — slows everything down

Dietary fibre slows gastric emptying, which is just a technical way of saying the food stays in your stomach longer. It also feeds gut bacteria, which produce short-chain fatty acids that contribute to satiety signalling. High-fibre vegan meals — beans, lentils, whole grains, root vegetables — stay with you much longer than low-fibre ones.

Healthy fat — underrated and often skipped

Fat is calorically dense and triggers cholecystokinin (CCK), one of the main satiety hormones. Vegan meals that are very low in fat — no nuts, no avocado, no olive oil, no coconut milk — tend to feel unsatisfying even when the protein and fibre are there. Adding a tablespoon of tahini, a handful of nuts, or cooking with olive oil makes a real difference.

Every recipe in this article is built around all three. That’s what separates them from the kind of vegan food that leaves you staring at the fridge an hour after dinner.

8 vegan comfort food recipes at a glance

01020304
Red lentil dahlWhite bean and kale stewSmoky black bean chilliChickpea tikka masala
High proteinHigh fibreHigh proteinHigh fibreHigh proteinGood fatHigh protein Good fat
The most reliable vegan comfort food. Warming, deeply spiced, and genuinely filling for 4+ hours.Italian in spirit. Creamy beans, hearty greens, good broth. Exactly what a cold evening calls for.Better the next day. Smoked paprika and chipotle do the heavy lifting on flavour.Coconut milk base, tomato richness, whole chickpeas. Indistinguishable from the original in terms of satisfaction.
05060708
Peanut noodles with tofuLentil shepherd’s pieTempeh bologneseMoroccan chickpea tagine
High protein Good fat30 minHigh protein High fibreHigh proteinGood fatHigh protein High fibre
Fast, filling, and the peanut sauce is the kind of thing you end up putting on everything.Brown lentil and vegetable filling under mashed potato. As comforting as the original.Crumbled tempeh simmered in a slow tomato sauce. Genuinely meaty texture without any meat.Warming spices, sweet potato, preserved lemon. Elegant but easy. Keeps exceptionally well.

Full recipe: red lentil dahl

This is where most people should start. Red lentil dahl requires almost no skill, uses ingredients you likely already have, and is among the most genuinely filling plant-based meals in existence. A bowl at dinner typically keeps hunger away until morning.

On lentils specifically: Red lentils contain around 18g of protein per 100g dry weight and are one of the most fibre-dense foods available. They also cook without soaking, which is a practical advantage that dried chickpeas and beans can’t match. (Reference 2 — see authority links)

Ingredients (serves 4)

300g red lentils
Rinsed until water runs clear. This removes excess starch and reduces any bitterness.
1 large onion, finely diced
White or brown. This is the flavour foundation — cook it properly.
4 garlic cloves, minced
More is fine. Garlic in Indian cooking is not a place to be shy.
1 thumb fresh ginger, grated
About 2cm. Or 1 tsp ground ginger as a substitute.
1 can diced tomatoes (400g)
Full fat. The acidity balances the earthy lentils.
400ml coconut milk
Full-fat for creaminess. The fat content is what makes this genuinely filling.
700ml vegetable stock
Low sodium. You control the salt at the end.
2 tsp cumin, 2 tsp coriander, 1 tsp turmeric, 1 tsp garam masala
The spice backbone. Bloom them in the oil before adding liquid — it changes the flavour significantly.
2 tbsp coconut oil or neutral oil
For cooking the aromatics and blooming the spices.
Salt, lemon juice, fresh coriander
To finish. A squeeze of lemon at the end lifts the whole thing.

Method

  • Heat oil in a large pot over medium heat. Add the onion and cook for 8–10 minutes until soft and beginning to turn golden at the edges. This matters. A quickly cooked onion and a properly caramelised one taste entirely different.
  • Add the garlic and ginger. Cook for 2 minutes until fragrant. Add all the dry spices and stir constantly for 60 seconds — you’re blooming the spices in the oil, which releases fat-soluble flavour compounds that water-cooking can’t.
  • Add the diced tomatoes. Stir and cook for 4–5 minutes until the tomato reduces slightly and the mixture smells rich and developed.
  • Add the rinsed lentils, coconut milk, and vegetable stock. Stir well and bring to a gentle boil, then reduce to a simmer. Cook uncovered for 25–30 minutes, stirring every few minutes, until the lentils are completely soft and starting to break down into the sauce.
  • Taste and season generously with salt. Add a squeeze of lemon juice. If the dahl looks thicker than you’d like, add a splash of water and stir. If it’s thinner than you’d like, simmer for another 5 minutes uncovered.
  • 6Serve over brown rice or with whole grain flatbread. Top with fresh coriander. A spoonful of coconut yogurt on top is optional but excellent.

Full recipe: white bean and kale stew

This is one of those soups that tastes like it took two hours but actually comes together in about thirty-five minutes. The white beans carry most of the protein load, and partially blending the soup creates a creamy, satisfying texture without any dairy or cream substitute.

Ingredients (serves 4)

2 cans cannellini beans (800g total)
Drained and rinsed. Cannellini are creamier than navy beans. Either works.
1 large bunch kale, stems removed
Roughly chopped. Lacinato (cavolo nero) is the best variety here — less bitter.
1 onion, 3 garlic cloves, 2 celery stalks
The classic aromatic base. Dice everything to similar size for even cooking.
1 can diced tomatoes
Adds acidity and body to the broth.
1 litre vegetable stock
Good quality makes a real difference in a simple soup like this.
1 tsp smoked paprika, 1 tsp dried thyme, 1 bay leaf
Simple seasoning. The smoked paprika is key — don’t substitute regular paprika.
2 tbsp olive oil
And more to drizzle at the end. It matters.
Salt, pepper, lemon juice
Season at the end, when you can taste the full flavour.

Method

  • Sweat the onion, celery, and garlic in olive oil over medium heat for 7–8 minutes. Add the smoked paprika and thyme, stir for one minute.
  • Add the tomatoes, beans, stock, and bay leaf. Bring to a boil then simmer for 15 minutes.
  • Remove about one-third of the soup and blend until smooth. Return it to the pot — this creates a thick, creamy base without losing the whole-bean texture.
  • Add the kale and simmer for 5–7 more minutes until wilted and tender. Season well with salt, pepper, and lemon juice. A drizzle of olive oil over each bowl at serving is not optional.

Full recipe: smoky black bean chilli

This is a meal-prep staple. It takes about forty minutes the first night and then provides lunch for three or four days. The flavour deepens every day it sits in the fridge, which is something most fresh dishes can’t claim.

2 cans black beans (800g) – These carry most of the protein — about 15g per cup cooked.

1 can kidney beans (400g) – Adds texture variety. Keeps its shape better than black beans.

1 can diced tomatoes + 2 tbsp tomato paste – Paste intensifies the base. Don’t skip it.

1 red pepper, 1 green pepper, diced – Add bulk and natural sweetness. Dice into chunks, not tiny pieces.

2 tsp smoked paprika, 2 tsp cumin, 1 tsp chipotle powder – The smoky, slightly hot flavour profile. Chipotle is the one you don’t want to skip.

250ml vegetable stock – Just enough to bring everything together without making it soupy.

1 tbsp olive oil, 1 large onion, 4 garlic cloves – Aromatics. Dice the onion, mince the garlic.

1 avocado, lime juice, fresh coriander – For serving. The avocado adds the healthy fat component that makes this genuinely filling.

  • Cook onion in oil for 7 minutes. Add garlic and peppers, cook 3 more minutes. Add all spices and tomato paste, stir for 2 minutes.
  • Add both cans of beans, diced tomatoes, and stock. Stir and simmer uncovered for 20–25 minutes, until the chilli is thick and the peppers are completely soft.
  • Season generously. The chipotle powder is already there for heat, but taste and adjust with salt and a squeeze of lime. Serve topped with sliced avocado and coriander. Over brown rice or with corn tortillas.

Full recipe: chickpea tikka masala

This recipe uses a few more ingredients than the others, but most of them are dried spices. The sauce is a proper tomato and coconut milk base — rich, slightly sweet, just spicy enough. Chickpeas hold their texture in a way that makes them unusually satisfying to eat in a sauce context.

2 cans chickpeas (800g) – Drained but save the liquid. Aquafaba from the tin can thicken the sauce if needed.

1 can full-fat coconut milk – Full fat, not reduced fat. The fat content is part of what makes this meal satisfying.

1 can diced tomatoes + 2 tbsp tomato paste – The tomato base. Paste adds intensity.

1 large onion, 4 garlic cloves, 1 thumb ginger – Blended together or finely minced — the paste base for the sauce.

2 tsp garam masala, 1 tsp cumin, 1 tsp coriander, 1 tsp turmeric, ½ tsp chilli powder – The spice profile. Adjust chilli to preference.

Fresh coriander, lemon juice, salt – To finish. The lemon at the end is important — it lifts the whole dish.

  • Fry the onion, garlic, and ginger in oil until deep golden — at least 10 minutes. This is the longest step but it’s where the flavour is built.
  • Add all spices and tomato paste. Stir for 2 minutes. Add diced tomatoes and cook down for 5 minutes until the mixture looks thick and starts to separate from the oil slightly.
  • Add chickpeas and coconut milk. Stir, bring to a simmer, and cook for 15–20 minutes until the sauce thickens and coats the chickpeas. Season with salt and finish with a squeeze of lemon. Serve over basmati rice with fresh coriander.

Four more recipes — shorter format

Peanut noodles with crispy tofu

Press and cube firm tofu, toss in cornstarch and soy sauce, bake at 200°C for 25 minutes until crispy. Make a sauce from 3 tbsp peanut butter, 2 tbsp soy sauce, 1 tbsp rice vinegar, 1 tsp sesame oil, 1 tsp chilli paste, and enough water to thin to a pourable consistency. Toss with soba or rice noodles and serve topped with the tofu, sliced spring onions, and sesame seeds. The peanut butter is where the fat and protein both come from — don’t reduce it.

Lentil shepherd’s pie

Simmer 300g green or brown lentils with diced carrot, onion, celery, mushrooms, tomato paste, thyme, and vegetable stock until thick — about 30 minutes. Season well. Transfer to a baking dish and top with mashed potato (made with plant milk and olive oil). Bake at 190°C for 25 minutes until the top is golden. The lentil filling keeps beautifully in the fridge and reheats well under fresh mashed potato if needed.

Tempeh bolognese

Crumble 300g tempeh into a hot pan with oil and cook until it develops some brown colour — about 8 minutes. Add onion, garlic, carrot, celery, and cook until soft. Add a full jar of good tomato passata, a spoon of tomato paste, red wine if you have it, thyme, salt, and pepper. Simmer for 25–30 minutes until thick and rich. Serve over whole wheat spaghetti. The tempeh provides more protein per serving than most meat bolognese recipes.

Moroccan chickpea tagine

In a large pot, cook onion and garlic with 1 tsp cinnamon, 1 tsp cumin, 1 tsp coriander, ½ tsp turmeric, and ¼ tsp cayenne. Add diced sweet potato, a can of chickpeas, a can of diced tomatoes, 400ml vegetable stock, and a handful of dried apricots. Simmer 25 minutes until the sweet potato is tender. Add a squeeze of lemon, a handful of fresh coriander, and preserved lemon rind if you have it. Serve over couscous or with flatbread. The sweet-savoury combination here is one of the most satisfying in vegan cooking.

Vegan protein — quick reference

For anyone tracking, here are the key protein contributors used across these recipes:

Red lentils
(cooked)
9g per 100g
Chickpeas
(cooked)
9g per 100g
Black beans
(cooked)
8.9g per 100g
Cannellini beans
(cooked)
8.7g per 100g
Tempeh
(raw)
19g per 100g
Firm tofu
(raw)
8–12g per 100g

Meal prep and batch cooking notes

Every recipe in this article is batch-cook friendly. Most of them taste better the following day. That’s not faint praise — it’s a practical advantage that significantly changes how useful they are in a real working week.

DahlKeeps 5 days refrigerated, 3 months frozen. Thickens as it cools — add a splash of water when reheating.

White bean stewKeeps 4 days. The kale wilts further in the fridge but stays flavourful. Stir before reheating.

Black bean chilliArguably best on day 3. Keeps 5 days. Freezes very well — one of the best freezer meals here.

Chickpea tikkaKeeps 4 days. The coconut milk sauce can separate slightly when cold — just stir and reheat gently.

Tempeh bolognese Freezes well without the pasta. Cook pasta fresh when serving from frozen.

Tagine Improves over 3–4 days. Serve from a different grain each day — couscous, rice, flatbread — and it feels like a different meal.

The single most useful thing you can do if you’re cooking vegan food regularly is to keep cooked legumes in your fridge. A container of cooked lentils or chickpeas means any of these recipes can be assembled in fifteen to twenty minutes instead of forty. Dried and canned both work, but canned removes all the planning from the equation.

Leave a Comment