Vegan Moqueca Recipe: A Creamy Brazilian Stew With Tofu

Vegan Moqueca Recipe: A Creamy Brazilian Stew With Tofu

A good vegan moqueca recipe is what you make when you want the comfort of a stew but you don’t want it heavy, or you’re cooking for people with different diets. You still get the soul of moqueca: a coconut milk base, tomatoes, peppers, lime, cilantro, and that gentle simmer that makes everything taste like it belongs together. The trick is replacing seafood with something that stays tender and satisfying. That’s where firm tofu shines.

I’ve cooked plant-based moqueca both ways: tofu stirred straight into the sauce (fast, but sometimes soft) and tofu browned first (more work, but the texture is worth it). This guide gives you a full recipe, plus the practical fixes that vegan versions often skip: how to keep tofu from going mushy, how to adjust spice, and how to make a Bahian-style stew even when you can’t find dendê oil.

What Is a Vegan Moqueca Recipe?

A vegan moqueca recipe is a plant-based adaptation of moqueca, a Brazilian stew traditionally associated with Bahia (often called Moqueca Baiana). In place of fish or shrimp, the vegan version uses tofu cubes (soy protein) or a vegetable-forward mix while keeping the signature coconut-tomato broth, onion and garlic aromatics, lime juice for brightness, and cilantro as a fresh herb finish.

Moqueca fits into the “stew” and “Brazilian cuisine,” and more broadly into Latin American food culture. In this version, the meronyms stay familiar: diced tomatoes, bell pepper slices, garlic cloves, coconut broth, lime wedges, and a cilantro garnish. The biggest shift is the protein substitute. Tofu brings plant protein and a mild flavor that absorbs the sauce instead of fighting it.

You’ll also hear moqueca used as both a dish name and a regional style, which makes it a bit of “moqueca” can mean the stew itself, but also a particular Bahian approach that leans rich with coconut milk and sometimes dendê (palm) oil.

What Makes Vegan Moqueca Taste “Real”

A lot of vegetarian Brazilian stew recipes taste like coconut vegetable curry with a Brazilian name. The difference comes down to structure and sequencing.

First, the base. You need onion and garlic cooked until sweet and translucent, not browned and sharp. Then tomatoes cook down until jammy so the stew tastes like a sauce, not like raw salsa floating in coconut milk.

Second, the acid. Lime juice is not optional. It wakes up coconut milk, sharpens the peppers, and keeps the stew from feeling flat. This is one reason moqueca feels bright even when it’s rich.

Third, the fat choice. Traditional Moqueca Baiana often uses dendê oil, which gives an earthy aroma and an orange tint. If you can’t find it, olive oil works fine, but the stew will lean more “adapted” than “authentic.” When I’m cooking for someone who’s new to moqueca, I’ll sometimes use half olive oil and half virgin coconut oil. It’s not dendê, but it keeps the tropical feel.

Finally, the protein. Tofu is the most reliable fish substitute because it stays mild and absorbs the coconut-tomato base. But tofu has one weakness: if it’s too wet or too soft, it turns spongy and breaks apart. The recipe below fixes that.

This flavorful vegan moqueca recipe pairs beautifully with Rice, which absorbs the rich coconut milk broth and enhances every bite. Serving it with fluffy rice creates a balanced, comforting meal inspired by traditional Moqueca flavors—completely plant-based and satisfying.

The Best Vegan Moqueca Recipe With Tofu​
Recipe
Vegan Tofu Moqueca — BrazilEats
🌿 BrazilEats
🌱 100% Vegan

Vegan Tofu
Moqueca

Creamy coconut-tomato Brazilian stew with roasted butternut squash, golden tofu, and bell peppers. Rich, hearty, completely plant-based.

👥 Serves 5
Prep: 15 min
🔥 Cook: 35 min
🥥 Coconut Milk
🇧🇷 Bahian-Inspired
Adjust Servings
base = 5 servings
5

Ingredients

Squash & Base
~1 kg
butternut squash, peeled, deseeded, diced into 2 cm cubes (1 medium / 2.2 lb)
2 tbsp
olive oil, divided (1 tbsp for squash, 1 tbsp for tofu)
1 large
brown onion, finely chopped
1½ tbsp
virgin coconut oil (or olive oil)
4 cloves
garlic, crushed or minced
1 piece
fresh ginger, 2-inch (5 cm), grated
1
red chili, finely chopped (or to taste)
3–4 medium
tomatoes, finely chopped
Coconut Broth & Vegetables
400 ml
full-fat coconut milk (1 can)
240 ml
strong vegetable stock (1 cup)
1 lime
lime juice (plus wedges for serving)
2
red bell peppers, thinly sliced
100 g
green beans, trimmed
150 g
frozen spinach
Tofu & Finish
300 g
firm tofu, well-drained and diced
Extra-firm preferred — press for 10–15 min before dicing
handful
fresh coriander (cilantro), finely chopped
to taste
salt and pepper

