
A rich and aromatic Swahili fish curry from the East African coast, featuring tender fish simmered in a creamy coconut sauce spiced with cardamom, cinnamon, and curry powder. This beloved dish represents the Indian Ocean's culinary fusion heritage.
Kupaka is a signature dish of Swahili cuisine, reflecting centuries of trade and cultural exchange between Arab, Persian, Indian, and African communities along the East African coast. Traditionally served during special occasions and family gatherings.
800 g white fish fillets
cut into large chunks
Sub: Use kingfish, snapper, or firm white fish like cod
400 ml coconut milk
thick, first press
Sub: Use canned full-fat coconut milk
200 ml coconut cream
Sub: Top layer of chilled coconut milk
2 medium yellow onions
finely chopped
6 cloves garlic
minced
30 g fresh ginger
grated
3 medium tomatoes
diced
Sub: Can use 400g canned tomatoes
2 tbsp curry powder
Sub: Use mild curry powder
1 tsp ground cardamom
Sub: Freshly ground preferred
0.5 tsp ground cinnamon
0.5 tsp turmeric powder
3 tbsp vegetable oil
Sub: Coconut oil preferred
1 tsp salt
2 tbsp lime juice
freshly squeezed
Sub: Lemon juice works
0.25 cup fresh cilantro(optional)
chopped
Sub: For garnish
Season fish(15m)
Pat fish chunks dry with paper towels. Season generously with salt and half the lime juice. Set aside for 15 minutes to marinate.
Tip: This helps firm up the fish and adds flavor
marinatePrep aromatics(10m)
Finely chop onions, mince garlic, grate ginger, and dice tomatoes. Measure out all spices into a small bowl and mix together.
Tip: Having everything prepped makes cooking smoother
mise_en_placeSauté aromatics(6m)
Heat oil in a large, heavy-bottomed pan over medium heat. Add onions and cook until softened and lightly golden, about 5 minutes. Add garlic and ginger, cook for another minute until fragrant.
Tip: Don't let garlic burn or it will become bitter
sautéAdd spices and tomatoes(7m)
Add the spice mixture and cook for 1 minute, stirring constantly. Add diced tomatoes and cook for 5-6 minutes until they break down and form a thick paste.
Tip: Cooking spices first releases their essential oils
bloom_spicesAdd coconut milk(10m)
Pour in coconut milk gradually while stirring. Bring to a gentle simmer, then reduce heat to low. Simmer for 10 minutes, stirring occasionally, until sauce thickens slightly.
Tip: Keep heat low to prevent coconut milk from curdling
simmerCook fish(10m)
Gently add fish pieces to the simmering sauce. Cover and cook for 8-10 minutes until fish is cooked through and flakes easily. Avoid stirring too vigorously to keep fish intact.
Tip: Fish is done when it reaches 63°C internal temperature
poachFinish sauce(2m)
Stir in coconut cream and remaining lime juice. Taste and adjust seasoning with salt. Simmer for 2 more minutes until heated through.
Tip: Coconut cream adds richness and balances the spices
finishPlate and garnish(3m)
Ladle kupaka into serving bowls, ensuring each portion has generous sauce. Garnish with fresh chopped cilantro. Serve immediately with steamed rice or chapati.
Tip: Serve with basmati rice to soak up the flavorful sauce
plate