Bring a taste of South Africa to your table with this easy chakalaka recipe, South Africa's iconic spicy vegetable relish. Quick to prepare, and packed with vegetables and spices, it's a versatile dish that not only pairs well with a barbeque or grilled meat, but can also be served as a tasty side dish with sausages or roast chicken.

I think every family in South Africa has their own preferred version of this easy chakalaka recipe! This traditional South African side dish is a spicy vegetable relish that's a staple at braais (barbeques) and family meals across the country. It's traditionally served over a bowl of pap or maize porridge (similar to polenta), and it ranks alongside this recipe for tomato stew (tamatie-smoor) in the barbeque side-dish popularity stakes!
The word 'chakalaka' is said to have originated from Zulu slang, roughly translated as 'thrown together', which reflects how chakalaka was traditionally made - a quick, improvised blend of whatever vegetables and spices were available.
The basic ingredients for this chakalaka recipe are simple: onions, carrots, bell peppers and tomatoes, spiced with garlic, ginger and chilli, plus the secret ingredient - a can of baked beans! The beans add a rich, slightly sweet tomato base and a creamy flavour, giving the relish its signature depth of flavour.
As long as you've got the basics, you can play around adding different vegetables and spices to your heart's content.
Chakalaka can be quite hot and spicy. I'm not a lover of 'food that hurts', so I've toned down my chakalaka recipe by leaving out the fresh chilli and adding only a small amount of cayenne pepper. Whether you do the same or add more chilli is entirely up to you!
For this version of chakalaka, I've included shredded cabbage, but you could also include finely chopped green beans, cubes of butternut squash, corn kernels or even peas. I've also added a little thyme and sweet paprika, but once again, you can change these to your own taste. Why not try using oregano, chopped coriander or parsley.
Whether you stick to the basics or get creative with your own additions, chakalaka is a simple and flavourful side dish.

Jump to:
Why you should try this recipe
This chakalaka recipe has so many reasons to love - let's see why it's a South African favourite:
- Quick and simple - ready in 30 minutes with basic, simple ingredients.
- Customisable - easily adapts to whatever vegetables and spices you have available.
- Authentic South African recipe - probably first created by the Zulu tribe, but over the years converted into a classic South African staple.
- Versatile - serve it over pap, rice or mashed potatoes, alongside grilled meat, or turn it into an easy vegetarian meal by serving with crusty bread.
- Keeps well - the flavours develop as it stands, so it's perfect for making ahead and storing in the fridge for a few days.
- Freezes like a dream - I freeze leftovers in cup-sized portions and add them to stews and casseroles for extra oomph!
I hate waste, so what I love most about it is that I can use up vegetables that are on their way out!
Recipe information
Prep time: 10 minutes to prepare the vegetables.
Cooking time: 20 minutes
Yield: This recipe makes sufficient for 8 to 10 people as a side. If you want to make less, simply halve the recipe.
Ingredients for chakalaka
**You can find the exact ingredient quantities on the printable recipe card at the end of this post.**
This is my version, but you can chop and change the vegetables and spices to suit your own taste.

