Hor Mok Pla (Thai Steamed Fish Curry)
The dish in context
Hor mok pla is a central Thai steamed curry custard built from fish, coconut milk, egg, and red curry paste, traditionally steamed in banana-leaf cups or wrapped parcels. Thai academic and public-health sources repeatedly identify snakehead fish with noni leaves (ใบยอ) as the older household-standard pairing, while modern versions often use sea bass, Spanish mackerel, basil, cabbage, or a mix of greens. The defining technique is not the container; it is the long stirring that turns fish protein, coconut fat, egg, and curry paste into a sticky emulsion before steaming. Without that thickened base, the dish separates into curds and liquid curry.
Method 10 steps · 90 min
Make the banana-leaf cups
Soften banana leaves over a low flame or in hot water until pliable. Cut circles or squares and fold into 12 small cups, pinning the corners with toothpicks or staples kept above the food line. If using ramekins, line each with a leaf square.
Prepare the greens
Blanch noni leaves for 20 seconds, shock in cold water, squeeze dry, and cut into rough pieces. Divide the greens across the cups. If using cabbage, wilt it briefly and squeeze until no water drips when pressed.
Season the curry base
Whisk red curry paste with 300 ml coconut milk until smooth. Add eggs, fish sauce, palm sugar, and 80 ml coconut cream, then whisk until the sugar dissolves.
Work the fish into a sticky emulsion
Add the sliced fish and stir hard in one direction for 12-15 minutes, adding the remaining 200 ml coconut milk in 3 additions. Stop only when the mixture thickens, turns glossy, and a spoon dragged through it leaves a slow-closing channel.
Fold in aromatics
Fold in half of the sliced makrut lime leaf and the optional Thai basil. Keep the motion broad and brief; the base is already built.
Fill the cups
Spoon the fish mixture over the greens, filling each cup about 80 percent full. Press down lightly so no large air pockets remain, but do not pack it flat.
Steam until set
Bring the steamer to a steady boil, then reduce to medium-high. Steam the cups for 15-18 minutes, until the surface is puffed, matte at the edges, and the center trembles as one piece rather than sloshing.
Thicken the coconut topping
While the cups steam, whisk 100 ml coconut cream with rice flour and salt in a small saucepan. Cook over low heat, stirring, until it thickens enough to coat the spoon in a white layer, 2-3 minutes.
Top and finish
Spoon a small stripe or puddle of thick coconut cream onto each cup. Scatter with the remaining makrut lime leaf and red chili strips, then steam 2 minutes more to set the topping.
Rest before serving
Rest the cups 5 minutes before serving with jasmine rice. The custard should release a little orange oil at the edge but should not weep watery liquid.
Common mistakes
- {'mistake': 'Skipping the long stirring.', 'why_it_fails': 'The mixture will look combined while raw but separate during steaming. Hor mok needs a sticky fish-protein emulsion, not a stirred curry sauce.'}
- {'mistake': 'Using low-fat coconut milk.', 'why_it_fails': 'The fat phase is part of the custard structure. Low-fat coconut milk gives a thin set and watery edges.'}
- {'mistake': 'Adding wet greens to the cups.', 'why_it_fails': 'The trapped water rises into the mousse and makes the bottom layer loose.'}
- {'mistake': 'Steaming over violent heat.', 'why_it_fails': 'Hard steam overcooks the edges before the center sets and leaves a pocked, rubbery surface.'}
- {'mistake': 'Treating hor mok as a sweet curry.', 'why_it_fails': 'A little palm sugar rounds coconut and chile. Obvious sweetness flattens the fish and turns the dish toward dessert-custard logic.'}
What does not belong
- {'item': 'cheese', 'reason': 'Cheese does not belong in hor mok pla. It breaks the coconut-curry emulsion and replaces the clean fish-and-herb profile with dairy salt.'}
- {'item': 'cream or evaporated milk', 'reason': 'Dairy does not belong here. Coconut milk is structural and aromatic, not a generic creamy liquid.'}
- {'item': 'curry powder', 'reason': 'Curry powder does not replace Thai red curry paste. Hor mok needs pounded fresh aromatics and chile paste, not dry colonial curry seasoning.'}
- {'item': 'lemon juice or lime juice', 'reason': 'Sourness is not part of the central hor mok structure. Acid tightens the fish protein and makes the custard grainy.'}
- {'item': 'flour-thickened white sauce', 'reason': 'Wheat roux has no role in this dish. The set comes from fish protein and egg; the topping uses a small amount of rice flour only.'}