Worked out from this recipe's ingredients. If you're cooking for an allergy, always read the full ingredient list.
A silky, golden Kerala-style coconut milk curry with chunks of firm white fish poached until they just flake, perfumed with curry leaves, ginger and green chili. A quick stir-fried cabbage thoran with toasted mustard seeds and shredded coconut sits alongside, so the whole plate stays rich, low-carb and satisfying without a grain in sight.
Ingredients
Fish and marinade
1.5 lb skinless firm white fish fillets (cod, halibut or mahi-mahi), cut into 2-inch pieces
1/2 tsp ground turmeric
1 tsp kosher salt
1 tbsp fresh lime juice
Coconut curry
3 tbsp coconut oil
20 fresh curry leaves
1 tsp black mustard seeds
3 shallots, thinly sliced
1.5 tbsp fresh ginger, cut into fine matchsticks
4 garlic cloves, thinly sliced
3 green chilies (serrano), slit lengthwise
3/4 tsp ground turmeric
3/4 tsp freshly cracked black pepper
1 medium tomato, cut into thin wedges
1 can (13.5 oz) full-fat unsweetened coconut milk
1/2 cup water
1 tsp kosher salt, plus more to taste
1 tbsp fresh lime juice
Cabbage thoran
2 tbsp coconut oil
1 tsp black mustard seeds
12 fresh curry leaves
1 green chili, minced
1 tbsp fresh ginger, minced
6 cups green cabbage, finely shredded (about 1 small head)
1/2 tsp ground turmeric
3/4 cup unsweetened shredded coconut
1 tsp kosher salt
1/4 cup fresh cilantro, chopped
Instructions
Toss the fish pieces with 1/2 teaspoon turmeric, 1 teaspoon salt and 1 tablespoon lime juice in a bowl. Cover and refrigerate for at least 15 minutes while you build the curry base.
Heat 3 tablespoons coconut oil in a wide 12-inch skillet or shallow braiser over medium heat. Add 1 teaspoon mustard seeds and cook 30-45 seconds until they pop, then add 20 curry leaves and stand back — they will crackle for about 10 seconds.
Add the sliced shallots, ginger matchsticks, sliced garlic and slit green chilies. Cook, stirring often, for 6-8 minutes until the shallots are soft and pale gold but not browned. Lower the heat if they start to color quickly.
Stir in 3/4 teaspoon turmeric and the cracked black pepper and fry for 30 seconds until fragrant. Add the tomato wedges and cook 2 minutes, just until they soften at the edges.
Pour in the coconut milk and water, add 1 teaspoon salt, and bring to a bare simmer over medium-low heat — small bubbles only, never a rolling boil, or the coconut milk will split. Simmer gently for 5 minutes to marry the flavors.
Slide the marinated fish into the sauce in a single layer, spooning some curry over the top. Cover and poach at a bare simmer for 6-8 minutes, until the fish flakes easily with a fork and reads 130-135°F at the center. Do not stir; instead swirl the pan to move the sauce around. Turn off the heat, stir in 1 tablespoon lime juice, and let it rest while you make the thoran.
For the thoran, heat 2 tablespoons coconut oil in a large skillet or wok over medium-high heat. Add 1 teaspoon mustard seeds and cook until they pop, about 30 seconds, then add 12 curry leaves, the minced green chili and minced ginger and stir for 20 seconds.
Add the shredded cabbage, turmeric and 1 teaspoon salt. Stir-fry over medium-high heat for 5-6 minutes, tossing frequently, until the cabbage is wilted but still has bite and a few edges are lightly browned.
Stir in the shredded coconut and cook 2 more minutes to toast it lightly and dry out the pan. Kill the heat and fold in the cilantro.
Taste the curry and adjust salt and lime. Serve the fish and plenty of sauce in shallow bowls with a mound of cabbage thoran alongside, spooning extra coconut sauce over the cabbage.
Chef's tips
Keep the coconut milk at a lazy simmer the whole time — hard boiling makes it grainy and dulls the color. If it does look tight, whisk in 2 tablespoons of warm water off the heat.
Fresh curry leaves are the soul of this dish; look for them in the refrigerated produce section of Indian or Asian markets and freeze the extras in a zip-top bag. Dried leaves are much weaker — use double the amount if that is all you can find.
Firm fish holds together best. If you only have delicate fillets like sole, cut them into larger pieces and shorten the poaching time to 4 minutes.
Leftovers reheat beautifully in a covered pan over low heat; the curry actually tastes better on day two, though the fish will be a little softer.
Nutrition (per serving, estimated)
620calories
36gprotein
19gcarbs
45gfat
Estimates only — values vary with brands and portions.
Made with Sprig
Kerala Coconut Fish Curry with Cabbage Thoran was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.