
Moqueca de Peixe
When I first learned to make moqueca de peixe, I didn’t realize how deeply it was tied to the rhythm of the Brazilian coast. This dish didn’t just emerge from a single kitchen; it was born along the shores of Bahia and Espírito Santo, where Indigenous techniques met Portuguese influences and African culinary wisdom. The slow simmering of firm white fish in coconut milk, dendê oil, and fresh aromatics isn’t just a cooking method—it’s a quiet homage to generations who understood how to coax richness from the sea and soil. To me, moqueca matters because it refuses to be rushed. It asks for patience, for the kind of attention that honors the ingredients rather than overpowering them. Yet I’ve watched countless cooks stumble over the same pitfalls. The most common is treating dendê oil as a mere garnish rather than a foundational flavor; skip it, or use too little, and you lose the dish’s soul. Another frequent misstep is boiling the sauce too vigorously, which splits the coconut milk and turns the broth grainy instead of silky. Some even crowd the pan with delicate fish, causing it to break apart before it can absorb the fragrant broth. When I cook this, I remind myself that moqueca isn’t a recipe to conquer, but a conversation to join. It rewards restraint, respects balance, and ultimately tastes like the coast itself—bright, complex, and deeply comforting.
Nutrition
| Per serving | Calories | Protein | Carbs | Fat | Sat fat | Fibre | Sugar | Sodium |
|---|---|---|---|---|---|---|---|---|
| beginner | 605kcal | 40g | 24g | 38g | 26g | 5g | 12g | 910mg |
| intermediate | 605kcal | 40g | 24g | 38g | 26g | 5g | 12g | 910mg |
| expert | 605kcal | 40g | 24g | 38g | 26g | 5g | 12g | 910mg |
Per serving · Ava-estimated — a guide, not a clinical figure.
- 800 gfirm white fish fillet— skinless, cut into 4cm chunks
- 2 wholelime— juiced, plus extra wedges for serving
- 300 gyellow onion— thinly sliced into half-moons
- 150 gred bell pepper— seeded and sliced into thin strips
- 150 gyellow bell pepper— seeded and sliced into thin strips
- 400 gripe tomato— cored and sliced into 1cm rounds
- 4 wholegarlic clove— minced
- 400 mlfull-fat coconut milk— unsweetened, well-stirred before use
- 60 mldendê oil— unrefined, for authentic color and flavor
- 30 gfresh cilantro— roughly chopped, stems reserved
- 8 gfine sea salt— adjust to taste
- 2 gblack pepper— freshly cracked
This version is engineered to build your confidence without sacrificing the soul of the dish. I have streamlined the traditional layering process into a straightforward, sequential method that removes guesswork. You will use pre-measured aromatics and rely on a gentle, hands-off simmer rather than precise temperature control. The key difference here is structure: instead of balancing multiple pots, everything builds in one pan. Watch closely for the moment the coconut milk begins to bubble at the edges; this is your cue to lower the heat immediately. Beginners often rush the fish into a boiling broth, which causes it to shatter. By adding your fish last and covering the pan, you allow gentle steam to finish the cooking while preserving delicate flakes. Do not stir once the fish is added. Trust the visual cues over the clock. If the broth looks too thin, simply leave the lid slightly ajar for a few extra minutes. This approach guarantees a cohesive, restaurant-looking result on your very first try, proving that technique is just a matter of controlled repetition.
Equipment
- heavy-bottomed skillet or Dutch oven— non-stick surface is perfectly acceptable
- wooden spoon— for gentle stirring
- measuring cups and spoons— for accuracy
Method
- 1
Toss fish chunks with lime juice, half the salt, and black pepper in a bowl.
Let sit for ten minutes while you prep vegetables.
marinating~ 10 min - 2
Pour dendê oil into a large heavy-bottomed pan over medium heat.
The oil will turn a deep orange as it warms.
heating~ 1 min - 3
Add onions and garlic to the pan, cooking until translucent.
Stir frequently to prevent sticking.
sweating~ 4 min - 4
Arrange bell pepper strips and tomato rounds evenly over the onions.
Do not stir after adding these layers.
layering~ 1 min - 5
Pour coconut milk evenly across the entire surface of the pan.
Tilt the pan gently to distribute the liquid.
combining~ 1 min - 6
Bring the liquid to a gentle bubble, then carefully nestle the fish into the broth.
Fish should be partially submerged.
poaching~ 2 minTricky bit - 7
Cover the pan tightly and reduce heat to low.
Cook undisturbed until opaque.
steaming~ 8 min - 8
Remove lid, scatter cilantro, and season with remaining salt.
Serve directly from the pan.
finishing~ 1 min