Saint-Louis and the Atlantic coast of Senegal — now cooked nationwide, from Dakar to the Casamance · Senegalese
Thieboudienne (Ceebu Jën) — Senegalese Fish and Broken Rice
Senegal's national dish and UNESCO-listed culinary art: whole fish stuffed with a pounded parsley-and-garlic rof, fried, then simmered with cassava, cabbage and carrot in a long-fried tomato base — and broken rice steamed in that broth until every grain drinks it up.
Published August 18, 2026
Cultural context
Ceebu jën means simply 'rice and fish' in Wolof. It was born in the fishing quarters of the island city of Saint-Louis, and cooks there credit a nineteenth-century woman named Penda Mbaye with turning a shortage of whole imported rice into a virtue by cooking with cheap broken grains instead. UNESCO inscribed it on the Representative List of the Intangible Cultural Heritage of Humanity in 2021, recognising not just the dish but the practice around it: the recipes handed from mother to daughter, the shared communal bowl, the etiquette of eating from your own wedge of it. It is also the ancestor of the whole West African jollof family — benachin in The Gambia, riz gras in Burkina Faso and Guinea, jollof in Ghana and Nigeria — which is a lineage Senegalese cooks are rightly quick to mention.
Thieboudienne — ceebu jën in Wolof, and the name means nothing more elaborate than “rice and fish” — is Senegal’s national dish and, on the evidence of the whole West African coast, the origin story of jollof. It is a single wide platter: broken rice stained orange-red with long-fried tomato, a bed of it, and laid over the top the fish steaks stuffed with a pounded green paste of parsley and garlic, with cassava, cabbage, carrot, sweet potato and okra arranged around them. The rice is cooked in the broth the fish and vegetables have just come out of, which is the entire architecture of the dish in one sentence.
Saint-Louis, and a shortage that became a tradition
The dish belongs to the island city of Saint-Louis, at the mouth of the Senegal River, and specifically to its fishing quarters. The origin story told there credits a nineteenth-century cook named Penda Mbaye, who, faced with a shortage of the whole imported rice she was meant to be serving, cooked the cheap broken grains instead — and found they drank the fish broth far better than intact ones ever had. The constraint became the standard. Senegalese kitchens now buy broken rice on purpose, and a ceebu jën made with long-grain is a slightly different, thinner thing.
In 2021 UNESCO added ceebu jën to its Representative List of the Intangible Cultural Heritage of Humanity. What was inscribed was not only the recipe but the practice: the transmission from mother to daughter, the single shared bowl, the etiquette around it — you don’t sit with a raised knee, you hold the bowl with your left hand, you don’t drop grains of rice.
The rof is not a marinade
The technique that separates ceebu jën from every other fish-and-rice pot is rof: parsley, garlic, spring onion and chilli pounded in a mortar with a seasoning cube into a coarse, wet paste, then pushed into deep slits cut down to the bone of each fish steak.
Marinating would be pointless. The steaks then go into two litres of broth, and anything sitting on the surface simply washes away. Packed inside the flesh, the rof survives both the fry and the simmer, so when the fish comes apart at the table it releases parsley and garlic from the inside out. Pound it, don’t blend it — a food processor gives you green water that runs straight back out of the cut.
Fry the tomato paste longer than feels reasonable
Eight to ten minutes of hard, near-constant stirring turns concentrate from bright red and metallic to brick red and sweet, with oil beading out at the edges. That colour change is the difference between a broth that tastes of cooked tomato and one that tastes of tinned tomato. It is also the step that makes this the red version — ceebu jën bu xonq. The older white version, bu weex, skips tomato entirely and leans on tamarind and fermented netetou, and plenty of Saint-Louis families still consider it the better dish.
Sourness and fermented savour are the two poles the recipe is balanced on. Tamarind (dakhar) cuts the richness of all that oil and paste; netetou, fermented locust bean, or guedj, dried fermented fish, provides a deep aged savour that fresh fish on its own cannot reach. If you can only find one of the two, find the fermented one.
Stagger the vegetables, then let the rice drink
Six vegetables in one pot means six different timings — cassava and sweet potato go in first, cabbage and aubergine next, okra last and whole so it doesn’t turn ropey. Once everything is tender it all comes out, and only then does the rice go in, into a broth that has been tasted and corrected and is deliberately a shade too strong. Two parts broth to one part broken rice; lowest heat; lid on; twenty-odd minutes untouched. A final two or three minutes over higher heat gives you the xooñ, the toasted crust at the bottom of the pot, and if you have ever fought over Persian tahdig or Spanish socarrat you already understand what happens next.
If you want to follow the dish east along the coast, Nigeria’s jollof rice is where the same idea ended up once the fish stepped aside — and there’s more on dishes worth crossing a border for in the world classics guide.
Ingredients
For the rof (the fish stuffing)
- 1 large bunch (about 40 g) flat-leaf parsley, thick stalks included The rof is overwhelmingly parsley. It is not a garnish here — it's the green heart of the dish, and a mean handful will taste like it.
- 6 cloves garlic
- 3 spring onions or 1 small shallot, roughly chopped
- 1 Scotch bonnet chilli, stemmed (deseed for less heat) Senegalese cooks often leave a second one whole in the broth, to be lifted out before serving or crushed by whoever wants it.
- 1 seasoning cube (Maggi or Jumbo), crumbled Standard in every Senegalese kitchen. Substitute 1 tsp bouillon powder and go easy on salt elsewhere.
- 1/2 tsp coarsely ground black pepper
- 1/2 tsp fine sea salt
For the fish
- 1.2 kg firm white fish — grouper, red snapper or sea bass, cleaned and cut into thick steaks on the bone The benchmark fish is thiof, the white grouper of the Senegalese coast. Bone-in steaks matter: the bones and collagen are what turn the cooking liquid into a broth worth steaming rice in.
- 150 ml groundnut oil, for frying Peanut is Senegal's cash crop and its cooking fat. Some cooks use a spoonful of red palm oil alongside it for colour and a faintly earthy sweetness.
For the broth (nokoss and base)
- 2 large onions, finely chopped
- 4 cloves garlic, crushed
- 150 g (about 8 tbsp) double-concentrated tomato paste This is what makes it ceebu jën bu xonq — the red version. Leave it out entirely and you have the equally traditional white version, ceebu jën bu weex.
- 2 ripe tomatoes, chopped
- 1–2 tbsp netetou (fermented locust bean), or 30 g guedj (dried fermented fish), or 1 tbsp fish sauce The optional-but-not-really ingredient. Senegalese cooking builds savour on fermented seafood and legume — netetou, guedj, and the fermented sea snail called yett. Any one of them gives the broth a depth that fresh fish alone cannot. Fish sauce is the easiest stand-in outside a West African grocer.
- 2 tbsp tamarind pulp (dakhar), soaked in 100 ml warm water and sieved Sourness is the counterweight to all that concentrated tomato and oil. Lime juice at the end is a passable substitute but lands sharper and thinner.
- 2 litres water, hot
- 2 bay leaves
For the vegetables
- 300 g cassava, peeled and cut into large batons Peel it thickly — the pink underskin is bitter. Frozen cassava works well and saves the fight with the waxy peel.
- 1/4 white cabbage, left in wedges with the core attached Keep the core in so the wedges hold together through a long simmer and can be lifted out whole.
- 2 large carrots, halved lengthways and cut into long pieces
- 1 medium sweet potato, in thick rounds
- 2 small aubergines, halved The authentic one is jaxatu (also written diakhatou), the round, bitter African eggplant. If you find them, use four whole and expect a pleasant bitterness that the dish is built around.
- 8 okra, left whole with the caps trimmed but not cut open Whole and uncut, okra adds body without releasing the mucilage that puts people off it.
For the rice
- 600 g (about 3 cups) broken rice (riz brisé) Not a compromise — the point. Fractured grains have far more cut surface, so they absorb the broth deeply and cook to a soft, cohesive bed rather than separate fluffy grains. Look for Thai broken jasmine in Asian or African groceries; failing that, use a long-grain rice and accept a lighter result.
To serve
- 2 limes, in wedges
- 1 small onion, sliced into rings and briefly soaked in lime juice and a pinch of salt The sharp onion relish (soump) laid over the top at the table.
Method
Tap a step’s number to check it off as you go.
-
Pound the parsley, garlic, spring onion, Scotch bonnet, seasoning cube, black pepper and salt in a mortar to a coarse, wet green paste. This is the rof.
Why: A mortar bruises and tears, releasing oils that a blade cleanly slices past. Blitzing in a food processor gives you a watery purée that will run straight out of the fish; pounded rof holds its shape and stays put.
-
Cut two or three deep slits into each fish steak, down to the bone. Push the rof firmly into the slits and rub whatever is left over the surface. Rest for 20 minutes.
Why: Stuffing rather than marinating is the technique that defines ceebu jën. Seasoning laid on the outside washes off in a two-litre pot of broth; seasoning packed inside the flesh survives the fry and the simmer, so the fish tastes of parsley and garlic all the way through.
-
Heat the oil in a large heavy pot over medium-high heat and fry the fish steaks for 3–4 minutes a side, until deeply browned but not cooked through. Lift them out and set aside.
Why: This is for colour and for the fond, not to cook the fish — it finishes later in the broth. The browned crust also helps the steaks survive the simmer without falling into flakes.
-
Lower the heat to medium. In the same oil, cook the onions and garlic with a good pinch of salt for 8–10 minutes, until soft and just golden.
Why: The onions dissolve into the broth and are the sweetness that balances the tomato paste. Rushing them to brown gives bitterness instead.
-
Add the tomato paste and fry it, stirring almost constantly, for 8–10 minutes, until it darkens from bright red to brick and oil starts to bead out at the edges. Stir in the fresh tomatoes and cook 5 minutes more.
Why: This long fry is the single biggest flavour decision in the pot. It cooks off the tinny, sour edge of concentrate and caramelises its sugars. Under-fried tomato paste is why home versions taste sharp and flat.
-
Stir in the netetou or guedj, then pour in the hot water and add the bay leaves and the strained tamarind liquid. Bring to a simmer and cook uncovered for 10 minutes.
Why: The fermented element needs time in liquid to bloom and distribute; added at the end it reads as a smell rather than as savour. The tamarind goes in early so its sourness settles into the broth instead of sitting on top.
-
Add the cassava, carrot and sweet potato and simmer 10 minutes, then add the cabbage wedges, aubergine and okra and simmer 10–12 minutes more, until everything is tender at the point of a knife.
Why: Staggering is the whole trick to a one-pot dish with six vegetables. Cassava takes three times as long as okra; put them in together and you get one raw and one collapsed.
-
Return the fried fish to the pot, nestling the steaks into the broth. Simmer very gently for 8–10 minutes, until the flesh flakes at the bone.
Why: Gently is doing real work here. A rolling boil shreds the steaks and lets the rof escape into the broth; a bare tremble keeps them whole.
-
Lift the fish and all the vegetables out with a slotted spoon onto a warm platter and cover. Taste the broth now: it should be assertive, sour, salty and deeply savoury — a little stronger than you'd want to drink.
Why: Everything from here is about the rice, and this is the last moment you can season it. The rice will absorb the entire pot and dilute it as it goes.
-
Measure the broth. Set aside about 500 ml in a jug for serving, and top up or reduce the rest to roughly 1.2 litres, i.e. twice the volume of your rice.
Why: Broken rice drinks about double its volume. Reserving broth to spoon over at the table is standard Senegalese practice — the platter arrives moist rather than dry.
-
Rinse the broken rice in two changes of water — briefly, not until clear — then stir it into the pot. Bring to a boil, then turn the heat to its lowest, cover tightly and cook undisturbed for 20–25 minutes.
Why: Unlike jollof, you want some surface starch here: it's what binds broken rice into the soft, spoonable bed the fish sits on. Rinse it too thoroughly and you lose the texture the dish is named for.
-
Uncover, check the rice is tender, then turn the heat to medium-high for 2–3 minutes until you hear a faint crackle and smell toasting. Take the pot straight off the heat and rest it, covered, for 10 minutes.
Why: That toasted bottom layer is the xooñ, and in Senegal it is the piece people angle for. Two or three minutes gives you a crust; five gives you a burnt pot. Use your nose, not the clock.
-
Spread the rice over a wide platter, arrange the fish and vegetables on top, scrape the xooñ up and scatter it over, then lay on the lime-soaked onion rings. Serve the reserved broth alongside for spooning over.
Why: Ceebu jën is a single communal platter, not plated portions — everyone eats from the wedge in front of them and the host distributes fish and vegetables. Building it as one landscape is part of the dish.
A quick, anonymous tap — no review needed.
Variations
- Ceebu jën bu weex (the white version)
Leave out the tomato paste and fresh tomatoes entirely and lean harder on tamarind, netetou and lime. Older than the red version — tomato concentrate is a twentieth-century arrival — and still what many Saint-Louis families cook. The broth is pale gold and much sharper.
- Ceebu jën bu ñebbe
Add a cup of cooked black-eyed peas to the pot with the rice. A cheaper, everyday variation that also makes the dish substantially more filling.
- Cooked with red palm oil
Replace 3 tablespoons of the groundnut oil with red palm oil (diw tiir). It stains the rice a deeper orange-red and brings a distinct earthy, almost violet note that is unmistakably West African.
- Fillets instead of steaks
If bone-in steaks aren't available, use thick fillets — but simmer a few fish heads and frames in the broth for 20 minutes first and strain them out. Without bones the broth is noticeably thinner, and the broth is the dish.
- Chicken (ceebu yapp)
The same architecture with meat: brown bone-in chicken thighs or lamb in place of the fish and simmer them for 40 minutes before the vegetables go in. Strictly this is a different dish, but it is cooked in the same kitchens on the same principles.
Serving & Storage
Serve it the Senegalese way: everything on one wide communal platter set in the middle of the table, with the fish and vegetables arranged over the rice and the reserved broth in a jug for spooning. Lime wedges and the salted onion rings go on at the table, and a bowl of the extra broth for anyone who likes it wetter. Follow with strong mint-scented ataya tea if you have the afternoon free.
Pairs with: Kinkeliba or ataya (Senegalese mint tea), Bissap (hibiscus cooler), A crisp dry rosé or Muscadet, Fresh baguette for the broth.
Storage: Keeps 3 days refrigerated; cool within an hour and store the fish separately from the rice so it doesn't overcook on reheating. Reheat the rice covered with a splash of the reserved broth over low heat, or in a hot pan with a little oil to rebuild a crisp bottom. The broth freezes well for 2 months and turns any subsequent pot of rice into a shortcut version. Do not freeze the cooked fish — it goes woolly.
Nutrition
Per serving (About 1 1/2 cups rice with fish and vegetables)
- Calories
- 640
- Protein
- 34 g
- Carbs
- 82 g
- Fat
- 19 g
- Fiber
- 7 g
- Sugar
- 10 g
- Sodium
- 1100 mg
Notable micronutrients: Vitamin A, Vitamin C, Selenium, Potassium, Vitamin B12
Estimated using standard ingredient data. Values vary with brands and substitutions.
Frequently Asked Questions
Is thieboudienne the original jollof rice?
It's the closest surviving ancestor, which is not quite the same claim. Food historians trace the whole jollof family to the Wolof — or Jolof — empire of the Senegambia region, and ceebu jën is the version that stayed home: rice cooked in a fish broth rather than rice cooked in a pepper stew and served with meat alongside. As the technique travelled east along the coast the fish dropped away, the tomato-and-pepper base moved to the front, and it became benachin, riz gras and eventually Nigerian and Ghanaian jollof. Senegal's inclusion on the UNESCO list in 2021 recognised the practice, not a patent.
Do I really have to use broken rice?
For the real texture, yes. Broken rice is milled-grain fragments, so it has far more cut surface, drinks up much more broth, and sets into the soft, faintly sticky bed that the fish and vegetables sit on — the whole point of a dish whose name is 'rice and fish'. Long-grain rice makes a perfectly good dinner but a distinctly lighter, more separate one. Broken jasmine from an Asian or African grocer is the easy find; some Italian shops sell riso spezzato.
What can I use instead of netetou or guedj?
A tablespoon of Southeast Asian fish sauce is the most available stand-in and gets you most of the way. Failing that, a small piece of dried shrimp or a spoonful of shrimp paste, or — least authentically but not badly — a tablespoon of miso plus an anchovy. What you're replacing is fermented savour, not fishiness as such, so something aged and funky matters more than something that tastes of the sea.
My fish fell apart. What went wrong?
Almost always the simmer was too hot, or the steaks were too thin. Fry them hard enough to form a crust, keep the broth at a bare tremble once they go back in, and don't turn them — spoon broth over instead. Bone-in steaks 3–4 cm thick hold together far better than fillets, which is a good enough reason to ask the fishmonger to cut the fish across rather than filleting it.
Can I make it ahead?
Partly, and it's how a lot of weekday Senegalese cooking works. The broth and vegetables can be made a day ahead and refrigerated — the flavour improves overnight — leaving only the rice steam and a quick simmer of the fish on the day, about 40 minutes. Making the rof the night before is also worth it: it sits happily in the fridge under a film of oil.
What is the crispy rice at the bottom called?
Xooñ — the toasted layer stuck to the base of the pot, and the bit that gets fought over. It's the same delicious accident as Persian tahdig, Spanish socarrat and Nigerian bottom pot. Scrape it up and scatter it over the platter rather than leaving it behind.
What to drink with this
All drinks →Hand-picked pours to match this dish. Alcoholic pairings are for adults of legal drinking age (21+ in the US) — please drink responsibly.
Pan-Indian (the everyday tea of the subcontinent) · Indian
Masala Chai (Spiced Indian Tea)
India's daily ritual in a cup: black tea brewed with milk, sugar and freshly crushed spices. The proper stovetop method, plus how to build your own masala.
Mexico (agua fresca tradition) · Mexican
Agua de Jamaica (Hibiscus Iced Tea)
Mexico's ruby-red hibiscus cooler: dried jamaica flowers steeped, sweetened and chilled into a tart, refreshing agua fresca. The right steep, how to control the tartness, and why it's so good for you.
21+ Florence, Italy (Tuscan aperitivo tradition) · Italian
Negroni (The Perfect Three-Part Aperitivo)
Equal parts gin, Campari and sweet vermouth, stirred over ice with an orange peel. Italy's great bitter aperitivo — the easiest world-class cocktail to remember and one of the hardest to improve on.
From our kitchen community
Ratings & Reviews
My Rating
Tap a star to rate — no sign-in, no form needed.
My Review
0 Ratings
🥣 0 home cooks made it!
Be the first to rate Thieboudienne (Ceebu Jën) — Senegalese Fish and Broken Rice.