Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 cups (380 g) long-grain white rice + 3 cups (710 ml) water + 1 tsp kosher salt
- 4 fish steaks (about 6 oz / 170 g each), 1 to 1 1/4 inches thick (grouper, snapper, halibut, or sea bass)
- 1/2 cup (120 ml) fresh lemon juice (about 3–4 lemons)
- 2 tbsp Dijon mustard
- 4 garlic cloves, finely grated
- 1 small hot chile (Scotch bonnet or habanero), seeded and minced
- 2 tsp kosher salt, divided; 1/2 tsp black pepper
- 4 large yellow onions (about 1 1/2 lb / 680 g), thinly sliced
- 3 tbsp neutral oil (peanut, canola, sunflower), divided
- 1/2 cup (120 ml) water or low-sodium fish/chicken stock
- 1/2 cup (75 g) pitted green olives (optional but classic)
- 1 bay leaf (optional) and/or 1 tsp fresh thyme leaves (optional)
Do This
- 1. Cook rice: simmer 2 cups rice with 3 cups water and 1 tsp salt for 15 minutes; rest 10 minutes.
- 2. Marinate fish 30 minutes: lemon juice + mustard + garlic + chile + 1 1/2 tsp salt + pepper.
- 3. Caramelize onions in 2 tbsp oil over medium heat, 20–25 minutes; season lightly.
- 4. Sear fish in 1 tbsp oil, 2–3 minutes per side; set aside.
- 5. Braise onions with reserved marinade + 1/2 cup water/stock; simmer 5 minutes, add olives.
- 6. Nestle fish into sauce; cover and gently simmer 6–8 minutes (to 145°F / 63°C).
- 7. Serve fish and tangy onion sauce over rice.
Why You’ll Love This Recipe
- Big flavor, simple method: a bright lemon-mustard marinade turns into the sauce.
- Weeknight-friendly: mostly hands-off once the onions start softening.
- Perfect balance: tangy, savory, a little spicy, and just sweet enough from caramelized onions.
- Great with pantry staples: lemons, mustard, onions, and rice do the heavy lifting.
Grocery List
- Produce: 3–4 lemons (for 1/2 cup juice), 4 large yellow onions, 4 garlic cloves, 1 small hot chile (Scotch bonnet/habanero), optional fresh thyme
- Dairy: unsalted butter (optional, 1 tbsp for richer onions)
- Pantry: long-grain white rice, Dijon mustard, neutral oil (peanut/canola/sunflower), kosher salt, black pepper, bay leaf (optional), green olives (optional), water or low-sodium stock
Full Ingredients
For the Rice
- 2 cups (380 g) long-grain white rice, rinsed until the water runs mostly clear
- 3 cups (710 ml) water
- 1 tsp kosher salt
- 1 tsp neutral oil (optional, helps keep grains separate)
For the Fish and Marinade
- 4 fish steaks (about 6 oz / 170 g each), 1 to 1 1/4 inches thick (grouper, snapper, halibut, sea bass, or other firm white fish)
- 1/2 cup (120 ml) fresh lemon juice (about 3–4 lemons)
- 2 tbsp Dijon mustard
- 4 garlic cloves, finely grated or minced
- 1 small hot chile (Scotch bonnet or habanero), seeded and finely minced (use 1/2 for milder heat)
- 1 1/2 tsp kosher salt (for the marinade)
- 1/2 tsp freshly ground black pepper
- 1 bay leaf (optional)
- 1 tsp fresh thyme leaves (optional) or 1/2 tsp dried thyme
For the Onion Yassa Sauce
- 4 large yellow onions (about 1 1/2 lb / 680 g), halved and thinly sliced
- 3 tbsp neutral oil (peanut, canola, sunflower), divided
- 1 tbsp unsalted butter (optional, for extra richness)
- 1/2 cup (120 ml) water or low-sodium fish stock or chicken stock
- 1/2 tsp kosher salt (for the onions), plus more to taste
- 1/2 cup (75 g) pitted green olives (optional but traditional), drained

