Senegalese herb-stuffed fish and broken rice cooked in tomato broth with cassava, cabbage, carrot, eggplant, okra, and tamarind

Thiéboudienne, also written ceebu jën, is Senegal’s renowned rice-and-fish dish. Firm fish is filled with a pungent rof of parsley, garlic, scallion, chili, and pepper, then cooked with a tomato broth and a generous selection of vegetables. Broken rice absorbs the seasoned liquid after the fish and vegetables are removed, allowing every component to be served together on one communal platter.
- Prep
- 50 mins
- Cook
- 1 hour 35 mins
- Rest
- 10 mins
- Total
- 2 hours 35 mins
- Serves
- 6
- Difficulty
- Advanced
The recipe
As an Amazon Associate I earn from qualifying purchases. Links marked “paid link” may earn a commission at no extra cost to you.
Before you start
Cut three deep pockets in the thick flesh of the fish without cutting through the bone. Pound or blend the rof ingredients into a coarse paste and fill the pockets. Rinse the broken rice until the water is mostly clear and drain thoroughly. Cut vegetables into large pieces so they survive the long simmer.
Ingredients
For the fish and rof
For the tomato broth
For the vegetables and rice
Quantities change with servings; cooking times stay the same.
Equipment
- Large heavy stockpot with lid paid link
- Perforated steamer insert paid link
- Large serving platter paid link
- Mortar and pestle or blender paid link
- Chef’s knife paid link
- Cutting board paid link
- Wooden spoon paid link
- Digital kitchen scale paid link
Method
Pound the parsley, garlic, spring onions, chili, peppercorns, salt, and lemon juice into a coarse rof.
Fill the cuts in the fish with most of the rof, reserving about 30 g for the broth.
Heat the peanut oil in a large heavy pot. Fry the fish for 4 to 5 minutes per side until lightly colored, then remove carefully.
Add the onions to the pot and cook for 5 minutes. Stir in the tomato paste and fry for 8 minutes until darkened and glossy.
Add the grated tomatoes, dried salted fish, nététou, bay leaves, reserved rof, water, and salt. Simmer for 15 minutes.
Add the carrots, cabbage, cassava, sweet potato, eggplant, okra, whole Scotch bonnet, and fried fish. Simmer gently for 25 to 35 minutes, removing each item as it becomes tender.
Place the drained broken rice in a perforated steamer over the simmering broth and steam for 15 minutes, then return it to a bowl and break up any clumps.
Measure enough broth to cook the rice by absorption, returning surplus broth to a small saucepan for serving. Add the steamed rice to the main pot, cover tightly, and cook over low heat for 20 to 25 minutes.
Mix the tamarind paste with 80 ml warm broth, strain if fibrous, and serve it as a sharp accompaniment.
Rest the rice for 10 minutes, fluff gently, then arrange it on a large platter with the fish and vegetables and spoon over a little reserved broth.
Chef’s notes
Use firm whole fish or thick steaks; delicate fillets will break during the long preparation.
Fry tomato paste until it darkens slightly. This removes raw acidity and builds the characteristic red base.
Remove vegetables separately as they become tender so the cabbage and okra do not collapse while cassava finishes cooking.
Broken rice absorbs quickly. Keep the heat low and add a little reserved broth only if the grains are still firm.
Tips and variations
Thiof, a local grouper, is highly valued; red snapper or sea bass are practical substitutes.
Nététou and dried fish provide traditional fermented depth. Use modestly if unfamiliar with their strength.
Vegetable selection changes with the market; turnip, pumpkin, or bitter eggplant may join the platter.
For ceebu jën bu weex, the white variation, omit the tomato paste and grated tomato and adjust the broth seasonings.
Serve with
Spread the red broken rice across a very large platter. Place the fish in the center and arrange the vegetables by color around it, spooning a little broth over the fish without soaking the rice.
Storage
Separate fish, vegetables, and rice into shallow containers and refrigerate within 2 hours for up to 2 days. Reheat until steaming throughout. Do not repeatedly cool and reheat cooked rice. Freeze the tomato broth separately for up to 2 months.
Nutrition per serving (estimated)
- 860 kcal
- Calories
- 49 g
- Protein
- 111 g
- Carbohydrates
- 26 g
- Fat
- 13 g
- Fibre
- 17 g
- Sugar
- 1420 mg
- Sodium
Allergens
Contains fish. Peanut oil is used; include a peanut warning even when highly refined oil is selected. Nététou is fermented locust bean, not a tree nut. Check dried fish for cross-contact.
Made it?
Rate this recipe. Your rating helps other cooks.
No ratings yet. Be the first.
Questions
What does thiéboudienne mean?
The name comes from Wolof words referring to rice and fish; ceebu jën is another common spelling.
Why use broken rice?
Its smaller grains absorb the seasoned broth readily and create the cohesive texture associated with the dish.
Is the fish always stuffed?
A parsley, garlic, chili, and pepper rof pushed into cuts in the fish is a defining flavor-building technique.
Can I cook the rice separately?
You can, but cooking it in the tomato fish broth is central to the dish’s flavor and character.