Vegetables
- Cabbage - I used firm white cabbage, but you could use sweetheart cabbage instead. I would tend to steer clear of savoy cabbage because it can have a slightly bitter taste, but that's up to you! The cabbage should be finely sliced or shredded. If you don't like cabbage, leave it out or substitute it with something like chard, spinach or kale.
- Carrots - these should be grated.
- Onions - I used white onions, but you could use brown ones instead. That's the beauty of this dish - you can use whatever you have available.
- Bell pepper - traditional chakalaka always contains green and red peppers. I don't enjoy green pepper, so I used a yellow pepper instead.
- Tomatoes - this is simply a can of chopped tomatoes in juice.
- Baked beans in tomato sauce - I know this sounds like a strange ingredient to add, but it just works. You could substitute with a can of drained kidney beans or even chick peas. However, I would recommend adding a tablespoon of tomato puree if you do substitute.
- Oil - used for softening the onions. Use a neutral-flavoured cooking oil - I use either sunflower or rapeseed, depending on what I have in the kitchen at the time.
Spices and flavourings
- Garlic and ginger - you can use fresh, finely minced garlic or garlic paste, and the same with ginger. If you use fresh ginger, it should be grated.
- Chilli (not pictured because I didn't use it - the curry powder adds enough heat for my taste). You could use a fresh, chopped chilli and soften it when you fry the onions, or simply add dried chilli flakes or cayenne pepper to taste.
- Curry powder - use your favourite brand, and depending on your heat tolerance, use either mild, medium or hot strength. Substitute with a teaspoon of cumin and a teaspoon of ground coriander, plus dried chilli flakes or cayenne pepper for the heat.
- Paprika - use either sweet or smoked paprika, depending on your taste.
- Dried thyme - use whatever herbs you prefer, rosemary, oregano or mixed herbs all work well. You can substitute with fresh herbs or leave them out if you don't want the slightly herby taste.
- Salt - helps to round out the flavours.
Instructions

Step 1: Heat the oil over moderate heat in a large pan and fry the onion for 4 to 5 minutes until it starts to turn translucent. If you are using fresh chilli, soften it with the onions.

Step 2: Stir in the spices to coat the onions and fry for one minute longer.

Step 3: Add the can of tomatoes. Rinse the can with one-quarter of a cup of water and add that to the tomatoes. Bring the mixture to a boil.

Step 4: Turn the heat to low and add the cabbage, carrots and bell peppers.

Step 5: Stir well to coat the vegetables in the tomatoes.

Step 6: Cover the pan with a lid, and simmer for 15 minutes to give the vegetables time to soften.

Step 7: Stir in the baked beans, taste for seasoning and adjust if necessary. Allow the mixture to simmer for 3 to 4 minutes to give the beans time to heat through.
Tips for a successful outcome
Here are my top tips for ensuring your easy chakalaka recipe always turns out perfectly:
- If you prefer, you can soften the bell peppers with the onions.
- When adding the spices to the onions, take care not to burn them or they will become bitter. Stir them with the onions over a low heat.
- Don't add more than one-quarter of a cup of water to the tomatoes or the mixture will be runny once it's cooked. The vegetables release moisture, causing steam in the pan, which cooks the vegetables perfectly.
- Once the vegetables have simmered (with the lid on), check the amount of liquid left in the pan. There should be very little. If there is still a lot of liquid, let the mixture simmer uncovered for a few minutes to allow some of the liquid to evaporate.
- Don't overcook the chakalaka - you want the vegetables to still have a bit of 'bite'.
Serving suggestions
- Serve (in the traditional way) spooned over pap (maize porridge similar to polenta), mashed potatoes or rice.
- Serve it with sausages by swapping it with the tomato and onion in this recipe for sausages in tomato and onion gravy.
- Serve it spooned over a piece of grilled meat, such as these tandoori lamb chops or barbeque lamb chops.
- Simply serve it as a 'side-with-a-difference' with your next roast. It goes particularly well with roast chicken!
- Because chakalaka contains curry powder, it pairs beautifully as a side dish with curries.
- It would also be delicious served alongside this puff pastry boerewors spiral!
- You can also add one or two cups of chakalaka to stews and casseroles for extra flavour.

Variations
I've already mentioned how you can swap the vegetables and spices out to suit yourself.
This is a versatile recipe that originated out of hardship and necessity. You can vary it however you see fit:
- add a dollop of fruit chutney
- mix in a few vegetables left over from the previous night's roast (if they are already cooked, simply stir them in with the baked beans)
- flavour it in a different way by adding one or two tablespoons of Worcestershire sauce
- stir in a tablespoon of creamed horseradish
No matter how you customise it, chakalaka is always bursting with flavour and colour. It's quick to make, keeps well in the fridge, and adds a vibrant South African touch to any meal.
Equipment
This recipe is said to have originated with the Zulu tribe, many of whom were mine workers, living in very basic conditions, who definitely didn't have fancy kitchens to cook in.
For this reason, you don't need much equipment at all!
- A knife to peel and chop the vegetables, and a large pan to cook it all in, is all you will need. As a concession to protecting work surfaces in the kitchen, you might like to use a chopping board too!
Storage
Store any leftover chakalaka in a covered container in the refrigerator for 3 to 4 days. Reheat it in a saucepan or in the microwave.
I like to freeze it in cup-sized portions. You can defrost it in the refrigerator or in the microwave (if you are in a hurry).
If I'm adding it to a casserole or a curry, I normally just add the cup-sized frozen block into the pan and let it defrost in the stock.
FAQ
Yes, you can substitute the baked beans with chickpeas or kidney beans.
Yes, chakalaka is a naturally vegetarian recipe.
Save for later
If you would like to try this easy chakalaka recipe, why not save it to one of your Pinterest boards so you can find it easily? Just click the image below.
Alternatively, you can save the recipe by clicking on the floating heart icon on the right-hand side of the screen.
Related recipes
Visit my South African recipes page for other similar recipes. Here are a few you might enjoy:
📋The recipe

Easy chakalaka recipe - a traditional South African spicy vegetable relish
(Click the stars to rate this recipe)
Equipment
- Sharp Knife
- Chopping Board
- Spatula
- Large pan with a lid
Ingredients
- 2 cups / 200 grams cabbage shredded or sliced
- 2 medium carrots peeled and grated (about 1 cup)
- 1 large onion peeled and diced (about 1 cup)
- 1 medium red bell pepper deseeded diced
- 1 medium green bell pepper deseeded and diced
- 14 ounce / 400 gram can chopped tomatoes
- ¼ cup / 60 ml cold water
- 14 ounce / 400 gram can baked beans in tomato sauce
- 1 - 2 fresh chillis (optional) deseeded and sliced
- 2 - 3 cloves garlic minced
- ½ teaspoon ginger paste
- 1 tablespoon curry powder or more to taste
- 1 teaspoon dried thyme
- 1 teaspoon paprika sweet or smoked
- 1 teaspoon salt or to taste
- 2 tablespoons sunflower oil
Instructions
- Heat the oil over moderate heat in a large pan and fry the onion for 4 to 5 minutes until it starts to turn translucent. If you are using fresh chilli, soften it with the onions.1 large onion, 2 tablespoons sunflower oil, 1 - 2 fresh chillis (optional)
- Stir in the spices to coat the onions and fry for one minute longer.2 - 3 cloves garlic, ½ teaspoon ginger paste, 1 tablespoon curry powder, 1 teaspoon paprika, 1 teaspoon salt, 1 teaspoon dried thyme
- Add the can of tomatoes. Rinse the can with one-quarter of a cup of water and add that to the tomatoes. Bring the mixture to a boil.14 ounce / 400 gram can chopped tomatoes, ¼ cup / 60 ml cold water
- Turn the heat to low and add the cabbage, carrots and bell peppers.2 cups / 200 grams cabbage, 2 medium carrots, 1 medium red bell pepper, 1 medium green bell pepper
- Stir well to coat the vegetables in the tomatoes.
- Cover the pan with a lid, and simmer for 15 minutes to give the vegetables time to soften.
- Stir in the baked beans, taste for seasoning and adjust if necessary. Allow the mixture to simmer for 3 to 4 minutes to give the beans time to heat through.14 ounce / 400 gram can baked beans in tomato sauce
- Serve hot, spooned over pap or rice, to accompany grilled barbeque meat or sausages.
Notes
- If you prefer, you can soften the bell peppers with the onions.
- When adding the spices to the onions, take care not to burn them or they will become bitter. Stir them with the onions over a low heat.
- Don't add more than one-quarter of a cup of water to the tomatoes or the mixture will be runny once it's cooked. The vegetables release moisture, causing steam in the pan, which cooks the vegetables perfectly.
- Once the vegetables have simmered (with the lid on), check the amount of liquid left in the pan. There should be very little. If there is still a lot of liquid, let the mixture simmer uncovered for a few minutes to allow some of the liquid to evaporate.
- Don't overcook the chakalaka - you want the vegetables to still have a bit of 'bite'.
- Store any leftover chakalaka in a covered container in the refrigerator for 3 to 4 days. Reheat it in a saucepan or in the microwave.
- I like to freeze it in cup-sized portions (in ziploc bags). You can defrost it in the refrigerator or in the microwave (if you are in a hurry).
- If I'm adding it to a casserole or a curry, I normally just add the cup-sized frozen block into the pan and let it defrost in the stock.
Nutrition
I am not a nutritionist. The nutrition information has been calculated using an on-line calculator, and is intended for information and guidance purposes only. If the nutrition information is important to you, you should consider calculating it yourself, using your preferred tool.
If you made this recipe and enjoyed it, I'd love it if you could give me a star rating in the comments below. And if you'd like to get in touch, you can email me at [email protected]. I'd love to hear from you. And don't forget to subscribe to my mailing list so you can grab yourself a copy of my FREE COOKBOOK!
If you'd like to continue browsing, just click on this link to all my recipes.









Did you make this recipe? Let me know!