Tanzanian Recipes
Swahili Coconut and Tomato Fish Curry
On the coast of Tanzania, samaki wa nazi is weeknight comfort and Friday-table celebration in one pot. The name simply means fish in coconut, and that is the whole promise: tender pieces of white fish sitting in a creamy, pale-orange sauce that is equal parts coconut milk and ripe tomato, warmed with ginger, garlic, and curry powder. It tastes like the Indian Ocean breeze that carried those spices to Zanzibar centuries ago.
The trick I learned after a few watery, split-sauce attempts is that the fish and the sauce are cooked almost separately. You give the fish a quick lime marinade and a light sear so it holds together, then you build a proper coconut-tomato base and slide the fish back in only at the very end. Rush it, and the fish falls apart while the sauce stays thin. Respect the two stages, and it comes out silky every time.

Why This Samaki wa Nazi Works
Swahili coastal cooking is built on a gentle balance of richness, tang, and warm spice, and this fish curry hits all three without a long shopping list. The coconut milk brings body and a mellow sweetness, the tomatoes and lime bring brightness, and the ginger, garlic, and curry powder bring the fragrant backbone. Nothing shouts over the delicate fish.
The most important idea here is treating the fish kindly. A short lime, turmeric, and garlic marinade seasons it and firms up the surface, and a quick sear in hot oil gives it a light golden skin that keeps each piece intact once it goes back into the sauce. Fish that is dumped raw into a bubbling pot tends to shed and cloud the curry.
Cooking the tomatoes down properly before the coconut milk goes in is the other quiet secret. You want them soft and jammy so the sauce tastes deep rather than raw and watery. The coconut milk then rounds everything into something creamy and pale-orange that clings to the fish.
It is also forgiving and adaptable. The same coconut-tomato base welcomes shrimp, a firmer fish steak, or a fierier dose of chili, so once you know the method you can cook the coast into your kitchen any night of the week.
Pro observation: The tomato base is ready for the coconut milk when it looks thick and glossy and the oil beads at the edges of the pan. That sheen means the aromatics have cooked through and the raw edge is gone.
Ingredients
Kitchen Measurement Converter
Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.
Ingredient Notes & Substitutions
The Fish
Use a firm, halal white fish such as kingfish, snapper, grouper, tilapia, or cod that holds its shape. Cut it into large chunks or thick fillet pieces so it does not break apart in the sauce. Fresh is best on the coast, but good frozen fillets, fully thawed and patted dry, work well.
Coconut Milk
Full-fat canned coconut milk gives the richest, silkiest curry. Light coconut milk works but the sauce is thinner. Shake the can well before opening so the cream and water blend. On the coast, cooks use fresh grated coconut squeezed into thick tui and thin milk.
Curry Powder (Bizari)
Bizari is the Swahili coastal curry blend of turmeric, cumin, coriander, and warm spices. Any good all-purpose curry powder stands in nicely. Bloom it in the oil for a moment so it smells toasty rather than dusty.
Lime and Tomatoes
Fresh lime does double duty, seasoning the marinade and brightening the finished sauce. Ripe red tomatoes give the best sweet-tart base; out of season, one 14-ounce can of chopped tomatoes is more reliable than pale fresh ones.
Equipment
- Wide, heavy pan or skillet
- Fish spatula or slotted turner
- Sharp knife and board
- Mixing bowl for marinade
- Can opener
- Measuring spoons
Before You Start
1. Pat the fish dry and marinate first. A dry surface sears better, and even 15 minutes in lime, turmeric, and garlic seasons the fish all the way through.
2. Chop the tomatoes small. Smaller pieces break down faster into a smooth, jammy base, which shortens the cooking time and gives a silkier sauce.
3. Cook your rice or ugali alongside. This curry is best over steamed rice or scooped up with ugali, so start your side before you begin the sauce.
Step-by-Step Instructions
Marinate the Fish
Pat the fish pieces dry and place them in a bowl. Add 2 tablespoons of the lime juice, the ground turmeric, half of the minced garlic, and half a teaspoon of salt. Turn gently to coat every piece, then set aside for 15 to 20 minutes while you prepare the rest. This seasons the fish and firms up the surface.
Sear the Fish
Heat 2 tablespoons of the oil in a wide pan over medium-high heat. Lay the fish in a single layer and sear 1 to 2 minutes per side, just until lightly golden. It does not need to cook through here. Lift the pieces out onto a plate and set aside. Searing gives them a skin that holds together in the sauce.

