Top TenPlates
EnglishEspañol
Plate 03 of 10

Moqueca baiana

Fish stewed under a lid in coconut milk and dendê until the broth turns orange-gold and the fillets just flake. Peppers, tomato, and onion build the bed; cilantro and lime finish it.

Prep
25 min
Cook
40 min
Serves
4 generous servings
Difficulty
Medium

Researched · Kitchen testing pending

Choose a format. The print preview will show how many pages it needs.

Ingredients, equipment, short steps and storage. Recipes with several components may need more than two pages.

Complete instructions, ingredient notes and storage guidance.

An orange-gold fish stew in a dark clay pot, with pepper strips, tomato rounds, and chopped cilantro over the top.
Share this platePinterest (opens a new tab)

Moqueca baiana is fish stewed under a lid in coconut milk and dendê until the broth turns orange-gold and the fillets just flake. Peppers, tomato, onion, and cheiro-verde build the base; lime finishes it.

Clay holds heat so you can turn the burner low without losing the simmer, which is exactly what fish wants. Lime at the start seasons; lime at the end wakes the fat up. Cilantro and green onion are the counterpoint — without them the stew tastes heavy.

About the cilantro stems: I chop the tender ones in with the leaves. They carry aroma and do not go stringy in hot sauce. Only the thickest woody ends get discarded. Parsley alone is a pale substitute — I would rather double the cilantro than pretend parsley is the same herb.

I still cook this when I want the table to go quiet for a second after the lid comes off. That quiet is how I know the stew did its job.

Ingredients

  • Fish, and optional shrimp

  • 800 gFirm white fish, in steaks or thick filletsnamorado, cação, or snapper by preference. Grouper, halibut, or thick cod steaks work
  • 200 gMedium shrimp, peeled and deveinedoptional, but traditional in plenty of Bahia kitchens
  • 60 mlLime juice, from about 2 limesplus wedges for the table
  • 1 tspFine salt, plus more to taste
  • ½ tspFreshly ground black pepper
  • The vegetable bed

  • 400 gYellow onions, sliced into half-moons
  • 4 clovesGarlic, minced
  • 350 gTomatoes, sliced into rounds
  • 1Red bell pepper, seeded and sliced into strips
  • 1Yellow or green bell pepper, seeded and sliced into strips
  • 1 smallChilli — malagueta or serrano — mincedseed it if you want it milder
  • Fats and liquid

  • 3 tbspDendê (red palm oil)do not skip it. This is the ingredient that makes the dish Bahian rather than generic
  • 400 mlFull-fat coconut milk, well shakenlight coconut milk makes a thin, sad sauce that never coats the fish
  • 2 tbspOlive oil or neutral oil, for the onion sweat
  • 120 mlFish stock or wateronly if the pot looks dry partway through
  • The green finish

  • 40 gCilantro, roughly choppedstems and all, minus the woody ends
  • 1 small bunchGreen onions, slicedcheiro-verde, if you can buy the bundled scallion-and-cilantro mix
  • For the table

  • 300 gLong-grain white rice, cooked plain
  • a small bowlFarofa (toasted manioc flour)
  • 2Limes, in wedges, plus extra cilantro

Dendê, and what it is not

Dendê is not "palm oil for colour." It is unrefined red palm oil, and it carries a distinctive fermented-nut aroma that defines Bahia's Afro-Brazilian kitchen. The refined clear palm oil from the baking aisle is not a substitute. Look for it labelled for cooking, usually in Latin or African grocery aisles. The colour in the bottle should be a vivid orange-red. If it smells like crayons or paint, skip that brand. Opened, it keeps for months in a cool cupboard. It may semi-solidify — that is normal. Scoop what you need and warm it in the pan.

A cousin, in one sentence

Capixaba moqueca from Espírito Santo skips dendê and uses urucum for colour. It is a relative of this dish, not a version of it. This recipe is Bahia.

At the fish counter

I start here, not in the pantry. Ask for steaks cut the morning you cook. The smell should be clean ocean, never ammonia. Frozen fish works if you thaw it overnight in the fridge on a rack so the water drains — then pat it very dry before the lime, or the sauce turns watery. Avoid oily fish. Salmon fights dendê. And avoid fillets so thin they dissolve; the pieces need to survive a covered simmer.

Peppers and tomatoes

Firm, glossy peppers. Soft ones turn muddy in the stew. Tomatoes ripe enough to be sweet but still firm enough to hold a slice — overripe ones dissolve into pink water.

Equipment

  • A panela de barro (unglazed clay pot), or a heavy enamelled Dutch oven
  • A lid that fits
  • A bowl for the lime cure
  • A cutting board for raw fish, washed hot afterwards
  • A wide spoon, for basting rather than stirring

Clay is ideal because it holds gentle, even heat and keeps the sauce from scorching while the fish steams. A heavy enamelled Dutch oven is the honest substitute. Avoid thin stainless steel if you have any other option.