How to Press Tofu

🧱 The 3-step press method — no special equipment needed
🧻
Wrap in towel
Clean kitchen towel or multiple paper towels around the block
🪨
Stack weight
Cutting board + heavy pan on top — 10–15 minutes
🔪
Dice & brown
Cut into bite-size cubes and fry until golden

Instructions

1
Press the Tofu
Do First

Drain tofu and press it for 10–15 minutes: wrap in a clean towel, put a cutting board and heavy pan on top. Then dice into bite-size cubes.

🧱 This one step makes a bigger texture difference than any seasoning. Pressed tofu browns and holds its shape; unpressed tofu stays soft and watery in the stew.
2
Roast the Squash
Worth It

Heat oven to 200°C / 400°F. Toss squash with 1 tbsp olive oil and a good pinch of salt. Roast for 25–30 minutes until tender and lightly browned at the edges.

🎃 Optional but worth it: roasting caramelizes the squash's sugars, adding depth and a rounded sweetness. Skipping it gives a lighter, less complex stew.
3
Build the Flavor Base Slowly

In a large pot, warm coconut oil over low heat. Add onion and cook about 10 minutes until soft and translucent. Add garlic, ginger, and chili; cook 1 minute until fragrant.

💡 Low and slow for the onion — 10 minutes builds real sweetness. Rushing this step and you lose the base flavor that everything builds on.
4
Cook the Tomatoes Down

Add chopped tomatoes and cook 8–10 minutes until they collapse and the mixture looks thick, not watery.

🍅 If tomatoes are pale or out of season, a spoonful of tomato paste can help — but it's optional. What you're looking for is a jam-like texture, not a loose sauce.
5
Create the Coconut Broth

Add coconut milk, vegetable stock, lime juice, salt, and pepper. Bring to a gentle simmer.

🥥 If the sauce looks thin, simmer uncovered for 2–3 minutes before adding vegetables. The broth should coat a spoon lightly before you move on.
6
Simmer Vegetables in Stages
Order Matters

Add vegetables in stages so nothing turns to mush:

1
Bell peppers + green beans
Simmer 7–8 minutes until tender-crisp
🫑🫘
2
Frozen spinach
Simmer 2 minutes more
🥬
3
Browned tofu + roasted squash
Stir in gently at the end
🧊🎃
7
Brown the Tofu
Key Step

Heat 1 tbsp olive oil in a skillet over medium-high heat. Fry tofu cubes until golden on several sides.

🟡 This is the difference between "soft tofu in soup" and tofu that feels satisfying — a golden crust gives it a seafood-like texture and meaty bite. Don't skip it.

Add browned tofu and roasted squash to the stew and stir gently so pieces stay intact.

8
Finish with Cilantro & Adjust

Add chopped cilantro, taste, and adjust with more salt, pepper, chili, or an extra squeeze of lime.

🌿 Serve with white rice and, if you like, fried plantain. The cilantro and lime at the end are what make it taste bright and fresh instead of heavy.

Quick Fixes

💧
Stew too thin?
Simmer uncovered 5–8 minutes before adding cilantro.
🧊
Tofu too soft?
Press longer next time, or buy extra-firm tofu and brown it harder.
🌶️
Too spicy?
Add 60–120 ml extra coconut milk and warm through to calm it down.
😶
Too mild?
Add chili late and let it warm through for 2 minutes — fresh heat is more vibrant.

Notes

🌱
Make It Vegetarian (Not Vegan)
Finish with a small spoon of Greek yogurt or crème fraîche at the table for tang. Not traditional, but a gentle bridge for readers new to coconut-based stews.
Total Time
50 minutes including roasting. If skipping the squash roast, about 40 minutes total.
❄️
Storage
Refrigerate up to 4 days. Reheat gently over low heat. Tofu may soften further on day 2 — that's fine.
🎃
Squash Swap
Sweet potato or pumpkin work equally well. Dice to same 2 cm cubes for even roasting.
🍽
Serve With
White rice, fried plantain, and lime wedges. Cilantro and lime are essential — they lift the whole dish.

Vegan vs Traditional: Keeping It Authentic Without Seafood

A helpful way to think about vegan moqueca is “authentic vs adapted.” You want the adapted version to respect the original blueprint: coconut milk base, tomatoes, bell peppers, lime, cilantro, and a gentle simmer. The “seafood” element becomes tofu, and the “ocean” flavor comes from balancing salt, acid, and aromatics rather than trying to mimic fish exactly.

If you want to push it closer to a coastal vibe, add a small amount of seaweed (like a strip of nori or a pinch of dulse) while simmering, then remove it. That gives a subtle umami note without turning the stew into something else. It’s a practical application most competitors don’t include because it’s a bit counterintuitive, but it works.

