This vibrant Brazilian seafood stew combines tender white fish and shrimp in a rich coconut milk base infused with lime, cilantro, and traditional dendê oil, creating an authentic taste of coastal Brazil that's both exotic and comforting.

Recipe Details
Units:
Prep: 25 Cook: 25
Ingredients
  • 680g firm white fish fillets (mahi-mahi or halibut), cut into chunks
  • 450g large shrimp, peeled and deveined
  • 90ml fresh lime juice
  • 10ml sea salt
  • 5ml freshly ground black pepper
  • 45ml dendê (palm) oil or olive oil
  • 1 large yellow onion, sliced
  • 2 large bell peppers (red and yellow), sliced
  • 4 cloves garlic, minced
  • 15ml fresh ginger, grated
  • 3 large ripe tomatoes, chopped
  • 800ml coconut milk, full-fat
  • 240ml fish stock or vegetable broth
  • 1 small malagueta or jalapeño pepper, minced
  • 120ml fresh cilantro, chopped
  • 4 stalks green onions, sliced
  • 30ml cassava flour or cornstarch
  • 300g jasmine rice for serving
  • 2 limes lime wedges for serving
  • 15ml pimenta malagueta sauce (optional)
Instructions
  1. Season 680g firm white fish fillets (mahi-mahi or halibut) and 450g large shrimp with half the 90ml fresh lime juice, 10ml sea salt, and 5ml freshly ground black pepper. Let marinate for 15 minutes.

  2. Cook 300g jasmine rice for serving according to package directions and keep warm.

  3. Heat 45ml dendê (palm) oil or olive oil in a large, heavy-bottomed pot or traditional clay panela over medium heat.

  4. Add 1 large yellow onion and 2 large bell peppers (red and yellow), cooking for 5-7 minutes until softened and lightly caramelized.

  5. Add 4 cloves garlic, 15ml fresh ginger, and 1 small malagueta or jalapeño pepper. Cook for 1 minute until fragrant.

  6. Add 3 large ripe tomatoes and cook for 5 minutes until they break down and release their juices.

  7. Pour in 800ml coconut milk and 240ml fish stock or vegetable broth. Bring to a gentle simmer and cook for 10 minutes to develop flavors.

  8. In a small bowl, whisk 30ml cassava flour or cornstarch with 60ml (1/4 cup) of the hot stew liquid until smooth. Stir back into the pot to thicken slightly.

  9. Gently add marinated fish chunks and simmer for 3-4 minutes until fish is almost cooked through.

  10. Add 450g large shrimp and cook for 2-3 minutes until pink and cooked through. Don't overcook the seafood.

  11. Remove from heat and stir in remaining 90ml fresh lime juice, 120ml fresh cilantro, and 4 stalks green onions. Taste and adjust seasoning.

  12. Serve immediately in bowls over 300g jasmine rice for serving, garnished with 2 limes lime wedges for serving and 15ml pimenta malagueta sauce (optional) on the side.

Tips

Fish Selection: Use firm white fish that won't fall apart during cooking. Mahi-mahi, halibut, or cod work perfectly. Avoid delicate fish like sole.

Dendê Oil: This red palm oil is traditional and gives authentic flavor and color. If unavailable, substitute with olive oil, though the flavor will be different.

Coconut Milk: Use full-fat coconut milk for richness. Shake the can before opening and don't let the stew boil vigorously, which can cause curdling.

Seafood Timing: Add fish first as it takes longer to cook than shrimp. Don't overcook either - they'll continue cooking from residual heat.

Spice Level: Malagueta peppers are quite hot. Start with less and add more to taste, or substitute with jalapeños for milder heat.

Traditional Serving: Moqueca is traditionally served in the clay pot it's cooked in, but any serving vessel works.

Make-Ahead: The base can be prepared ahead, but add seafood just before serving to prevent overcooking.

Regional Variations: Bahian moqueca uses dendê oil and is richer, while Capixaba style uses annatto oil and is lighter. This recipe follows the Bahian tradition.