Cape Malay Coconut Fish Curry

The Cape's Indian Ocean fish curry: firm white fish poached gently in a fragrant coconut-milk masala with turmeric, cinnamon, cardamom, curry leaves, and tamarind, the Malabar and Malay coconut-curry traditions of the community's ancestors brought ashore beneath Table Mountain

Origin: Bo-Kaap, Cape Town, South Africa

From the journey of Coconut.

The Cape Malay community has always been a community of the coast. Settled on the slopes above Table Bay, with the fishing harbours of Kalk Bay and Hout Bay within reach, its cooks built a deep tradition around the fish of the cold Atlantic and the warmer waters of False Bay: snoek above all, but also kabeljou, yellowtail, and kingklip. The coconut fish curry is where that coastal larder meets the spice inheritance of the Indian Ocean. The community's ancestors came from the Malabar and Coromandel coasts of India, from Ceylon, and from the Malay and Indonesian archipelago, every one of them a place where fish is simmered in coconut milk, and they carried that template to the Cape. What distinguishes the Cape Malay version from its Malabar and Sri Lankan cousins is the warm-spice signature the community gives to almost everything it cooks: a stick of cinnamon and a few cardamom pods bloomed in the oil alongside the curry leaves and the chilli, lending a gentle sweetness beneath the turmeric and the sour edge of tamarind. The fish is never boiled hard in the sauce but poached gently in it, so the pieces stay whole and silky and the coconut milk stays smooth rather than splitting. Served over rice with a cool spoonful of klappersambal alongside, it is the Indian Ocean distilled into a single Cape plate: the meeting of east and west that the community itself embodies.

Ingredients

Fish

  • 800 g firm white fish fillets (kingklip, hake, kabeljou, or cod), cut into large chunks
  • 0.5 tsp ground turmeric
  • 0.5 tsp fine salt
  • 1 tbsp lemon juice

Curry base

  • 3 tbsp sunflower or other neutral oil
  • 2 onions, finely sliced
  • 4 garlic cloves, crushed
  • 2 cm fresh ginger, grated
  • 2 green finger chillies, slit lengthways
  • 1 cinnamon stick
  • 4 green cardamom pods, lightly bruised
  • 12 fresh curry leaves

Spices

  • 2 tsp ground coriander
  • 1 tsp ground cumin
  • 1 tsp ground turmeric
  • 0.5 tsp Kashmiri chilli powder (mild, for colour and gentle heat)

Sauce

  • 2 ripe tomatoes, grated or finely chopped
  • 400 ml coconut milk
  • 2 tbsp tamarind paste (or 3 tbsp thick tamarind water)
  • 1 tsp white sugar
  • salt, to taste

To finish

  • a handful of fresh coriander, chopped, to finish

Method

  1. Rub the fish chunks with the half teaspoon each of turmeric and salt and the lemon juice. Set aside to rest whilst you build the sauce.
  2. Heat the oil in a wide, heavy pan over medium heat. Fry the sliced onions slowly, stirring, for 8 to 10 minutes until soft and deep golden. Add the garlic, ginger, slit chillies, cinnamon stick, bruised cardamom pods, and curry leaves, and fry for a further 2 minutes until fragrant.
  3. Add the ground coriander, cumin, turmeric, and Kashmiri chilli powder. Stir for about 30 seconds to toast the spices, then add the grated tomatoes. Cook, stirring, for 5 to 6 minutes until the tomato breaks down and the mixture thickens to a soft masala and the oil begins to separate at the edges.
  4. Pour in the coconut milk, then add the tamarind paste and sugar. Bring to a bare simmer, stirring, and let it cook gently for 5 minutes to come together into a smooth, fragrant sauce. Season with salt.
  5. Slide the fish chunks gently into the sauce in a single layer. Spoon a little sauce over each piece, cover, and poach over low heat for 8 to 10 minutes, until the fish is just cooked through and flakes at a gentle press. Do not stir; instead, shake the pan gently or spoon sauce over the fish to keep it whole.
  6. Remove from the heat and scatter over the chopped coriander. Rest for 5 minutes, then serve over steamed rice with a cool spoonful of klappersambal alongside.

Notes

Snoek is the classic Cape fish for this curry when it is in season, but any firm white fish that holds its shape will do: kingklip, kabeljou, hake, yellowtail, or cod. The two rules that matter most are gentleness and balance: never let the coconut milk boil hard, or it will split, and taste the sauce for the sweet-sour balance of tamarind and sugar before the fish goes in, since you cannot stir vigorously afterwards. For a richer curry, use the thick cream from the top of a tin of coconut milk; for a lighter one, thin the sauce with a little fish stock or water. Serve with steamed rice, klappersambal, and a spoon of fruit chutney or atjar for the full Cape Malay table.

The Gastrographer

The Gastrographer

Mapping Culinary History

To explore — select an ingredient below.

Journey Point Map Key

Ingredient originTrade or transit route
Became a culinary stapleColonial / trade control
© 2026 The Gastrographer. All original research, narratives, and illustrations. All rights reserved.