Calibrated Cuisine

Brazilian Moqueca Fish Stew: One Bowl Delivers 85% Daily Vitamin D, Omega-3s, and a Complete Mineral Profile

13 min read

↓ Jump to Recipe

Moqueca (pronounced moh-KEH-kah) is one of Brazil’s most beloved national dishes, born in the coastal state of Bahia where West African culinary traditions met Indigenous ingredients and Portuguese influence. At its heart, it is deceptively simple: firm white fish and shrimp simmered in a lush broth of coconut milk, ripe tomatoes, sweet peppers, onion, garlic, lime, and dendê (red palm oil), finished with a snowfall of fresh cilantro. What makes it extraordinary for nutrition is that it is built almost entirely from ingredients that are among the most nutrient-dense foods on earth, and they happen to taste sensational together.

We built this recipe specifically to maximize the nutrients most commonly lacking in modern diets. Wild-caught cod or halibut supplies heme-adjacent vitamin D and long-chain omega-3 fatty acids (EPA and DHA) in meaningful, measurable amounts. The shrimp adds zinc, iodine, and additional selenium. Coconut milk provides medium-chain triglycerides that improve fat-soluble vitamin absorption, while dendê oil delivers the carotenoids beta-carotene and lycopene at concentrations that rival tomato paste. Every ingredient is doing double duty: flavor and function.

What sets Calibrated Cuisine’s version apart is the precision. We use 600g of wild-caught fish per four servings, a quantity that most recipes skimp on, because that is the threshold at which a single bowl genuinely crosses the 85% vitamin D mark. The spice ratios are tuned so the broth is bold enough to serve proudly at a dinner party but the fish remains the clear star. Choose stovetop for the most authentic texture and depth of flavor, slow cooker when you want the stew waiting for you at the end of a long day, pressure cooker when speed is the priority, or the oven method for a stunning hands-off presentation baked right in a clay pot or Dutch oven.

Prep: 20 minutes
Servings: 4
Category: Mineral Matrix
✓ Gluten-Free✓ Dairy-Free✓ Nut-Free✓ Peanut-Free✓ Soy-Free✓ Egg-Free✓ Sesame-Free
Servings:

4

servings

Ingredients

  • 600 gwild-caught cod or halibut fillets, cut into 5cm chunks
  • 300 glarge raw shrimp, peeled and deveined
  • 400 mlfull-fat coconut milk (one standard can)
  • 400 gcanned whole plum tomatoes, crushed by hand
  • 2 tbspdendê oil (red palm oil), or substitute 1 tbsp sweet paprika-infused olive oil
  • 2 tbspextra-virgin olive oil
  • 1 largeyellow onion, thinly sliced into half-moons
  • 1 largered bell pepper, thinly sliced
  • 1 largegreen bell pepper, thinly sliced
  • 5 clovesgarlic, minced
  • 1 mediumripe tomato, thinly sliced into rounds
  • 3 tbspfresh lime juice (about 2 limes), plus wedges for serving
  • 1 tspground cumin
  • 0.5 tspsweet smoked paprika
  • 0.5 tspground turmeric
  • 1 small bunchfresh cilantro, stems finely chopped, leaves reserved for garnish
  • 240 mllow-sodium fish stock or water
  • Fine sea salt and freshly ground black pepper to taste

Instructions

🔧 Equipment

🔪chef’s knife
🪵cutting board
🫕wide heavy-bottomed pan or Dutch oven
🥄wooden spoon or silicone spatula
🐢slow cooker (3.5L or larger)
♨️Instant Pot or electric pressure cooker (6-quart)
🫕clay pot or enameled Dutch oven (for oven method)
🥣mixing bowl
🔵fine-mesh sieve or colander (for rinsing shrimp)
🍋citrus juicer




