Sayadiya is a beloved coastal Egyptian dish that pairs flaky white fish with deeply browned onions and aromatic rice. This version showcases tender Nile perch fillets nestled into a saffron-kissed rice pilaf enriched with fish stock and warm Levant spices. The slow-caramelized onions lend a sweet, almost jammy depth that defines the dish.
Prep Time25 mins
Cook Time55 mins
Total Time80 mins
Servings4
Yield4 servings
Nutrition Facts
Per serving (estimated)
- 615 kcalCalories
- 24 gFat
- 3.5 gSaturated Fat
- 68 gCarbs
- 5 gFiber
- 9 gSugar
- 34 gProtein
- 820 mgSodium
- 780 mgPotassium
- 95 mgCalcium
- 4.2 mgIron
- 14 mgVitamin C
- 85 mcgVitamin A
Ingredients
For the fish and stock
- 1 lb Nile perch bones and head (for stock)
- 4 Nile perch fillets (6 oz / 170 g each), skin on
- 1 1/2 tsp ground cumin
- 1 tsp ground coriander
- 1/2 tsp ground turmeric
- 1/2 tsp freshly ground black pepper
- 1 tsp kosher salt
- 3 tbsp olive oil
- 1 lemon, juiced
- 1 dried black lime (loomi), cracked
For the caramelized onion rice
- 3 large yellow onions, halved and thinly sliced
- 4 tbsp vegetable oil
- 2 bay leaves
- 5 green cardamom pods, lightly crushed
- 1 cinnamon stick
- 1/2 tsp ground turmeric
- Pinch of saffron threads (about 1/8 tsp)
- 2 cups basmati rice, rinsed and soaked 30 minutes
- 4 cups prepared fish stock
- 1 1/4 tsp kosher salt
For the garnish
- 1/3 cup pine nuts, toasted
- 1/4 cup slivered almonds, toasted
- 3 tbsp fresh flat-leaf parsley, chopped
- 2 tbsp golden raisins or dried barberries, plumped
- Lemon wedges, for serving
Directions
- Build the fish stock first: combine the Nile perch bones and head with 5 cups water, a halved onion, a bay leaf, and the cracked black lime in a pot. Simmer uncovered for 25 minutes, then strain and reserve 4 cups of broth.
- Pat the perch fillets dry and rub all over with cumin, coriander, turmeric, black pepper, salt, lemon juice, and 1 tablespoon of olive oil. Let them marinate at room temperature for 15 minutes.
- Meanwhile, begin the onions: heat the vegetable oil in a heavy Dutch oven over medium-low heat. Add the sliced onions and a pinch of salt and cook slowly, stirring every few minutes, for 25 to 30 minutes until they turn a deep mahogany brown. Increase heat slightly at the end if needed, but do not burn.
- Stir the cardamom, cinnamon stick, turmeric, and saffron into the caramelized onions and cook 30 seconds until fragrant. Drain the rice and add it to the pot, gently toasting for 1 to 2 minutes so each grain is coated in the spiced oil.
- Pour in the 4 cups of fish stock and add 1 1/4 teaspoons salt along with the bay leaves. Bring to a boil, reduce heat to the lowest setting, cover tightly, and cook 18 to 20 minutes without lifting the lid until the rice is tender and the liquid absorbed.
- While the rice cooks, sear the fish: heat the remaining 2 tablespoons olive oil in a skillet over medium-high heat. Place the fillets skin-side down and cook 4 minutes until the skin crisps, then flip gently and cook another 2 to 3 minutes until just opaque. Set aside.
- When the rice is done, remove the lid and discard the bay leaves and cinnamon stick. Use a spoon to make four wells in the rice and nestle a seared perch fillet into each well. Cover the pot off the heat for 5 minutes to let the fish finish gently in the steam.
- Plump the raisins or barberries in warm water for 5 minutes, then drain. Toast the pine nuts and almonds in a dry skillet over medium heat until golden and fragrant, watching carefully as they burn quickly.
- Fluff the rice with a fork, transfer to a wide platter, and arrange the perch fillets on top. Scatter the toasted nuts, plumped barberries, and fresh parsley over everything. Serve immediately with lemon wedges and a simple cucumber-yogurt salad on the side.
Cook’s Notes
- Patience is everything with the onions: low and slow caramelization is the soul of sayadiya, so resist the urge to crank up the heat or you'll get bitter, scorched onions instead of sweet mahogany depth.
- Nile perch is delicate, so sear the fillets only to a golden crust and finish them in the residual steam of the rice to keep the flesh silky and flaky rather than dry.
- If you cannot find dried loomi (black lime), substitute with 1 tablespoon of fresh lemon juice added to the fish stock for a similar citrusy brightness.
- For an even more authentic touch, rinse the cooked rice with a spoonful of the toasted pine nut oil from the skillet to add extra nuttiness to every grain.










