African Recipes
Sao Tomean Fish and Palm-Oil Stew
Calulu is the kind of stew that fills a whole kitchen with its smell long before it reaches the table. It layers fish and vegetables in a single deep pot, then binds them with red palm oil and a spoonful of ground peanut so the broth turns glossy and full-bodied. The first time I made it, I stirred the okra too often and ended up with a slippery pot, so I have learned to let it sit and simmer instead.

Why This Calulu Works
Calulu is island cooking at its most generous. It takes what the sea and the garden give on the same day, layers them in one pot, and lets them cook into something far greater than the sum of the parts. The fish gives savory depth, the greens give body, and the red palm oil ties everything together with its earthy, faintly sweet richness.
The single most important idea here is layering, not stirring. You build the pot from the bottom up, onion and tomato first, then the sturdier vegetables, then the greens and fish on top. When you leave it mostly alone to simmer, the flavors settle into each other and the okra thickens the broth naturally instead of turning slippery.
Ground peanut is the quiet workhorse. Just a couple of spoonfuls stirred in near the end give the stew a rounded, nutty body that makes it taste slow-cooked even on a weeknight. It is the difference between a thin fish soup and a proper calulu.
It is also forgiving and seasonal. Whatever dark leafy greens you can find, whatever firm halal fish is freshest, the method stays the same. Once you understand the layering, you can cook calulu with your own market’s produce and it will still taste like the island version.
Pro observation: The stew is ready when a thin film of red palm oil rises and pools on the surface. That glossy orange sheen means the vegetables have released their liquid and the broth has concentrated.
Ingredients
Kitchen Measurement Converter
Quickly convert between common cooking measurements without leaving the recipe. Pick a category, enter a value, and the result updates instantly.
Ingredient Notes & Substitutions
Halal Fish
Use a firm halal white fish that holds together in a stew, such as grouper, snapper, cod, or hake. Fresh is ideal, and lightly smoked halal fish adds a deeper savory note. Cut it into large chunks so it does not fall apart.
Red Palm Oil
Red palm oil gives calulu its signature color and earthy richness, and it is entirely halal. Look for the deep orange, unrefined kind. If you must, you can use a neutral oil, but the stew loses its character.
Leafy Greens
Sweet potato leaves are traditional, but amaranth, spinach, or collard greens all work. Sturdier greens need a few extra minutes; tender spinach only needs to wilt at the end.
Ground Peanut
A spoonful of smooth peanut butter or freshly ground peanut thickens and rounds the broth. Stir it into a little warm stock first so it blends smoothly instead of clumping.
Equipment
- Wide, deep heavy pot
- Wooden spoon
- Sharp knife and board
- Small bowl for peanut
- Box grater or microplane
- Ladle
Before You Start
1. Season the fish first. Rub the fish chunks with a little salt, lime juice, and garlic and set them aside while you prep. This short marinade brightens the fish and firms it slightly.
2. Prep every vegetable before you light the stove. Calulu comes together by layering quickly, so have the onion, tomatoes, okra, eggplant, and greens all chopped and within reach.
3. Start the funge or rice alongside. Calulu is meant to be spooned over funge or rice, so get the porridge or rice going before the stew, since the stew moves fast once it starts.
Step-by-Step Instructions
Season the Fish and Prep
Cut the fish into large chunks and toss them with a pinch of salt, half the lime juice, and a little of the garlic. Set aside. Chop the onion, tomatoes, okra, eggplant, and greens, and grate the ginger so everything is ready to layer.
Build the Base
Warm the red palm oil in a wide, deep pot over medium heat until it loosens and turns bright orange. Add the onion and cook 4 to 5 minutes until soft, then stir in the garlic and ginger and cook 1 minute more. Add the tomatoes, chili, and bay leaves and cook 6 to 8 minutes until the tomatoes collapse into a thick, jammy base.

Layer the Sturdy Vegetables
Add the diced eggplant and the sliced okra, then pour in the water or fish stock. Bring it to a gentle simmer and cook 8 to 10 minutes, stirring only once or twice, until the eggplant softens and the okra is just tender. Resist the urge to stir often, which keeps the okra from turning slippery.
Add the Greens and Peanut
Stir the ground peanut into a small ladle of the hot broth until smooth, then pour it back into the pot. Pile the chopped greens on top and let them wilt down into the stew, about 4 to 5 minutes. Season with salt and black pepper and taste the broth for balance.

Slide in the Fish
Nestle the seasoned fish chunks into the simmering stew, spooning some broth over the top. Cover and cook gently for 6 to 8 minutes, without stirring, until the fish turns opaque and flakes easily with a fork. Handle it lightly so the pieces stay whole.
Rest, Finish, and Serve
Turn off the heat and let the calulu rest 5 minutes so the palm oil rises and the flavors settle. Stir in the remaining lime juice, taste one more time, and adjust the salt. Serve hot over funge or rice, spooning plenty of the rich broth over each portion.

Chef’s Tips From Real Kitchen Testing
Stir the okra as little as possible. The more you agitate it, the more it releases its gum and turns the broth slippery. A gentle simmer keeps the texture clean.
Add the fish last and let it poach in the stew off a hard boil. Gentle heat keeps the pieces whole and just cooked through rather than dry and shredded.
Whisk the peanut into a little hot broth before adding it to the pot. This stops it from clumping and lets it thicken the stew evenly.
Recipe Variations
Serving Suggestions
- Funge or angu made from cassava or cornmeal
- Steamed white rice to soak up the broth
- A wedge of lime and extra chili on the side
- Sliced avocado or fried plantain
Nutrition Facts
| Nutrient | Amount per serving |
|---|---|
| Calories | 420 |
| Protein | 34 g |
| Carbohydrates | 18 g |
| Fat | 24 g |
| Saturated Fat | 9 g |
| Fiber | 6 g |
| Sugar | 7 g |
| Sodium | 640 mg |
Values are estimates per serving and vary with the exact ingredients and brands you use.
Make-Ahead Tips
The vegetable base of calulu is a great make-ahead component, since the flavors deepen as it sits. Cook the stew through the greens a day ahead, cool, and refrigerate. When you are ready to eat, warm it gently, add a splash of stock to loosen it, then slide in the fresh fish and poach it just before serving so the fish stays tender.
Storage, Freezing & Reheating
Common Mistakes to Avoid
Troubleshooting
Broth too slippery? The okra was stirred too much. Next time stir less, and for now simmer uncovered a few extra minutes to reduce and firm up the texture.
Stew tastes flat? It usually needs salt and a squeeze of lime to lift the flavors. A little extra chili wakes it up too.
Broth too thin? Simmer it down before adding the fish, or whisk in another spoonful of ground peanut to thicken and enrich it.
A Note on Sao Tomean Cooking
Sao Tome and Principe is a small twin-island nation in the Gulf of Guinea, and its cooking reflects that setting: fish from the surrounding sea, dark leafy greens and root vegetables from lush volcanic soil, and the deep color of red palm oil in nearly every pot. Calulu is one of the islands’ signature dishes, often cooked in a big batch for a Sunday gathering or a festive occasion when family comes together. The same layered technique appears in Angola, where calulu is equally beloved. If you enjoy hearty, spoonable bowls, our hearty tomato lentil soup shares the same comforting spirit, and you can browse more ideas in our full collection of tomato recipes.
Frequently Asked Questions
More Tomato Recipes to Try
Last updated: September 23, 2026