Prep: 20 minutes
Cook: 30 minutes
Total: 50 minutes
The stovetop method builds flavor in distinct layers through deglazing and controlled simmering, producing the most authentic Bahian moqueca texture.
  1. Pat the fish chunks thoroughly dry with paper towels. In a bowl, toss the fish with 2 tablespoons of lime juice, half the minced garlic, a generous pinch of sea salt, and black pepper. Let it marinate at room temperature for 15 minutes while you prepare the other ingredients.
  2. Heat a wide, heavy-bottomed pan or Dutch oven over medium heat. Add the olive oil. Once shimmering, add the onion and a pinch of salt. Cook, stirring occasionally, for 7 to 8 minutes until the onion is soft and translucent but not browned. Add the remaining garlic, cumin, smoked paprika, and turmeric; stir constantly for 90 seconds until the spices bloom and smell fragrant.
  3. Add the red and green bell pepper strips to the pan. Cook for 4 minutes, stirring occasionally, until they just begin to soften. Pour in the crushed canned tomatoes and fish stock. Stir to incorporate all the browned bits from the pan bottom. Bring to a gentle simmer and cook uncovered for 8 minutes, allowing the tomato base to reduce and concentrate slightly.
  4. Pour in the coconut milk and stir in the dendê oil. Taste the broth and adjust salt, pepper, and the remaining 1 tablespoon of lime juice. Bring back to a steady simmer over medium-low heat. Lay the fresh tomato rounds across the surface of the broth, then arrange the marinated fish chunks on top. Do not stir. Cover the pan with a lid and cook for 7 minutes.
  5. Uncover the pan, nestle the raw shrimp between the fish pieces, and scatter the cilantro stems over the top. Replace the lid and cook for a further 4 to 5 minutes until the shrimp are pink and curled and the fish flakes easily at its thickest point. Remove from heat. Rest for 2 minutes before serving topped with fresh cilantro leaves and lime wedges alongside white rice or farofa.
Prep: 20 minutes
Cook: 3 to 4 hours on Low
Total: 3 hours 30 minutes to 4 hours 30 minutes
Fish can overcook quickly in a slow cooker. Adding the seafood in the final 45 minutes prevents it from becoming dry or crumbly. Do not use the High setting, as it will disintegrate the fish.
  1. Skip marinating the fish in this method. Instead, season the raw fish chunks and shrimp separately with salt, pepper, the full 3 tablespoons of lime juice, and minced garlic. Refrigerate covered until needed.
  2. Directly into the slow cooker insert, combine the sliced onion, red and green bell pepper strips, crushed canned tomatoes, fish stock, coconut milk, dendê oil, olive oil, cumin, smoked paprika, turmeric, and cilantro stems. Stir everything together thoroughly, then lay the fresh tomato rounds across the surface. Cover and cook on Low for 2 hours 30 minutes to 3 hours, until the peppers are fully tender and the broth is aromatic and slightly thickened.
  3. Open the lid and use a spoon to taste and adjust seasoning. The broth should taste bold at this point since seafood will dilute it slightly. Gently nestle the seasoned fish chunks into the broth, pressing them just below the surface. Replace the lid and continue cooking on Low for 30 minutes.
  4. Add the shrimp to the slow cooker, distributing them around the fish. Replace the lid and cook on Low for a final 15 minutes, until the shrimp are fully pink and the fish is opaque and flaking. Do not stir aggressively or the fish will break apart.
  5. Turn off the slow cooker and allow the stew to rest with the lid slightly ajar for 5 minutes. Ladle carefully into bowls, keeping the fish pieces intact, and finish with fresh cilantro leaves and lime wedges.
Prep: 20 minutes
Cook: 3 minutes at High Pressure
Total: 30 minutes
Because fish cooks so rapidly under pressure, the key is to use the Sauté function to fully develop the base before a very brief pressure cycle. Quick-release is essential to stop cooking immediately.
  1. Set your Instant Pot or electric pressure cooker to Sauté mode on Normal heat. Add the olive oil. When the display reads Hot, add the onion and a pinch of salt. Sauté for 5 minutes, stirring regularly. Add the minced garlic, cumin, smoked paprika, and turmeric, and sauté for 1 minute more until fragrant.
  2. Add the bell pepper strips and sauté for 2 minutes. Pour in the fish stock and use a wooden spoon or silicone spatula to scrape up any browned bits from the bottom of the insert. This deglazing step is critical for pressure cookers to prevent a burn warning. Add the crushed tomatoes, coconut milk, dendê oil, and the full 3 tablespoons of lime juice. Stir to combine.
  3. Lay the fresh tomato rounds on top of the liquid. Season the fish chunks with salt and pepper, then submerge them gently into the broth. Do not add the shrimp yet. Cancel Sauté mode. Secure the lid and set the pressure release valve to Sealing. Select Pressure Cook (High Pressure) for 3 minutes.
  4. As soon as the cooking cycle ends, perform an immediate Quick Release by carefully moving the valve to Venting. Once the steam has fully escaped and the float valve drops, open the lid. Switch back to Sauté mode on Low.
  5. Add the seasoned shrimp to the stew and gently stir them in. Sauté on Low for 3 to 4 minutes, stirring once, just until the shrimp are pink and cooked through. Cancel Sauté, scatter the cilantro stems into the pot, taste for final seasoning, and serve immediately topped with fresh cilantro leaves and lime wedges.