This is also where “palm” becomes a fun it can mean a tree (as in palm trees) or an oil ingredient. In Bahian-style moqueca, palm oil is the ingredient; in a vegan kitchen, it may be the thing you swap.

Baiana vs Capixaba in a Vegan Context

Moqueca Baiana and Moqueca Capixaba only in the traditional fish context. The vegan twist changes the comparison in useful ways.

  • Baiana-style vegan moqueca stays rich and tropical. Coconut milk carries the stew, and dendê oil (or an olive oil substitute) adds depth. Tofu feels “right” here because the sauce is bold enough to coat it.
  • Capixaba-style vegan moqueca is lighter and more tomato-forward. If you skip coconut milk, the stew becomes closer to a simmered dish with peppers, tomatoes, herbs, and stock. It can be excellent, but tofu needs more browning and stronger seasoning to feel satisfying because the broth is thinner.

A practical takeaway: if your goal is a comforting, creamy bowl that’s clearly a vegan moqueca recipe, the Baiana direction is the easier win. If you want a lighter weeknight stew that still nods to Brazilian coastal cuisine, go Capixaba-inspired and use more tomatoes, herbs, and stock.

For the bigger picture of where moqueca fits in Brazilian coastal cuisine and Afro-Brazilian culinary tradition, see our complete guide to Brazilian cuisine and coastal classics

Practical Tips You Can Use Immediately

  • Press tofu even when you’re in a hurry. Ten minutes changes everything. If you skip it, you’ll get a spongy vs firm texture.
  • Simmer gently, not aggressively. A hard boil can make vegetables limp and tofu rubbery.
  • Add spinach late. Frozen spinach only needs a couple minutes to warm through.
  • Use lime in two moments: a little in the broth and more at the end. That keeps it bright and prevents “flat coconut” flavor.
  • Roast squash when you want depth. If you’re doing the no-roast shortcut, cut squash smaller and add it earlier so it cooks evenly without turning mushy.

Common Mistakes to Avoid

  • Adding all vegetables at once. Green beans and peppers need time, spinach doesn’t. Overcooking makes the stew feel tired rather than fresh.
  • Skipping tomato reduction. If tomatoes aren’t cooked down, the broth tastes watery and the coconut milk can feel separated.
  • Using soft tofu. Silken tofu will break apart in a stew. Stick to firm or extra-firm tofu cubes.
  • Overdoing the chili early. It’s easy to make it too spicy. Build heat gradually so you can land in “mild vs spicy” exactly where your readers want it.

FAQ

Moqueca is made of a tomato base with onion and garlic, bell peppers, herbs like cilantro, and a simmered broth that is often built with coconut milk in Bahian versions. In a vegan moqueca recipe, tofu cubes replace fish or shrimp.

Moqueca can be mild or spicy depending on the chili peppers used. This vegan version lets you control heat by adding less chili early and finishing with extra lime for brightness instead of more spice.

Dendê oil is Brazilian palm oil used in Moqueca Baiana for its distinctive aroma and orange color. If you can’t find it, olive oil works as a substitute, though the flavor will be more adapted than traditional.

Moqueca can be made vegetarian by using tofu or vegetables as the protein base. This vegan moqueca recipe is fully plant-based, but it still tastes like a Brazilian stew because the coconut-tomato-lime structure stays intact.

Traditional moqueca often uses firm white fish such as cod, halibut, or sea bass, and some versions add shrimp. Vegan versions skip seafood and rely on tofu moqueca or mixed vegetables.

Moqueca Baiana is usually richer and more tropical with coconut milk and often dendê oil, while Moqueca Capixaba is typically lighter and more tomato-forward. In vegan cooking, Baiana-style is usually easier because the coconut broth gives tofu more support.

Olive oil is the simplest substitute for dendê oil, and virgin coconut oil can add a tropical note. If you use substitutes, keep the lime and cilantro strong so the stew still feels like moqueca rather than generic coconut curry.

Moqueca can remind people of curry because it uses coconut milk and a simmered sauce, but the flavor profile is different. Lime, tomatoes, peppers, and cilantro pull it toward Brazilian coastal cuisine rather than Indian spice blends.

Wrap-Up: Your New Weeknight Vegan Moqueca Recipe

A reliable vegan moqueca recipe isn’t about pretending tofu is fish. It’s about building a coconut-tomato broth that’s bright with lime, fragrant with garlic and ginger, and finished with cilantro so it tastes fresh, not heavy. Press and brown the tofu, simmer gently, and you’ll get a stew that feels both comforting and distinctly Brazilian.

Next step: make it once as written, then try one variation the next time (Capixaba-inspired lighter broth, or more vegetables with less tofu). For more Brazilian plant-based ideas, visit our complete guide to Brazilian cuisine

Share this post:
Santos Camila​

Santos Camila​

My name is Camila Santos, and food has been the center of my world for as long as I can remember. I grew up watching my grandmother cook in a small kitchen

Leave a Reply

Your email address will not be published. Required fields are marked *