Doi Maach — Bengali Yogurt Fish Curry
Other Fast With Fish

Doi maach is the kind of dish that makes a fish day feel like a feast. Pieces of firm white fish are simmered in a sauce built on whisked yogurt, ginger, and warm garam masala until the gravy turns silky and faintly sweet against the tang. Bengali cooks traditionally use rohu or catla, but any sturdy fish that holds its shape works. Served over plain rice, it is rich, fragrant, and genuinely filling — the kind of meal that carries you through a long evening.

This is firmly a fish-day dish: it uses both fish and oil, so reserve it for days when vertebrate fish is permitted (Annunciation, Palm Sunday, and other fish-allowed feasts within fasting seasons). On stricter days, skip the notes for adapting it with shellfish or chickpeas below.

FASTING LEVEL: Fast With Fish (adaptable — see notes)
SERVINGS: 4
TIME: 40 minutes

INGREDIENTS

- 600g firm white fish (rohu, catfish, cod, or tilapia), cut into 4cm pieces
- 1 teaspoon ground turmeric
- 1 teaspoon salt, divided
- 3 tablespoons mustard or vegetable oil
- 2 bay leaves
- 4 green cardamom pods, lightly crushed
- 1 cinnamon stick
- 3 whole cloves
- 1 large onion, finely grated or puréed
- 1 tablespoon ginger paste
- 1 teaspoon ground cumin
- 1 teaspoon ground coriander
- 1/2 teaspoon Kashmiri chili powder
- 3/4 cup (180ml) thick plant-based yogurt (cashew or coconut), whisked smooth
- 1 cup (240ml) warm water
- 1 teaspoon sugar
- 1/2 teaspoon garam masala
- Steamed basmati rice, to serve

METHOD

1. Rub the fish pieces with the turmeric and half the salt. Let sit 10 minutes.

2. Heat 2 tablespoons of the oil in a wide pan over medium-high heat. Sear the fish pieces for about 1 minute per side, just until lightly golden — they do not need to cook through. Remove and set aside.

3. Add the remaining oil to the pan along with the bay leaves, cardamom, cinnamon, and cloves. Fry for 30 seconds until fragrant.

4. Add the grated onion and cook, stirring, for 6-8 minutes until soft and pale gold. Stir in the ginger paste, cumin, coriander, and chili powder and cook for another 2 minutes.

5. Lower the heat. Whisk the yogurt with the sugar, then stir it into the pan a spoonful at a time, stirring constantly so it does not split. Cook for 2 minutes until the sauce thickens and the oil begins to separate at the edges.

6. Pour in the warm water and the remaining salt. Bring to a gentle simmer, then slide in the fish pieces. Cover and cook for 8-10 minutes until the fish is cooked through and the gravy has reduced slightly.

7. Sprinkle over the garam masala, turn off the heat, and let rest 5 minutes. Serve over basmati rice.

NOTES

- Whisk the yogurt thoroughly and add it off the boil to keep it from curdling. A pinch of chickpea flour stirred into the yogurt also stabilizes it.
- On shellfish-permitted strict days, swap the fish for large shrimp (add in step 6 and cook just 4 minutes) — shrimp is allowed on any fasting day.
- Mustard oil gives the authentic Bengali pungency; heat it until it just smokes, then let it cool slightly before cooking to mellow the bite.
- For a no-fish protein version, replace the fish with seared firm tofu or cooked chickpeas and treat it as an oil-day dish.

NUTRITION (approximate per serving)
Calories: 360 | Protein: 33g | Carbs: 14g | Fat: 19g | Fiber: 2g | Iron: 3mg