Prep: 20 minutes
Cook: 35 minutes
Total: 55 minutes
Baking the stew in a covered clay pot or enameled Dutch oven creates an even, enveloping heat that infuses the fish deeply with coconut and dendê flavors. The result is a beautifully presented dish you can bring straight to the table.
  1. Preheat your oven to 190C (375F). Pat the fish dry and marinate as in the stovetop method: toss with 2 tablespoons of lime juice, half the garlic, salt, and pepper for 15 minutes while you assemble the base.
  2. Place a Dutch oven or large clay pot (if using an unglazed clay pot, soak it in water for 15 minutes first) over medium heat on the stovetop. Add the olive oil and sauté the onion for 6 minutes until soft. Add the remaining garlic, cumin, smoked paprika, and turmeric and stir for 1 minute until the spices are fragrant and coating the onion.
  3. Add the bell pepper strips and cook for 2 minutes. Pour in the fish stock, scraping up any fond from the bottom. Add the crushed tomatoes, coconut milk, dendê oil, and remaining 1 tablespoon of lime juice. Stir to combine and bring just to a simmer. Taste and season assertively with salt and pepper, as the oven will mellow the flavors.
  4. Remove the pot from the heat. Scatter the cilantro stems over the broth. Layer the fresh tomato rounds across the surface, then arrange the marinated fish chunks on top, pressing them partially into the liquid. Nestle the raw shrimp among the fish pieces. Drizzle a final thin thread of olive oil over the top.
  5. Cover the pot tightly with its lid (or seal clay pot with foil under the lid for a tight seal) and transfer to the preheated oven. Bake for 25 to 30 minutes, until the fish is opaque and flakes at its thickest point and the shrimp are fully pink. Remove from the oven, rest covered for 3 minutes, then bring the pot directly to the table. Remove the lid tableside for a dramatic release of steam and aroma, and finish with fresh cilantro leaves and lime wedges.

Nutrition Breakdown

Per 1 serving (makes 4)

445Calories
48gProtein
18gCarbs
22gFat
4gFiber

Glycemic Load8Low
Low0–10
Medium11–19
High20+
The modest carbohydrate load comes primarily from the coconut milk (low-GI fructose and fiber) and tomatoes; the absence of starch keeps the estimated GI around 45 and the GL comfortably low at 8.

% Daily Value based on a 2,000 calorie diet (FDA reference)

Vitamin D17.0mcg
Selenium68mcg
Omega-3 (EPA + DHA)2100mg
Iodine145mcg
Vitamin B123.8mcg
Zinc4.8mg
Magnesium82mg
Vitamin C72mg
Potassium920mg
Niacin (B3)12mg

% of recommended daily intake (RDA) per serving

Leucine3820mg
Lysine4350mg
Isoleucine2240mg
Valine2490mg
Threonine2060mg
Phenylalanine1890mg
Histidine1420mg
Tryptophan560mg
Methionine1380mg

🛡 Antioxidant Profile

Beta-carotene3.8mgAbundant in dendê oil and bell peppers; converts to vitamin A and protects cell membranes from oxidative stress.
Lycopene8.2mgConcentrated in the canned plum tomatoes; associated with reduced cardiovascular disease risk and prostate protection.
Astaxanthin1.2mgPresent in the shrimp; a potent marine carotenoid that protects lipids and DNA from free-radical damage.
Quercetin and KaempferolFlavonoids from onion and bell pepper that inhibit inflammatory signaling pathways and support immune regulation.
CurcuminoidsDerived from the ground turmeric; well-studied anti-inflammatory compounds that may reduce NF-kB pathway activation.
Vitamin C (as antioxidant)72mgSupplied by bell peppers and lime juice; regenerates vitamin E and protects omega-3 fatty acids from peroxidation in the gut.

Complete your day: Serve the moqueca over half a cup of cooked brown rice to add the fiber, B1, and manganese this dish lacks, then finish the day with a small bowl of plain Greek yogurt topped with kiwi slices to bring calcium and folate to daily targets.

The Nutrition Science

