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

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.
Fish, and optional shrimp
- 800 g1¾ lbFirm white fish, in steaks or thick filletsnamorado, cação, or snapper by preference. Grouper, halibut, or thick cod steaks work
- 200 g7 ozMedium shrimp, peeled and deveinedoptional, but traditional in plenty of Bahia kitchens
- 60 ml¼ cupLime juice, from about 2 limesplus wedges for the table
- 1 tsp1 tspFine salt, plus more to taste
- ½ tsp½ tspFreshly ground black pepper
The vegetable bed
- 400 g2 mediumYellow onions, sliced into half-moons
- 4 cloves4 clovesGarlic, minced
- 350 g2 ripeTomatoes, sliced into rounds
- 11Red bell pepper, seeded and sliced into strips
- 11Yellow or green bell pepper, seeded and sliced into strips
- 1 small1 smallChilli — malagueta or serrano — mincedseed it if you want it milder
Fats and liquid
- 3 tbsp3 tbspDendê (red palm oil)do not skip it. This is the ingredient that makes the dish Bahian rather than generic
- 400 ml1⅔ cupsFull-fat coconut milk, well shakenlight coconut milk makes a thin, sad sauce that never coats the fish
- 2 tbsp2 tbspOlive oil or neutral oil, for the onion sweat
- 120 ml½ cupFish stock or wateronly if the pot looks dry partway through
The green finish
- 40 g1 large bunchCilantro, roughly choppedstems and all, minus the woody ends
- 1 small bunch1 small bunchGreen onions, slicedcheiro-verde, if you can buy the bundled scallion-and-cilantro mix
For the table
- 300 g1½ cupsLong-grain white rice, cooked plain
- a small bowla small bowlFarofa (toasted manioc flour)
- 22Limes, 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
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.
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.
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.
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.
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.
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.