Step-by-Step Instructions
Step 1: Start the rice
In a medium saucepan with a lid, combine the rinsed rice, 3 cups (710 ml) water, 1 tsp kosher salt, and (if using) 1 tsp neutral oil. Bring to a boil over high heat.
Once boiling, stir once, reduce heat to low, cover tightly, and simmer for 15 minutes. Turn off the heat and let the rice rest, covered, for 10 minutes. Fluff with a fork.
Step 2: Make the lemon-mustard marinade
In a medium bowl, whisk together the lemon juice, Dijon mustard, grated garlic, minced chile, 1 1/2 tsp kosher salt, black pepper, and (if using) bay leaf and thyme. This will smell punchy and sharp, which is exactly what you want for yassa.
Step 3: Marinate the fish
Pat the fish steaks dry with paper towels. Add them to a shallow dish (or a zip-top bag) and pour the marinade over the fish, turning to coat well.
Cover and marinate in the refrigerator for 30 minutes (or up to 1 hour for stronger flavor). If marinating longer than 30 minutes, turn the fish once halfway through for even seasoning.
When you’re ready to cook, remove the fish from the marinade and let excess drip back into the dish. Reserve the marinade (it becomes part of the sauce).
Step 4: Caramelize the onions
Heat a large, deep skillet or sauté pan (12-inch works well) over medium heat. Add 2 tbsp of the neutral oil and (if using) 1 tbsp butter.
Add the sliced onions and sprinkle with 1/2 tsp kosher salt. Cook, stirring every few minutes, until the onions are very soft and deep golden with some browned edges, 20–25 minutes.
If the onions start sticking or browning too fast, lower the heat slightly and splash in 1–2 tablespoons of water to loosen the browned bits (those add great flavor).
Step 5: Sear (or grill) the fish
Pan-sear method (recommended for home kitchens): Push the onions to the edges of the pan and add the remaining 1 tbsp oil to the center. Increase heat to medium-high. When the oil shimmers, lay in the fish steaks and sear for 2–3 minutes per side, just until lightly browned. Transfer fish to a plate.
Grill option: Preheat a grill to 450°F (232°C). Oil the grates well. Grill the marinated fish steaks for 3–4 minutes per side (timing depends on thickness), just until grill-marked and starting to turn opaque. You’ll finish cooking them in the sauce.
Step 6: Build the yassa sauce and braise
Reduce heat to medium. Stir the onions back into an even layer. Pour in the reserved marinade and the 1/2 cup (120 ml) water/stock. Scrape up any browned bits from the bottom of the pan.
Bring to a lively simmer and cook for 5 minutes, stirring occasionally, to mellow the sharpness and concentrate the flavor. Stir in the green olives (if using).
Nestle the fish steaks back into the onions and spoon some sauce over the top. Cover and simmer gently on low for 6–8 minutes, or until the fish reaches an internal temperature of 145°F (63°C) and flakes easily. (If using thinner steaks, start checking at 4–5 minutes.)
Step 7: Taste, adjust, and serve
Taste the sauce and adjust with additional salt if needed. If you want it tangier, add 1–2 tsp extra lemon juice right at the end (adding lemon off-heat keeps it bright). If it’s too tangy, simmer uncovered for 2–3 minutes and let the onions’ sweetness balance it out.
Serve a bed of rice topped with a generous spoonful of caramelized onions and sauce, then place a fish steak on top. Spoon more onions over the fish so every bite gets that signature yassa flavor.
Pro Tips
- Choose a firm fish: steaks or thick fillets that can handle searing and braising (grouper, snapper, halibut, sea bass). Delicate fish can break apart in the sauce.
- Don’t rush the onions: true yassa flavor comes from onions cooked until sweet and deeply golden. Keep heat at medium and be patient for the full 20–25 minutes.
- Control the heat level: Scotch bonnet/habanero is powerful. For mild heat, use 1/2 chile or substitute 1/2 tsp crushed red pepper.
- Prevent sticking when searing: dry the fish well and wait until the oil shimmers; the fish will release more easily once browned.
- Finish gently: once the fish goes back into the sauce, keep it at a gentle simmer to avoid overcooking and to keep the steaks intact.
Variations
- Poisson yassa with extra olives: increase to 1 cup (150 g) olives for a brinier, more savory sauce.
- Chicken yassa approach (same sauce): swap fish for 2 lb (900 g) bone-in chicken thighs; sear 5 minutes per side and braise covered 25–30 minutes, until chicken hits 175°F (79°C).
- Oven finish: after building the sauce, place fish and onions in a baking dish, cover, and bake at 375°F (190°C) for 10–12 minutes (until 145°F / 63°C).
Storage & Make-Ahead
Refrigerate: Store fish, onions, and sauce in an airtight container for up to 3 days. Store rice separately for best texture.
Reheat: Warm the onion sauce gently in a covered skillet over low heat with a splash of water. Add fish just long enough to heat through (overheating can dry it out). Rice reheats well with a tablespoon of water, covered, in the microwave.
Make-ahead: You can slice the onions and mix the marinade up to 1 day ahead. For best texture, cook the fish the day you plan to serve it, but the onion yassa sauce can be made 1 day ahead and gently reheated.
Nutrition (per serving)
Approximate, based on 4 servings including rice and olives: Calories: 640; Protein: 40 g; Carbohydrates: 68 g; Fat: 22 g; Fiber: 4 g; Sodium: 980 mg.
