Inspired by the warm, bold flavors of traditional Moroccan tagine, this hearty fish soup blends tender white fish with tomatoes, saffron, preserved lemon, and North African spices. It’s a soul-soothing, fragrant dish perfect as a main course or elegant starter, served with crusty bread or couscous.
Heat the olive oil in a large Dutch oven or soup pot over medium heat.
Add chopped onion and sauté for 5–7 minutes until soft and translucent.
Stir in garlic, cumin, cinnamon, coriander, turmeric, and cayenne. Sauté for 1–2 minutes until fragrant.
Stir in the tomato paste and cook for 1 minute.
Add the crushed tomatoes and cook for another 2–3 minutes.
Pour in the fish stock (or vegetable broth), then add the saffron-infused water.
Stir in preserved lemon (or lemon zest), half the parsley and cilantro, and bring to a simmer.
Simmer uncovered for 15–20 minutes, allowing flavors to meld and the soup to reduce slightly.
Gently add fish chunks to the simmering broth.
Reduce heat to low, cover, and simmer for 8–10 minutes, or until fish is just cooked through and flakes easily.
Stir in chickpeas or olives if using, and simmer for an additional 2–3 minutes.
Taste and adjust seasoning with salt, black pepper, and lemon juice if needed.
Ladle the soup into warm bowls.
Garnish with remaining chopped parsley and cilantro.
Serve with warm flatbread, couscous, or crusty bread on the side.
For extra flair, add a lemon wedge or a drizzle of olive oil.
Make it a Stew: Reduce the broth and add cubed potatoes or carrots for a heartier consistency.
Use Shrimp or Mussels: Swap or mix the fish with shrimp or shellfish for variety.
Preserved Lemon Note: Adds authentic briny tang. If unavailable, use lemon zest and juice for brightness.
Vegan Version: Use tofu or chickpeas instead of fish, and vegetable broth.
4 servings