This Rick Stein Indonesian fish curry recipe is a practical, home-cookable interpretation of Indonesian-style fish curry: firm white fish simmered in coconut milk with lemongrass, ginger, turmeric and tamarind. Its fragrant spice paste gives the sauce depth, while lime and tamarind keep the coconut rich rather than heavy; serve it hot with rice to catch every spoonful.
Ingredients
- 1½ lb (680 g) firm white fish fillets, such as cod, haddock, snapper or halibut, skin removed and cut into 1½-inch (4 cm) pieces
- 4 medium shallots, about 4 oz (120 g), peeled and roughly chopped
- 4 garlic cloves, peeled
- 1½ inches (4 cm) fresh ginger, about 1 oz (25 g), peeled and roughly chopped
- 2 lemongrass stalks, about 1 oz (30 g), tough outer leaves removed and tender centers sliced
- 1 small red chile, about ½ oz (15 g), stem removed; use half for a milder curry or remove the seeds
- 3 candlenuts, about ½ oz (15 g), or 1 tablespoon (15 g) unsalted macadamias or cashews
- 1 teaspoon (3 g) ground turmeric
- 2 teaspoons (4 g) ground coriander
- 1 teaspoon (2 g) ground cumin
- 2 tablespoons (30 ml) neutral oil, such as canola or sunflower oil
- 1 teaspoon (5 g) shrimp paste (belacan)
- 1 can (13½ oz/400 ml) unsweetened coconut milk, well shaken
- 1 cup (240 ml) fish stock or low-sodium chicken stock
- 4 Indonesian bay leaves (daun salam), if available; otherwise use 2 ordinary bay leaves
- 1 tablespoon (15 g) tamarind paste
- 1 teaspoon (4 g) light brown sugar
- ½ teaspoon (3 g) fine salt, plus more to taste
- 1 tablespoon (15 ml) fresh lime juice, plus lime wedges for serving
- ¼ cup (10 g) roughly chopped cilantro leaves, for serving
Instructions
- Prepare the fish and aromatics. Pat the fish dry and cut it into evenly sized pieces so it cooks at roughly the same rate. Remove any pin bones with clean tweezers. Trim the lemongrass down to its tender inner section; discard the dry, woody outer layers. Roughly chop the shallots, garlic, ginger and chile. If your candlenuts are whole, break them into smaller pieces to help the blender process them.
- Blend the spice paste. Put the shallots, garlic, ginger, lemongrass, chile, candlenuts, turmeric, coriander and cumin in a small food processor or blender. Add 2 tablespoons (30 ml) water and process until mostly smooth, stopping to scrape down the sides as needed. A little texture is fine, but break up any large pieces of lemongrass so they do not make the finished sauce stringy. If the mixture will not move, add another teaspoon of water rather than a large splash.
- Cook the paste slowly. Warm the oil in a wide, heavy saucepan or deep skillet over medium heat. Add the spice paste and shrimp paste, then stir for 7–8 minutes. Keep it moving and lower the heat if it catches; the paste should become fragrant and a shade darker without browning hard. This step softens the raw allium and lemongrass flavors and builds the base of the curry. If using a substitute for shrimp paste, stir it in with the liquids in the next step instead.
- Make the sauce. Pour in the coconut milk and stock, then add the bay leaves, tamarind paste, brown sugar and salt. Stir well, scraping the bottom of the pan to loosen any paste. Bring the sauce just to a gentle simmer, then cook uncovered for 10 minutes, stirring occasionally. Avoid a vigorous boil, which can make a coconut-based sauce look oily and can reduce it more quickly than intended. Taste a small spoonful: it should be savory, gently tart and rounded, not sharply sour.
- Simmer the fish. Lower the heat so the sauce barely bubbles. Slide in the fish pieces in one layer where possible, spoon sauce over them, and cook gently for about 8–12 minutes, turning each piece once if needed. The exact time depends on the thickness and type of fish, so begin checking the thickest piece after 8 minutes. Check it with a food thermometer; USDA FSIS lists 145°F (63°C) as the safe minimum internal temperature for fish. The flesh should also look opaque and separate easily into flakes, but use the thermometer rather than appearance alone to confirm doneness.
- Finish and serve. Turn off the heat and carefully stir in the lime juice without breaking up the fish. Remove the bay leaves, taste the sauce and adjust with a pinch more salt, lime or brown sugar if needed. Scatter with cilantro and serve at once with lime wedges. Spoon the curry gently rather than stirring it vigorously; tender cooked fish can break apart easily.
Tips
- Choose fish that holds together. Cod, snapper, haddock and halibut are useful options, but thickness matters more than the name of the fish. Cut a thick fillet into similarly sized pieces and keep thinner pieces slightly larger so they do not overcook. Avoid stirring repeatedly once the fish goes into the sauce.
- Use the right substitute for hard-to-find ingredients. Indonesian bay leaves, or daun salam, have a gentler, different aroma from Mediterranean bay. Ordinary bay leaves work in a pinch, but leave a more familiar herbal note. Candlenuts thicken the paste; macadamias or cashews are practical substitutes and make it a little nuttier. Shrimp paste adds a distinctive savory depth. If unavailable, use 1 teaspoon (5 ml) fish sauce, added with the liquids; the result will be less rounded and may need less salt. Check labels for shellfish if serving anyone with an allergy.
- Adjust the heat and sourness at the end. Chile strength varies, so start with half a chile if you are unsure. Tamarind pastes also differ in concentration. Add the listed amount first, then balance the sauce after simmering with lime for brightness, a small pinch of sugar for sharpness, or salt for a fuller flavor. Do not add extra tamarind automatically; too much can mask the fish.
- Keep the coconut sauce at a gentle simmer. A hard boil can cause the coconut milk to separate and makes delicate fish more likely to break up. If the paste sticks while frying, lower the heat and stir; a teaspoon of water can loosen it. If the finished sauce seems too thick, add stock a tablespoon at a time rather than diluting it all at once.
Serving Suggestions
Serve the curry in a warm shallow bowl with steamed jasmine rice or another plain long-grain rice. The mild rice gives the coconut, lemongrass and tamarind sauce room to stand out, and it is useful for soaking up the liquid. For a fuller meal, add a simple side of cucumber, sliced shallot and herbs dressed with lime, or serve lightly steamed green beans or leafy greens alongside. Keep accompaniments fairly plain: a strongly spiced side can compete with the aromatic curry.
Offer extra lime wedges at the table so each person can adjust the acidity in their own portion. If you like more heat, serve sliced fresh chile separately instead of increasing the chile in the pot; that way the main curry stays balanced for everyone. A small dish of crisp fried shallots can add texture, but it is optional rather than necessary.
Variations
Make it milder: Leave out the chile or use just a small piece with the seeds removed. The curry will still have fragrance from the ginger, lemongrass and ground spices. To add heat at the table, put sliced chile or sambal on the side rather than making the whole batch hot.
Use another seafood option: Thick salmon pieces can replace white fish, though their richer flavor changes the character of the curry. Add peeled raw prawns during the final few minutes and cook them until opaque and fully done; do not simmer them for the entire sauce-cooking time. If mixing seafood, add the pieces according to how quickly each type cooks and check the thickest portions with a thermometer.
Make it without shrimp paste: Omit the shrimp paste and use the fish sauce substitution in the tips, or leave both out for a less savory, shellfish-free version. Taste before adding extra salt. This recipe contains fish, so it is not vegetarian; for a plant-based curry, replace the fish and stock with firm tofu and vegetable stock, and omit both shrimp paste and fish sauce. That is a different variation and will have a lighter savory flavor.
Change the consistency: For a more concentrated sauce, simmer the coconut mixture for a few extra minutes before adding the fish. For a looser curry, add a little more stock. Make these adjustments before cooking the fish so it does not spend extra time in the pan and turn dry.
Storage and Reheating
Let leftovers stop steaming, then transfer them to a shallow, covered container and refrigerate within 2 hours of cooking. Keep the curry refrigerated for 3–4 days. Fish becomes more delicate with each reheating, so store the sauce and fish together but handle the portions gently. For the best texture, avoid repeatedly warming and cooling the same batch; portion it before storing if you expect to eat it over more than one meal.
Reheat only the amount you plan to eat, in a covered saucepan over low heat, stirring the sauce carefully around the fish. Add a splash of water or stock if the coconut sauce has thickened. Heat leftovers to 165°F (74°C), checking with a food thermometer, and do not let the sauce boil hard. You can also microwave a portion in a covered, microwave-safe dish, pausing to stir the sauce and checking the temperature in more than one place. Discard any portion left at room temperature for more than 2 hours.
Freezing is possible for up to 2 months, although thawed fish may be softer and the coconut sauce can separate slightly. Cool and freeze promptly in a freezer-safe container, then thaw overnight in the refrigerator. Reheat gently to 165°F (74°C), stirring the sauce back together as much as possible. Do not refreeze a portion after it has been thawed and reheated.
Frequently Asked Questions
Is this the exact published Rick Stein recipe?
This is a practical interpretation of Indonesian-style fish curry, not a claim to reproduce a particular published recipe word for word. Indonesian curries vary by region and household, including in their spice pastes, souring ingredients and choice of fish. The method here focuses on a coconut sauce with lemongrass, ginger, tamarind and gently cooked fish.
What fish is best for Indonesian fish curry?
Choose a firm fish that can be cut into thick pieces, such as cod, haddock, snapper or halibut. Fresh or properly thawed frozen fillets can both work. Very thin fillets are more likely to break apart, while a very thick piece may need longer; cut the fish evenly and use a thermometer to confirm that its center reaches 145°F (63°C).
Can I make the curry sauce ahead?
Yes. Prepare the spice paste and cook the sauce through the simmering step, then cool and refrigerate it promptly. When ready to eat, bring the sauce to a gentle simmer and add the fish fresh, cooking it until it reaches the safe internal temperature. This keeps the fish from sitting in the sauce and overcooking during reheating.
Why does my coconut curry look split?
A sauce can look oily if it has boiled hard or reduced quickly. Lower the heat and stir gently; a small splash of warm stock or water may help bring the sauce together. It can still taste good if it has separated, but avoid vigorous boiling from the start and add the fish only after the sauce has reached a steady, gentle simmer.
Can I use light coconut milk?
You can, but the sauce will be thinner and less rich. Simmer it briefly before adding the fish to reduce it slightly, taking care not to boil it hard. If the curry tastes less rounded, adjust the salt and lime gradually. Do not simmer the fish for extra time to compensate for a thin sauce.
How do I know when the fish is done?
Check the thickest piece with a food thermometer and cook it to 145°F (63°C), the USDA FSIS safe minimum for fish. The flesh should be opaque and flake easily, but flaking alone can be misleading, especially with thick pieces. If it has not reached temperature, continue cooking gently and check again after a short interval.
Related
- Sri Lankan Black Pork Curry: Deep, Toasted Spice
- Belfast Chinese Curry Sauce Recipe for Chips and Rice
- Ayam Malaysian Rendang Curry Paste Recipe
More recipes to cook
Safety notes: safe minimum internal temperatures from USDA FSIS; raw and undercooked fish guidance from the U.S. FDA. Food safety notes
Spotted an error? Tell us and we will correct it (corrections policy).