Chakalaka — South Africa's Spicy Vegetable Relish
Chakalaka is one of South Africa's most versatile and beloved condiments — a vibrant, spiced vegetable relish that appears alongside pap at township braais, on white linen at Sunday lunches, tucked into a Bunny Chow, and ladled over bread at any informal gathering from Limpopo to the Cape. It is vegan, gluten-free, inexpensive, nutritious, and deeply flavourful. It is also one of the easiest things you can make in a South African kitchen.
The origins of Chakalaka are rooted in the mining communities and townships of Johannesburg during the apartheid era. Workers needed cheap, nutritious, and flavourful food that could be prepared quickly from easily available ingredients — tinned beans, canned tomatoes, onions, peppers, and whatever spices were at hand. The result was a relish that carried real heat and a complex depth of flavour from its layered aromatics. Over time, Chakalaka spread from the township to the suburban braai to the restaurant table, and it is now considered a cornerstone of South African cuisine.
Every region — and every family — has their own version. Some are heavy with baked beans; others are more vegetable-forward. Some have the heat level of a friendly warning; others are genuinely intense. This recipe sits in the middle: well-spiced and aromatic with a pleasant warmth that builds rather than burns, and a generous helping of beans for substance. Adjust the chilli to your preference.
Ingredients
Serves: 6–8 as a side | Prep time: 15 minutes | Cook time: 25 minutes
- 3 tbsp vegetable oil
- 2 medium onions, finely diced
- 4 cloves garlic, minced
- 1 tbsp fresh ginger, grated
- 2 green peppers, seeded and diced
- 2 medium carrots, grated or finely diced
- 2 medium tomatoes, diced (or 1 tin chopped tomatoes)
- 2 tins (800g total) baked beans in tomato sauce (the traditional ingredient — do not substitute)
- 1–2 fresh chillies, seeded and finely chopped (adjust to taste)
- 1 tsp medium curry powder
- 1 tsp turmeric
- 1 tsp cumin
- ½ tsp paprika (smoked paprika adds a lovely depth)
- Salt and black pepper to taste
- Fresh coriander or parsley to finish (optional)
Method
- Soften the aromatics: Heat the oil in a large, deep frying pan or medium saucepan over medium heat. Add the onions and cook, stirring occasionally, for 8–10 minutes until softened and beginning to turn golden at the edges. The onions need proper time here — rushing this step produces a sharp, harsh base rather than the sweet, complex foundation that great Chakalaka requires.
- Add the garlic, ginger, and chilli: Add the minced garlic, grated ginger, and chopped chilli to the pan. Stir for 1–2 minutes until fragrant.
- Toast the spices: Add the curry powder, turmeric, cumin, and paprika. Stir constantly for 60 seconds — the spices will toast in the oil and the kitchen will fill with an extraordinary aroma. This step is what gives Chakalaka its depth; spices added to liquid rather than oil-toasted produce a flatter, less complex flavour.
- Add the vegetables: Add the diced green pepper and grated carrots. Stir to coat in the spiced oil and cook for 5 minutes until slightly softened but still with some texture — you want the vegetables to have bite in the finished relish.
- Add the tomatoes: Add the fresh or tinned tomatoes and stir well. Cook for 5–8 minutes until the tomatoes break down and the mixture becomes saucy and cohesive. The oil should begin to separate and pool slightly around the edges of the pan — this is the sign that the base is properly cooked.
- Add the baked beans: Tip in both tins of baked beans (including their sauce) and stir to combine everything well. The bean sauce adds body, sweetness, and a characteristic richness that is integral to proper Chakalaka. Reduce heat to low and simmer for 10 minutes, stirring occasionally, until the Chakalaka has thickened to a cohesive, saucy consistency that holds its shape on a spoon without being watery.
- Season and finish: Taste and adjust salt, pepper, and chilli. If it is too thick, add a splash of water. Finish with fresh coriander or parsley if using. Chakalaka should taste bold, spiced, slightly sweet from the tomato and bean sauce, and have a warmth from the chilli that is present but not overpowering.
How to Serve Chakalaka
Chakalaka is one of the most versatile condiments in the South African kitchen. It can be served:
- With pap (mealie pap): The definitive pairing. Soft pap with Chakalaka spooned over the top is the quintessential South African township staple — warm, filling, nutritious, and deeply satisfying.
- At a braai: Serve cold or at room temperature as a relish alongside grilled boerewors, chops, and braaibroodjies. It cuts through the richness of the meat perfectly.
- On bread or rolls: A thick layer of Chakalaka on fresh white bread is one of the great South African working-class lunches — simple, filling, and genuinely delicious.
- With rice: Serve warm Chakalaka over steamed white rice for a complete, plant-based meal that requires nothing else.
- As a braaibroodjie filling: Spread Chakalaka inside a toasted cheese sandwich on the braai for a deeply flavoured, uniquely South African grilled sandwich.
- With Bobotie: A small bowl of Chakalaka on the side adds a spiced, textural contrast to the mild sweetness of the Bobotie.
Storage and Make-Ahead Tips
Chakalaka improves dramatically over 24 hours as the flavours meld and deepen. Make it a day ahead whenever possible. It stores in an airtight container in the refrigerator for up to 5 days. It also freezes very well — portion into freezer bags or containers and freeze for up to 3 months. Defrost overnight in the fridge and reheat gently in a saucepan with a splash of water if needed.
Variations
- Hot Chakalaka: Double the chilli and add a teaspoon of dried chilli flakes with the spices. This is the version preferred at many township braais.
- With cabbage: Some versions include ¼ of a small head of cabbage, finely shredded, added with the carrots and peppers. It adds bulk and a pleasant texture.
- Without baked beans: Replace the baked beans with 2 tins of kidney beans or black beans, drained and rinsed, plus 1 tin of chopped tomatoes. The result is less sweet but equally good — closer to the versions made in restaurants.
