Heat the rapeseed oil in a pan on medium heat.
Add the sliced onions and cook slowly for 8–10 minutes until soft and light golden.
Stir in the ginger, garlic and green chilli and fry for 1–2 minutes until fragrant.
Add the ground coriander, Kashmiri chilli powder, ground red pepper (if using), turmeric, cumin powder and salt.
Fry the spices gently for 30–60 seconds, splashing in a spoonful of water if they start to catch.
Add the chopped tomatoes and cook for 5–7 minutes, stirring, until they break down and the oil begins to separate from the masala.
Stir in the palm vinegar and simmer for 2–3 minutes so the sharpness softens slightly.
Add the creamed coconut, coconut milk powder and about 150 ml water.
Stir well and simmer gently for 5–10 minutes until smooth and slightly thickened, adding extra water if needed to reach roughly 300 ml of pourable sauce.
Stir in the garam masala, taste and adjust salt, vinegar or chilli to balance heat, creaminess and tang.
