Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 lb (907 g) snapper fillets, skinless, cut into 1 1/2-inch chunks
- 1 tbsp fresh lime juice; 1 tsp kosher salt; 1/2 tsp black pepper
- 1 tbsp neutral oil
- 1 medium yellow onion, diced (about 1 1/2 cups)
- 1 red bell pepper, diced (about 1 cup)
- 4 garlic cloves, minced
- 1 tbsp fresh ginger, minced
- 1 scotch bonnet pepper, whole (pierced) or minced (for more heat)
- 2 tbsp tomato paste
- 1 can (14.5 oz / 411 g) diced tomatoes (with juices)
- 1 can (13.5 oz / 400 ml) full-fat coconut milk
- 1 cup (240 ml) seafood stock or low-sodium chicken stock
- 1 medium sweet potato (about 12 oz / 340 g), peeled and cut into 3/4-inch cubes
- 1 tsp dried thyme (or 6 fresh thyme sprigs)
- 1/2 tsp ground allspice; 1 tsp smoked paprika
- 1 tsp light brown sugar
- 2 scallions, thinly sliced; 2 tbsp chopped cilantro
Do This
- 1. Toss snapper with lime juice, salt, and pepper; set aside 10 minutes.
- 2. Sauté onion and bell pepper in oil over medium heat for 6 minutes; add garlic and ginger for 1 minute.
- 3. Stir in tomato paste for 1 minute; add diced tomatoes, coconut milk, stock, thyme, allspice, paprika, brown sugar, and scotch bonnet.
- 4. Add sweet potato; simmer covered 12 minutes, then uncovered 8 minutes until tender.
- 5. Add snapper; gently simmer 6–8 minutes until fish flakes and reaches 145°F (63°C).
- 6. Remove scotch bonnet (if used whole); taste and salt as needed.
- 7. Top with scallions and cilantro; serve hot with rice, roti, or crusty bread.
Why You’ll Love This Recipe
- Big island flavor, simple method: one pot, straightforward steps, and a cozy coconut-tomato broth.
- Sweet-heat balance: coconut milk and sweet potato mellow the scotch bonnet’s heat without losing the Caribbean kick.
- Hearty but not heavy: tender snapper stays flaky, and the stew feels satisfying without long cooking.
- Easy to customize: adjust spice, swap fish, or add extra vegetables with minimal changes.
Grocery List
- Produce: 1 lime, 1 medium yellow onion, 1 red bell pepper, 4 garlic cloves, 1 piece fresh ginger, 1 scotch bonnet pepper, 1 medium sweet potato, fresh thyme (or dried), 2 scallions, cilantro
- Dairy: none
- Pantry: neutral oil, tomato paste, 1 can diced tomatoes (14.5 oz / 411 g), 1 can full-fat coconut milk (13.5 oz / 400 ml), seafood stock (or low-sodium chicken stock), ground allspice, smoked paprika, light brown sugar, kosher salt, black pepper, plus fresh snapper from the seafood counter (2 lb / 907 g)
Full Ingredients
Fish
- 2 lb (907 g) snapper fillets, skinless, pin bones removed, cut into 1 1/2-inch (4 cm) chunks
- 1 tbsp (15 ml) fresh lime juice
- 1 tsp kosher salt (plus more to taste)
- 1/2 tsp freshly ground black pepper
Stew Base
- 1 tbsp (15 ml) neutral oil (such as avocado, canola, or grapeseed)
- 1 medium yellow onion, diced (about 225 g / 1 1/2 cups)
- 1 red bell pepper, diced (about 150 g / 1 cup)
- 4 garlic cloves, minced (about 1 1/2 tbsp)
- 1 tbsp (about 10 g) fresh ginger, minced
- 2 tbsp (30 g) tomato paste
- 1 can (14.5 oz / 411 g) diced tomatoes (do not drain)
- 1 can (13.5 oz / 400 ml) full-fat coconut milk
- 1 cup (240 ml) seafood stock or low-sodium chicken stock
- 1 medium sweet potato (about 12 oz / 340 g), peeled and cut into 3/4-inch (2 cm) cubes
- 1 tsp dried thyme or 6 fresh thyme sprigs
- 1/2 tsp ground allspice
- 1 tsp smoked paprika
- 1 tsp (4 g) light brown sugar
- 1 scotch bonnet pepper, used one of two ways:
- Milder: keep whole and pierce 3–4 times with a fork
- Hotter: remove seeds (optional) and mince finely
To Finish (Highly Recommended)
- 1–2 tbsp (15–30 ml) fresh lime juice, to taste
- 2 scallions, thinly sliced
- 2 tbsp chopped cilantro (or flat-leaf parsley)
For Serving (Optional)
- Cooked white rice, pigeon peas and rice, or roti
- Lime wedges

