
A hearty Tanzanian staple of firm white cornmeal porridge served alongside a fragrant coconut-and-tomato fish curry. This combination is beloved across Tanzania's coastal and inland regions alike.
Ugali is the undisputed backbone of Tanzanian cuisine, a dense maize-flour porridge that anchors almost every meal. When paired with mchuzi wa samaki — a rich coastal fish curry simmered in coconut milk, tomatoes, and warming spices — it becomes a deeply satisfying feast that reflects the Swahili coast's centuries of Indian Ocean trade. Fishermen along Dar es Salaam's shores have served this pairing for generations, using whatever the morning catch brings in. The soft, flaky fish absorbs the curry beautifully, making each scoop of ugali a vehicle for bold, aromatic flavour.
Serves 4
Toss fish chunks with lime juice, turmeric, and a pinch of salt. Set aside for 15 minutes while you prepare the other components.
Heat oil in a wide pan over medium heat. Add onion and cook until golden, about 8 minutes. Add garlic and ginger; cook 1 minute until fragrant. Stir in cumin, coriander, and cayenne.
Add chopped tomatoes and cook, stirring, until they break down into a thick paste, about 6 minutes. Pour in coconut milk, season with salt, and bring to a gentle simmer.
Carefully lower the marinated fish into the curry. Simmer uncovered for 10–12 minutes, turning once, until fish is cooked through and flakes easily. Stir in fresh cilantro.
While the curry simmers, bring 4 cups of salted water to a boil in a heavy pot. Gradually whisk in maize flour to avoid lumps. Reduce heat and stir vigorously with a wooden spoon for 8–10 minutes until the ugali pulls from the sides and is very stiff.
Wet a bowl and press ugali firmly into it, then invert onto a plate to create a neat mound. Ladle fish curry alongside. Serve immediately.
Use a wooden spoon and stir continuously when adding flour to prevent lumps.
Snapper, tilapia, or kingfish all work well — just avoid very delicate fish that will break apart.
For a richer curry, replace half the coconut milk with coconut cream.
Substitute fish with prawns for mchuzi wa kamba.
Add spinach or kale to the curry in the last 2 minutes for extra greens.
Make ugali with cassava flour for a slightly different texture.
Store curry separately from ugali in airtight containers in the refrigerator for up to 2 days. Reheat curry gently on the stove; ugali is best freshly made.
Ugali has been the cornerstone of East African cuisine for centuries, made from millet, sorghum, or maize depending on what was available. Maize ugali became dominant after the crop's introduction from the Americas in the 16th century. The fish curry tradition reflects the Swahili coast's deep ties to Arab, Indian, and Portuguese traders who brought spices and coconut-based cooking techniques that fused with local ingredients.
Ugali is ready when it pulls cleanly away from the sides of the pot and forms a smooth, very stiff mass. It should not feel wet or sticky.
Fresh fish is strongly preferred for flavour and texture. If using canned, add it only in the last 2 minutes of cooking just to heat through.
Per serving (480g / 16.9 oz) · 4 servings total
Ask our AI cooking assistant anything about this recipe — substitutions, techniques, scaling.
Chat with AI Chef →Join the conversation
Sign in to leave a comment and save your favourite recipes