Moqueca Recipe

The combination of coconut milk and dendê oil is what gives this Brazilian moqueca its unmistakable character. The coconut milk makes the broth creamy without turning it heavy, while the golden-red dendê brings a deep, earthy richness and a subtle sweetness that ordinary oil cannot replace. I build the base with sliced onion, bell pepper, and tomatoes, letting the vegetables soften until their juices mingle before adding the coconut milk. By the time the fish and shrimp go in, the pot already smells like a proper Bahian kitchen. For this version, I use firm white fish cut into generous pieces—cod, halibut, haddock, or snapper all work well—and add the shrimp near the end. The fish absorbs the coconut-tomato broth as it gently simmers, while the shrimp cook quickly and stay pleasantly springy. The cilantro is added in two stages: a little with the vegetables for a rounded herbal flavor, then the rest just before serving so its freshness remains clear. The finished texture should be saucy and silky, with the fish still holding together rather than flaking into the pot. The most important practical detail is to avoid boiling the moqueca hard. Once the coconut milk is added, keep the heat at a gentle simmer, and arrange the fish in a single layer if your pot allows. I usually give the fish about 8 to 10 minutes before nestling in the shrimp for another 4 to 5 minutes. Resist the urge to stir with a spoon; a few careful shakes of the pot are enough and will keep the fish intact. Patting the seafood dry beforehand also helps the broth stay concentrated instead of watery. If your dendê oil is particularly strong, start with the stated amount and add more at the table rather than overwhelming the coconut and seafood. This makes a generous dinner for six and takes about 25 minutes of preparation followed by 30 minutes on the stove. Serve it immediately with plain white rice, which is ideal for soaking up the broth, and pass farofa alongside for a toasted, slightly crunchy contrast. A simple green salad or sliced avocado balances the richness, while lime wedges add brightness if you like a sharper finish. I especially enjoy serving it family-style in the cooking pot, with extra cilantro scattered over the top just before everyone sits down.

Recipe Details

Cuisine: Brazilian

Prep time: 25 minutes. Cook time: 30 minutes. Total time: 55 minutes.

Servings: 6

Difficulty: Medium

Ingredients

  • 1.5 lbs white fish
  • 1 lb shrimp
  • 2 cups coconut milk
  • 3 medium tomatoes
  • 1 large bell peppers
  • 1 large onion
  • 1 bunch cilantro
  • 1/4 cup dendê oil
  • 2 limes lime

Instructions

  1. Step 1: Marinate fish in lime. Combine the marinade ingredients thoroughly and ensure every surface of the protein is well coated. The acid and salt in the marinade begin to break down the outer proteins, allowing flavor to penetrate deeper into the meat. Cover and refrigerate for the recommended time — longer marinating generally means more flavor, but be careful not to over-marinate delicate proteins as the acid can make them mushy.
  2. Step 2: Layer vegetables and fish. Build the dish by placing ingredients in distinct, even layers within the baking vessel. Each layer contributes different flavors and textures, and ensuring even distribution means every serving contains the full range of components.
  3. Step 3: Add coconut milk. Introduce the new ingredients to the mixture, taking care to distribute them evenly. Adding ingredients at the right moment is critical — too early and they may overcook, too late and they may not integrate properly with the other flavors.
  4. Step 4: Simmer gently. Reduce the heat to maintain a gentle bubble — you want small, lazy bubbles breaking the surface, not a rolling boil. This low, slow cooking allows flavors to meld and develop complexity while keeping proteins tender. Cover partially to allow some evaporation and concentration of flavors.
  5. Step 5: Finish with dendê oil. This final step brings all the previous preparation together into the finished dish. Taste and adjust seasoning one last time before serving, and take a moment to appreciate the transformation of simple ingredients into a complete, satisfying meal.