Method

  1. Cure the fish in lime15 min, while you prep

    Pat the fish dry and cut it into large serving pieces, roughly 4–5 cm / 1½–2 in thick so they will not fall apart in the pot.

    Toss with the lime juice, salt, and pepper. If you are using shrimp, keep them in a separate bowl and salt them lightly — they go in much later.

    Rest 15 minutes while you cut vegetables. The acid firms the surface and seasons into the flesh without "cooking" it the way a long ceviche cure would.

    If frozen, thaw fish overnight in the fridge on a rack. Pat dry and cut into 4–5 cm / 1½–2 in thick pieces; toss with lime, salt and pepper and rest 15 minutes. Keep optional shrimp separately, lightly salted.

  2. Sweat the onions12 min

    Warm the olive oil in the clay pot or Dutch oven over medium — about 160–170 °C / 320–340 °F at the surface, or until a strip of onion sizzles gently on contact.

    Onions and a pinch of salt. Cook 6–7 minutes, stirring, until translucent and sweet at the edges. Garlic and chilli, 1 minute more, until fragrant.

    Do not brown the garlic. Bitter garlic fights coconut and there is no way back from it.

    Warm olive oil over medium to 160–170 °C / 320–340 °F, or a gentle sizzle. Stir onions with a pinch of salt 6–7 minutes until translucent; add garlic and chilli for 1 minute, without browning the garlic.

  3. Build the bed8–10 min

    Lay in the bell pepper strips. Cook 4–5 minutes until they soften and lose the raw crunch but still hold their colour.

    Nestle the tomato slices on top and around. Cover and cook 4–5 minutes more, so the tomatoes release their juice and collapse a little.

    You want a soft bed, not a purée. The structure matters — the fish is about to sit on this mattress.

    Cook pepper strips 4–5 minutes until softened but still colourful. Arrange tomato slices over and around them; cover and cook another 4–5 minutes until juicy and slightly collapsed, retaining a structured vegetable bed.

  4. Bloom the dendê, then the coconut5 min

    Push the vegetables aside and pour the dendê into the clear spot so it hits hot ceramic or enamel directly. In 30 to 45 seconds it blooms from brick-red to a deeper orange and smells nutty and earthy. That bloom is the reason you heat it separately instead of stirring it in cold.

    Stir everything together, then pour in the coconut milk. Bring it just to a gentle simmer — do not boil hard, or the coconut splits into oily pools.

    Taste the sauce now. It should already read rich, a little sweet from the coconut, savoury from the onion. Adjust the salt here.

    Clear a space and heat dendê directly against the hot pot for 30–45 seconds until fragrant and deeper orange, without smoking. Stir into vegetables, add coconut milk and bring just to a gentle simmer. Taste and adjust salt; avoid hard boiling.

  5. The fish goes in12–15 min

    Nestle the fish into the sauce in a single layer, spooning liquid over the tops. Cover. Low heat — the sauce should quiver, not roll — for 8 to 10 minutes depending on thickness.

    Shrimp go in for the last 4–5 minutes only. They turn from translucent grey to opaque pink and curl into loose C shapes. Held longer they go tight and rubbery.

    The fish is done when it flakes under a fork but still looks moist at the centre, about 60–63 °C / 140–145 °F, and the sauce coats a spoon without being gluey. Dry-looking pot: a splash of stock. Thin sauce: uncover for the last 3 minutes.

    Do not stir and do not flip. Spoon the sauce over instead.

    Nestle fish in one layer, spoon sauce over and cook covered on low 8–10 minutes. Add shrimp only for the final 4–5 minutes, until opaque pink and loosely curled. Fish should flake moistly at 60–63 °C / 140–145 °F. Do not stir or flip; add stock if dry, or uncover the final 3 minutes if thin.

  6. The green finish1 min

    Kill the heat. Fold in most of the cilantro and all the green onion — the residual heat wilts them without turning them khaki.

    A squeeze of fresh lime over the top. Taste once more: you are looking for a bright edge against the fat of the dendê and coconut.

    If the pot is clay, carry it to the table and lift the lid there. Part of this dish is watching people lean into the steam.

    Turn off the heat and gently fold in most cilantro and all green onion. Squeeze fresh lime over the top, taste for brightness, and bring the pot to the table with rice, farofa and extra lime.

Checkpoints

Dendê at bloom

Warm, fragrant, deepened in colour — not smoking. Smoking dendê tastes acrid and cannot be rescued.

The simmer

90–95 °C / 195–205 °F. Small bubbles at the edges of the pot, nothing rolling.

The fish

Opaque all the way through, about 60–63 °C / 140–145 °F. Pull it earlier if the pieces are thin.

The final sauce

Coats the back of a spoon. Oil and coconut look unified, not separated into slicks.

Heat management, clay against enamel

Clay

Climbs slowly and holds. Start on medium and drop to low once the coconut is in. A new or thin-walled pot wants a diffuser plate over a gas burner.

Enamel

Responds much faster. Watch for scorching at the edges of the sauce and stir the vegetable bed once or twice before the fish goes in.

Either way

Never turn the heat up to finish faster after the fish is nestled. You will curdle the coconut and toughen the protein in the same mistake.

