
Moroccan Harissa Grilled Fish Panini
A North African-inspired panini featuring pan-seared white fish coated in harissa, layered with fresh cilantro, preserved lemon, and ripe tomato on toasted ciabatta bread. The crispy exterior gives way to tender, spiced fish with bright, briny notes—a sophisticated handheld meal that brings Moroccan street food energy to the sandwich.
Steps
Before you start
- Pat fish dry with paper towels to ensure a good sear
- Have all ingredients prepped and within arm's reach—panini cook quickly
- Preheat your panini press or skillet if using the skillet method
Season fish with harissa
- In a small bowl, mix harissa paste with 1 tablespoon (15 ml) of olive oil until smooth.
- Pat fish dry and season with a pinch of salt and pepper.
- Spread the harissa mixture evenly on both sides of the fish fillets, coating well.
+ Show details− Hide details
Tip: Don't skip drying the fish—moisture prevents a proper sear and harissa crust.
Sear fish until cooked through
- Heat a 12-inch (30 cm) skillet over medium-high heat until shimmering.
- Carefully lay the harissa-coated fish fillets into the pan and sear for 4–5 minutes on the first side without moving them, allowing a golden crust to form.
- Gently flip and sear the other side for 3–4 minutes until the flesh is opaque and flakes easily with a fork.
- Transfer to a plate.
+ Show details− Hide details
Ready when: Fish is opaque throughout and flakes easily when pressed with a fork; internal temperature reaches 145°F (63°C)
Tip: Resist the urge to move the fish early; let it develop a crust before flipping.
Toast and assemble panini
- Lightly brush both cut sides of the ciabatta rolls with olive oil.
- Place rolls cut-side down on the same skillet over medium heat and toast for 1–2 minutes until golden and crispy.
- Remove to a clean cutting board.
- On the bottom half of each roll, layer: a few cilantro leaves, half the minced preserved lemon, tomato slices (sprinkle lightly with salt), and one portion of the cooked fish.
- Top with remaining cilantro and the top half of the roll.
+ Show details− Hide details
Ready when: Bread is golden and crispy with a toasty aroma
Tip: Layer the tomato last to keep bread from absorbing excess moisture and getting soggy.
Press and serve
- If using a panini press, place assembled sandwiches inside and press for 1–2 minutes until the bread is compressed and heated through.
- If using a skillet, place panini on the same skillet over medium heat, top with a light weight (a smaller skillet, baking sheet, or cast iron), and cook for 1–2 minutes per side until warmed and crust is firm.
- Slice diagonally if desired and serve immediately.
+ Show details− Hide details
Ready when: Bread is warm, slightly compressed, and exterior is golden and crispy
Tip: Don't over-press or the bread will become dense; a gentle press just melds the layers.
Good to know
Tips
- Harissa heat varies by brand—taste a small dab first. If you prefer mild spice, reduce harissa to 1 tablespoon (15 g) and add a squeeze of lemon juice to the mixture.
- Slice the tomato just before assembling to keep the bread from getting waterlogged; remove seeds and excess liquid if the tomato is very juicy.
- For extra flavor, brush the inside of the toasted bread with a tiny dab of harissa mixed with mayonnaise before layering.
- Make sure your panini press or skillet is hot before pressing—this ensures crispy bread and melded layers without sogginess.
Storage & reheating
Best eaten fresh. Leftover cooked fish can be refrigerated for up to 2 days in an airtight container and reheated gently in a skillet before reassembling into bread, but the sandwich is not recommended for storage since bread becomes soggy.
Substitutions
- white fish fillets (halibut, sea bass, or cod), 6 oz (170 g) total → Mahi-mahi or grouper fillets. Any firm white fish works well; adjust sear time if fillets are thicker than ½ inch (1.3 cm).
- harissa paste → 2 teaspoons (10 g) harissa powder mixed with 1 teaspoon (5 ml) olive oil. If harissa paste is unavailable, reconstitute the powder to create a spreadable paste.
- preserved lemon, rinsed → Finely grated zest and juice of ½ fresh lemon mixed with a pinch of salt. Fresh lemon is brighter and less funky than preserved; this is a good shortcut if preserved lemon isn't on hand.
- ciabatta rolls (4 oz / 115 g each) → Sourdough rolls or naan bread. Choose bread sturdy enough to hold the fillings without falling apart; avoid soft white bread.
More paninis
See all →Find more like this
- Meal
- Lunch
- Cuisine
- Moroccan
- Main ingredient
- Cod
- Method
- Grill & BBQ