Build the Aromatic Base
Add the last tablespoon of oil to the same pan and lower the heat to medium. Cook the chopped onion 5 to 6 minutes until soft and golden at the edges. Stir in the grated ginger, the remaining garlic, and the green chili, and cook 1 minute more until fragrant. Sprinkle in the curry powder and stir for 30 seconds to bloom it.
Simmer the Tomato-Coconut Sauce
Add the chopped tomatoes and the remaining half teaspoon of salt. Cook 8 to 10 minutes, stirring, until the tomatoes collapse into a thick, jammy base and the oil beads at the edges. Pour in the coconut milk and stir into a smooth, pale-orange sauce. Bring to a gentle simmer and let it cook 5 minutes so the flavors marry. Keep it at a lazy simmer; never let it boil hard, or the coconut milk can split.

Return the Fish
Nestle the seared fish pieces back into the simmering sauce in a single layer, spooning a little sauce over the top. Cover and cook gently for 6 to 8 minutes, until the fish is opaque all the way through and flakes easily with a fork. Turn the pieces only once, and carefully, so they stay whole. Avoid stirring vigorously at this stage.
Finish with Lime and Cilantro
Turn off the heat and stir in the last tablespoon of lime juice. Taste and adjust with a little more salt if needed. Scatter fresh cilantro over the top and serve hot over steamed rice or with ugali, with lime wedges on the side for squeezing.

Chef’s Tips From Real Kitchen Testing
Never boil the coconut milk hard. A gentle simmer keeps it smooth and creamy; a rolling boil can make it curdle and turn grainy.
Sear the fish first, then add it back only for the final few minutes. This keeps each piece intact and stops the sauce from going cloudy.
Add the final lime juice off the heat. Cooking it dulls the brightness, so that last squeeze is what makes the curry taste alive.
Recipe Variations
Serving Suggestions
- Steamed white rice or fragrant coconut rice (wali wa nazi)
- Ugali, the soft cornmeal staple, to scoop up the sauce
- A fresh kachumbari salad of tomato, onion, and lime
- Extra lime wedges and fresh cilantro on the side
Nutrition Facts
| Nutrient | Amount per serving |
|---|---|
| Calories | 380 |
| Protein | 34 g |
| Carbohydrates | 12 g |
| Fat | 23 g |
| Saturated Fat | 15 g |
| Fiber | 3 g |
| Sugar | 6 g |
| Sodium | 640 mg |
Values are estimates per serving and vary with the fish, coconut milk, and brands you use.
Make-Ahead Tips
You can build the coconut-tomato sauce up to a day ahead, cool it, and refrigerate. When you are ready to eat, warm the sauce gently, then add the seared fish and finish cooking so the fish stays fresh and tender. Marinated raw fish is best cooked the same day, so hold the searing step until close to serving. Add the lime and cilantro only at the end.
Storage, Freezing & Reheating
Common Mistakes to Avoid
Troubleshooting
Curry tastes flat? It usually needs salt and a squeeze more lime to wake up the flavors. A pinch more curry powder bloomed in a little oil can help too.
Sauce split or grainy? The coconut milk boiled too hard. Lower the heat and whisk in a splash of warm water off the heat to bring it back together.
Fish falling apart? The pieces were too small, stirred too much, or cooked too long. Use large chunks, sear them first, and turn them only once.
A Note on Swahili Coast Cooking
The Swahili coast, running from Tanzania and Zanzibar up through Kenya, has been a crossroads of the Indian Ocean trade for over a thousand years. Traders carried coconut, cloves, cardamom, cumin, and black pepper across the water, and coastal cooks folded them into local fish and produce to create a cuisine that is fragrant, tangy, and deeply comforting. Samaki wa nazi sits right at the heart of that story: everyday fish transformed by coconut and spice.
On the coast it is most often eaten with ugali, the soft cornmeal staple you pinch and dip into the creamy sauce, or with fragrant coconut rice. If you love spiced tomato dishes, our creamy Indian tomato soup shares the same warming spirit, and you can browse more ideas in our full collection of tomato recipes.
Frequently Asked Questions
More Tomato Recipes to Try
Last updated: August 4, 2026
