Bouillabaisse is a Provençal fish stew built on a saffron-and-fennel broth, finished with toasted bread and a garlicky mayonnaise called rouille. The trick is cooking the fish just until opaque while keeping the broth rich and deeply flavored from the initial sauté of aromatics and tomato.
Ingredients for Bouillabaisse
Olive oil and onion build the flavor base, while garlic and fennel add anise notes. Tomato paste brings umami and body. Saffron and dried thyme are the signature seasonings. Fish stock forms the broth, and white wine adds acidity and depth. A mix of firm white fish like halibut and cod, plus shrimp and mussels, gives texture variety. Salt, black pepper, orange zest, and a pinch of cayenne balance and brighten the bowl. The rouille needs mayonnaise, saffron, and garlic. Serve with toasted baguette slices.
Why This Bouillabaisse Works
The foundation matters more than the final ingredient list. When you sauté the onion, garlic, and fennel in olive oil until soft and fragrant, then stir in tomato paste and cook it for a minute, you build a base with real depth. The paste caramelizes slightly, adding color and concentrated tomato flavor that a raw tomato never could.
The broth simmers for 15 minutes with saffron, thyme, and orange zest before any fish goes in. This gives the flavors time to meld and the saffron time to steep and color the liquid. When you add the fish and shellfish in the last few minutes, they cook just until opaque and tender, so they stay delicate instead of turning rubbery.
Rouille, the garlicky mayonnaise stirred into each bowl, adds richness and ties the flavors together. Toasted baguette provides texture and gives you something to spread the rouille on, turning the soup into a more complete meal.
Mistakes To Avoid
Skipping the initial sauté and tomato paste step leaves the broth thin and one-note. The sauté builds flavor compounds that stock alone cannot provide, and without it the soup tastes like hot fish water instead of a rich, complex stew.
Adding the fish too early means it overcooks while the broth finishes cooking. Fish continues to firm up as it sits in hot liquid, so even 2 minutes past opaque turns it dry and chalky. Wait until the broth has simmered 15 minutes and is fully flavored before adding any seafood.
Underseasoning at the end is easy to do because the broth is subtle until salt and pepper balance it. Taste just before serving and add salt in small pinches until the flavors snap into focus. The soup should taste like the sea, not bland.
Overcrowding the pot with too much fish means pieces steam instead of simmering in broth, and they cook unevenly. Stick to the amounts given so the liquid stays at a simmer and the fish cooks gently all the way through.
As an Amazon Associate, we earn from qualifying purchases.
Ingredients
- 3 tablespoons olive oil
- 1 large onion, sliced thin
- 4 cloves garlic, minced
- 1 fennel bulb, sliced thin
- 3 tablespoons tomato paste
- 6 cups fish stock
- 1 cup dry white wine
- 1 teaspoon saffron threads
- 1 teaspoon dried thyme
- Zest of 1 orange
- 1 pound halibut fillet, cut into 2-inch pieces
- 1 pound cod fillet, cut into 2-inch pieces
- 1 pound large shrimp, peeled and deveined
- 1 pound mussels, cleaned and beards removed
- Salt and black pepper to taste
- Pinch of cayenne
- 1 cup mayonnaise
- 1 teaspoon saffron threads for rouille
- 2 cloves garlic, minced for rouille
- 1 baguette, sliced and toasted
Step-by-step Instructions
- Heat olive oil in a large heavy-bottomed pot over medium heat for 1 minute until shimmering.
- Add onion, garlic, and fennel, and cook for 8 to 10 minutes at medium heat, stirring often, until soft and beginning to brown at the edges.
- Stir in tomato paste and cook for 2 minutes at medium heat, stirring constantly, until the paste darkens and smells rich.
- Add fish stock and white wine, then bring to a boil over high heat, about 5 minutes.
- Add saffron threads, thyme, and orange zest to the pot, reduce heat to low, and simmer for 15 minutes uncovered until the broth is golden and fragrant.
- While the broth simmers, make the rouille: stir together mayonnaise, saffron threads, and minced garlic in a small bowl until combined.
- Add halibut and cod pieces to the pot, return to a gentle simmer over medium heat, and cook for 3 minutes.
- Add shrimp and mussels, and simmer for 2 to 3 minutes more until the shrimp are opaque throughout (check by cutting the thickest piece in half) and the mussels have opened, discarding any that stay closed.
- Taste the broth and add salt, black pepper, and cayenne as needed until the flavors are balanced and bright.
- Divide the soup among six bowls, top each with a spoonful of rouille, and serve with toasted baguette slices.
Frequently Asked Questions
Can I use frozen fish instead of fresh?
Yes, but thaw it completely in the refrigerator first and pat it dry before adding to the pot. Frozen fish releases water as it thaws, which can dilute the broth if not drained well.
Can bouillabaisse be made ahead?
Make the broth and rouille up to 1 day ahead and refrigerate separately. Add the fish and shellfish only when you are ready to serve, so they stay tender. Reheat the broth gently over medium-low heat before adding the seafood.
Does bouillabaisse freeze well?
The broth freezes well for up to 3 months, but do not freeze it with the cooked fish and shellfish inside, as they become mushy when thawed. Freeze the broth alone and cook fresh fish when you reheat it.
Serving Ideas for Bouillabaisse
Serve bouillabaisse with thick slices of toasted baguette brushed with garlic, which soak up the broth and carry the rouille. A crisp white wine like Sauvignon Blanc or Pinot Grigio cuts through the richness of the mayonnaise and complements the saffron and fennel. A simple green salad with lemon vinaigrette provides acidity and freshness after the rich soup.