The vitamin D in this dish comes almost entirely from the wild-caught fish. Cod and halibut are among the very few natural dietary sources of vitamin D3 (cholecalciferol), the same form produced by human skin on UV exposure. A 150g serving of wild-caught cod provides roughly 400 to 450 IU of vitamin D3, and when combined with the smaller contribution from shrimp, a single bowl of this stew delivers approximately 680 IU, or about 85% of the 800 IU Daily Value. Critically, the surrounding fat from coconut milk and dendê oil matters enormously: vitamin D is fat-soluble, and studies consistently show that consuming it alongside dietary fat increases absorption by 32 to 57% compared to a low-fat meal.

The omega-3 story in moqueca is equally compelling. Wild-caught cold-water fish like cod and halibut supply EPA (eicosapentaenoic acid) and DHA (docosahexaenoic acid), the long-chain omega-3s directly usable by the heart, brain, and immune system without the conversion step required by plant-based ALA. The roughly 2.1g of EPA plus DHA per serving in this recipe comfortably exceeds the 1.1 to 1.6g adequate intake recommended by the National Academies. These fatty acids work synergistically with astaxanthin from the shrimp, which protects the polyunsaturated fatty acids from lipid peroxidation both in the stew during cooking and in the digestive system after consumption.

Selenium is the overlooked hero of this recipe. The combination of cod and shrimp provides well over 100% of the daily selenium requirement per serving. Selenium is essential for the synthesis of glutathione peroxidase, the body’s primary endogenous antioxidant enzyme, and for the conversion of thyroid hormone T4 to its active T3 form. Iodine, also supplied abundantly by the shrimp, completes the thyroid support picture. Together, this single bowl delivers a seafood-based micronutrient package that would be extremely difficult to replicate from plant foods alone.

Pro Tips

  • Buy the freshest fish possible and ask your fishmonger for skin-off fillets cut to a uniform thickness so all pieces cook in exactly the same time. Frozen wild-caught cod that has been properly thawed overnight in the refrigerator is nutritionally equivalent to fresh.
  • Dendê oil is non-negotiable for authentic Bahian flavor and color, and it contributes significantly to the beta-carotene content. Find it at Brazilian grocery stores or online. If you genuinely cannot source it, whisk 1 tablespoon of sweet paprika into 2 tablespoons of olive oil and use that instead, but know that the carotenoid contribution will be lower.
  • Do not stir the stew once the fish goes in, regardless of cooking method. Moqueca is traditionally served with large intact pieces of fish, and stirring breaks them apart. Use a wide spoon to ladle servings gently, scooping from the bottom up to keep pieces whole.
  • For an additional vitamin D boost with no recipe changes, swap the fish stock for a homemade stock made from the bones and skin of wild-caught salmon, which leaches additional D3 into the liquid during simmering.

3 thoughts on “Brazilian Moqueca Fish Stew: One Bowl Delivers 85% Daily Vitamin D, Omega-3s, and a Complete Mineral Profile”

  1. this looks amazing and i love that youre pairing fish with tomato, because that vitamin C from the tomatoes is gonna help with mineral absorption overall – though i have to admit im mainly excited about the iron content in the cilantro and peppers alongside that vitamin D and selenium. my ferritin has been creeping up and down, and i find these kinds of one bowl meals where the ingredients actually complement each other nutritionally are total game changers. did you notice any difference in how you felt after eating it compared to fish cooked other ways?

    Log in or register to reply
    • I love your point about vitamin C enhancing mineral absorption, Francesca – that’s such an important detail that doesn’t get talked about enough! I do want to gently flag that while cilantro and peppers have iron, the nightshade content in this recipe might be something to consider if you’re following a stricter protocol like I am, since I’ve found nightshades can worsen my inflammation markers even though they’re nutrient-dense. Have you noticed whether the tomatoes and peppers affect your ferritin levels one way or the other, or does the omega-3 and mineral synergy outweigh any potential inflammatory response for you? I’m curious because I’d love to adapt this for A

      Log in or register to reply
  2. Oh, this sounds absolutely wonderful! I’ve been experimenting with fatty fish in coconut broth for years now, and I’ve noticed such a meaningful difference in my CRP levels when I combine fish with turmeric and tomatoes like this. The dendê oil is a beautiful touch too, since those plant-based fats really help with nutrient absorption. I’m definitely making this soon and will probably stir in some fresh turmeric paste at the end to boost the anti-inflammatory compounds even more, but thank you for highlighting those mineral details, especially the selenium and magnesium which my joints really respond to!

    Log in or register to reply

Leave a Comment