Step-by-Step Instructions
Step 1: Season the snapper
In a medium bowl, toss the snapper chunks with 1 tbsp lime juice, 1 tsp kosher salt, and 1/2 tsp black pepper. Set aside at room temperature for 10 minutes while you start the stew base. This quick rest seasons the fish and helps it stay flavorful in the broth.
Step 2: Sweat the aromatics
Place a large heavy pot or Dutch oven over medium heat for 1 minute. Add 1 tbsp neutral oil, then add the diced onion and red bell pepper. Cook, stirring occasionally, for 6 minutes until the onion looks soft and glossy.
Add the minced garlic and ginger and cook for 1 minute, stirring constantly so the garlic doesn’t brown.
Step 3: Build the coconut-tomato broth
Stir in the 2 tbsp tomato paste and cook for 1 minute to deepen its flavor.
Add the diced tomatoes (with juices), coconut milk, and stock. Stir well, scraping the bottom of the pot to dissolve any flavorful bits.
Stir in the thyme, allspice, smoked paprika, and brown sugar. Add the scotch bonnet now:
whole and pierced for gentle warmth, or minced for a more direct heat.
Step 4: Simmer the sweet potato until tender
Add the sweet potato cubes and bring the stew to a gentle simmer.
Reduce heat to medium-low, cover, and simmer for 12 minutes. Uncover and continue simmering for 8 minutes, stirring occasionally, until the sweet potatoes are tender when pierced with a fork.
Step 5: Add the snapper and cook gently
Lower the heat to low so the stew is barely simmering (gentle bubbles, not a rolling boil). Add the seasoned snapper chunks in a single layer as much as possible.
Simmer gently for 6–8 minutes, stirring very carefully once halfway through, until the fish is opaque and flakes easily. For accuracy and food safety, the thickest piece should read 145°F (63°C) on an instant-read thermometer.
Step 6: Adjust heat, acidity, and seasoning
If you used the scotch bonnet whole, remove it now and discard. Taste the broth and adjust with additional salt if needed.
Stir in 1–2 tbsp lime juice to brighten everything up. If you want more heat, you can add a small pinch of minced scotch bonnet (or a few drops of hot sauce) right at the end.
Step 7: Garnish and serve
Ladle the stew into warm bowls. Top with sliced scallions and chopped cilantro.
Serve hot with rice or roti to soak up the coconut-tomato broth. If you like, add extra lime wedges at the table.
Pro Tips
- Keep the simmer gentle once the fish goes in. A hard boil can make fish break apart and turn chewy. Low heat keeps those chunks intact and flaky.
- Control scotch bonnet heat safely. For mild heat, keep it whole and pierced; for more heat, mince it. Wash hands well (or wear gloves) and avoid touching your face.
- Choose full-fat coconut milk. It gives the stew a richer mouthfeel and better balance against the tomatoes and spice.
- Cut ingredients evenly. 3/4-inch sweet potato cubes cook through in the stated time; larger pieces may need an extra 5–8 minutes.
- Don’t over-stir after adding fish. One careful stir is enough to prevent sticking while keeping the fish in hearty chunks.
Variations
- Swap the fish: Use grouper, cod, halibut, or mahi-mahi (same cooking time). If using shrimp, simmer only 2–3 minutes until just pink and curled.
- Add greens: Stir in 3 cups (90 g) baby spinach during the last 2 minutes of cooking for extra color and nutrients.
- Make it extra hearty: Add 1 cup (165 g) drained canned chickpeas when you add the sweet potato, and simmer as directed.
Storage & Make-Ahead
Refrigerate: Cool leftovers quickly, then store in an airtight container in the refrigerator for up to 2 days. Fish is best sooner rather than later for the flakiest texture.
Reheat: Warm gently in a pot over low heat until steaming hot (avoid boiling to prevent the fish from toughening and breaking apart). Add a small splash of stock or water if the stew thickens.
Make-ahead tip: You can make the broth and simmer the sweet potatoes up to 1 day ahead. Cool and refrigerate. Reheat to a gentle simmer, then add the snapper and cook 6–8 minutes right before serving.
Nutrition (per serving)
Approximate values (based on 6 servings): 360 calories, 28 g protein, 20 g fat, 19 g carbohydrates, 4 g fiber, 7 g sugar, 650 mg sodium.