Storing it

Cooling and keeping

Cool completely within 1 hour and refrigerate covered, up to 2 days. Reheat gently over low heat until the sauce steams and the fish is hot through — about 74 °C / 165 °F in the thickest piece. Do not boil, or the fish toughens. Freeze the sauce alone up to 1 month if you must. Fish texture suffers badly after freezing in the sauce. Dendê solidifies slightly when cold. That is normal; it melts again on heat.

Leftovers, honestly

The fish is softer on day two. Still good, just different. If you planned leftovers on purpose, pull a few pieces out before they soften and chill them separately, then reunite them when you reheat. Fresh herbs fade overnight — stir in a new handful of cilantro when reheating. Leftover rice fried the next day with a spoon of the reheated sauce is one of the quiet rewards of making a full pot.

Raw fish and shrimp

Clean board, and wash knives and hands before touching herbs or rice. Do not leave the finished pot out more than 2 hours, or 1 hour above about 32 °C / 90 °F. Discard anything that smells sharply sour or ammoniated.

Troubleshooting

The sauce split, with oil floating on top.

Heat too high after the coconut went in, or dendê added cold into boiling liquid. Whisk off the heat with a spoonful of warm coconut milk. Or accept a little separation — the flavour is fine, the texture is just less silky.

The fish fell apart.

Pieces too thin, or you stirred. Next time use steaks, nestle them without flipping, and spoon the sauce over instead of turning.

It tastes bitter or harsh.

Browned garlic, or smoked dendê. Start over on the aromatics — burnt dendê cannot be saved.

Too mild.

More salt, a squeeze of lime, a pinch of chilli. Dendê's flavour blooms with salt, so under-salting reads as flat rather than as delicate.

Thick and pasty.

60–120 ml / ¼–½ cup warm stock or water, then simmer uncovered 2 minutes.

Rubbery shrimp.

They sat in the pot too long. Add them later next time — 4 to 5 minutes is genuinely all they need.

Substitutions

Traditional — the Bahia path

A clay pot, dendê used generously, coconut milk, peppers, tomato, onion, and a lot of cilantro and cheiro-verde, with fish or fish plus shrimp. Farofa and rice on the side are expected, not optional.

Departures I make, and label

Olive oil for the onion sweat, so the dendê is reserved for the bloom. Some cooks put dendê in from the start; I prefer it this way. The shrimp as an optional add-in on separate timing. A Dutch oven for those without a panela de barro.

Shrimp only

800–900 g / 1¾–2 lb shrimp and no fish, added in the last 5 to 6 minutes. Call it shrimp moqueca and everyone knows what they are getting.

Not in this pot

Tomato paste, cream, or curry powder. All three push it toward generic stew. A vegetarian version is not this dish's point. If you insist, hearts of palm or mushrooms make a different recipe — and it still needs dendê and coconut to nod at Bahia at all.

Scaling

Fish thickness sets the timing, not pot size. A bigger pot does not mean a longer simmer.

Half and double

Half, for 2: halve the fish, shrimp, coconut, and vegetables — but keep about 2 tbsp of dendê so Bahia still reads on the plate. Double, for 8: two pots, or one very wide Dutch oven, so the fish stays in a single layer. Season the sauce before the fish goes in, then taste again after.

When you need volume

Peppers and onion stretch further than fish does. Add there rather than cutting the fish thinner.

What to serve it with

Rice goes on the table first — plain long-grain, steamed, no butter, so the stew's own fat leads.

  • Farofa in a small bowl, sprinkled over each serving for crunch
  • Lime wedges, on the table for the whole meal — people re-squeeze
  • Pirão, the soft manioc gravy, when you want it
  • Cold beer, or água de coco

I often skip the pirão when the coconut-dendê sauce is already thick enough to sauce the rice. Heavy red wine does not fit this dish.

Questions

Can I skip the dendê?

Then you are not making moqueca baiana. Urucum oil drifts you toward Capixaba. Without either, it is fish in coconut milk — good, but call it what it is.

What fish if I cannot find the Brazilian species?

Snapper, grouper, halibut, or thick cod steaks. Avoid oily fish like salmon; the flavour clashes with dendê.

How do I care for a clay pot?

Season it and use it over moderate heat, and avoid thermal shock — no cold water on a hot pot. Many Brazilian clay pots are sold already cured, so follow the maker's note.

How spicy should it be?

Fragrant more than fiery. One small chilli is right for most tables. Put malagueta on the side for anyone chasing heat.

Can I make it ahead?

The vegetable and coconut base holds 1 day refrigerated. Add the fish and shrimp when you reheat, so the texture is right for guests.

Why not just boil it and be done faster?

Coconut milk breaks, fish overcooks, and the dendê aroma turns harsh. Gentle heat is not a preference here, it is the technique.

How much dendê is too much?

When the sauce smells acrid or coats your mouth waxily, you either overdid it or smoked the oil. Start at 3 tbsp and drizzle a teaspoon more at the table if you want the aroma.