Chiang Mai Steamed Fish Supper
A focused Thai supper built around delicate steamed fish custards (hor mok) — gently spiced red-curry and coconut custards set by steam, served with perfectly steamed jasmine rice and a bright, crisp cucumber salad for contrast; simple technique, layered Thai flavours, and easy leftovers.
1. FINAL MENU
- Cuisine: Thai
- Serve time: 17:00
A composed, small-plate Thai supper that rewards attention with concentrated flavors: silky red-curry fish custards steamed until just set, fragrant jasmine rice, and a quick vinegary cucumber salad to cut the richness — easy to execute in one hour for four, with straightforward shopping and planned leftovers.
- Steamed Thai Fish Custards (Hor Mok Pla)
- Jasmine rice
- Thai cucumber salad
2. FULLY EXECUTABLE RECIPES
Steamed Thai Fish Custards (Hor Mok Pla)
Equipment
- 4 × 6-oz (approx) ramekins (or 4 small heatproof bowls, ~6–8 oz capacity)
- 10–12" wide pot with tight-fitting lid and a metal steamer rack or a large deep skillet with lid and a wire rack
- Blender or food processor (or sharp knife + fork and a bowl)
- Medium mixing bowl, whisk, spatula
- Measuring cups and spoons
- Kitchen thermometer (recommended)
Ingredients (4 servings)
- White fish fillets, skinless and boneless — 1.5 lb (24 oz) (cod, haddock, pollock, or tilapia)
- Full-fat canned coconut milk — 1 1/2 cups (12 fl oz)
- Red curry paste (store-bought) — 3 tablespoons
- Large eggs — 3
- Fish sauce — 2 tablespoons
- Light brown sugar or palm sugar — 1 tablespoon
- Kaffir lime leaves, finely shredded — 6 leaves
- Substitution: if fresh kaffir lime leaves are unavailable, use 1 teaspoon lime zest + 1 tablespoon lime juice (add the juice at the blending step).
- Thai basil leaves — 8 leaves (for garnish; can substitute regular basil or cilantro if not available)
- Neutral oil (vegetable or canola) — 1 tablespoon (for brushing banana leaf or ramekin)
- Salt — 1 teaspoon
- Water — as needed for steaming
Practical substitutions (seasonal / inconsistent stock)
- Banana leaves (traditional lining) are optional. If unavailable, line ramekins with parchment or lightly oil ramekins and cover with foil. (Instructions below assume ramekins; banana-leaf option included.)
Cooking / Baking
- Steam: 15 minutes (approximately) in a covered steamer over simmering water. Custard is done when set and a thermometer in the center reaches 165°F.
- Total cook time: 27 minutes (approx: 12 minutes active prep + 15 minutes steaming)
Instructions
- Prepare equipment and water: add 1–1.5" water to the bottom of the pot, place steamer rack, and bring water to a simmer (do not start steaming yet).
- Cut fish into 1" pieces and reserve a couple of teaspoons of finely chopped fish for texture if desired.
- In blender or food processor (or a bowl if mashing by hand), combine fish chunks, 1 cup coconut milk (reserve remaining 1/2 cup for later), red curry paste (3 tbsp), eggs (3), fish sauce (2 tbsp), brown/palm sugar (1 tbsp), shredded kaffir lime leaves (or substitution), salt (1 tsp). Pulse/blend briefly to make a coarse purée — a slightly textured mixture is fine; do not over-blend to a smooth paste.
- Stir in remaining 1/2 cup coconut milk by hand to loosen the mixture to a spoonable custard consistency.
- Prepare ramekins: brush inside of each ramekin with a thin film of neutral oil. If using banana leaves, brush leaves with oil, line ramekin with folded banana leaf, and press to fit; otherwise proceed with oiled ramekins. Place 1–2 basil leaves in the bottom of each ramekin for aroma.
- Divide mixture evenly among 4 ramekins (about 6 oz mixture each). Smooth tops. Cover each ramekin tightly with a small square of foil (or a banana-leaf lid if using).
- Place ramekins on the steamer rack with simmering water below (water should not touch ramekins). Cover pot and steam over a gentle simmer for 15 minutes. Maintain a steady simmer (not a full boil).
- Check doneness: insert a small knife or thermometer into the center — custard should be set (knife comes out mostly clean) and thermometer should read about 165°F. If not set, steam 2–3 minutes more.
- Remove ramekins carefully and keep covered (they can be held for up to 15 minutes covered). Garnish with torn Thai basil leaves just before serving.
Jasmine rice
Equipment
- Fine-mesh sieve
- 3-quart saucepan with tight-fitting lid
- Measuring cups and spoons
- Fork for fluffing
Ingredients (4 servings)
- Jasmine rice, uncooked — 2 cups
- Water — 3 cups
- Salt — 1/2 teaspoon
Cooking / Baking
- Bring to boil then simmer covered: 5–7 minutes to boil, 15 minutes simmer, then 10 minutes covered rest. Total cook time: 30 minutes.
Instructions
- Rinse rice in a fine-mesh sieve under cold running water until runoff is mostly clear (about 30–45 seconds).
- Combine rinsed rice, 3 cups water, and 1/2 tsp salt in the 3-quart saucepan.
- Place saucepan uncovered over high heat and bring to a full boil (approx 5 minutes).
- As soon as it reaches a steady boil with visible bubbles, reduce heat to low, cover tightly, and simmer for 15 minutes (do not lift lid).
- Remove pan from heat and keep covered for 10 minutes to steam and finish cooking.
- Uncover and fluff gently with a fork; keep covered until plating.
Thai cucumber salad
Equipment
- Cutting board and chef's knife
- Medium mixing bowl
- Small bowl and fork or small whisk
Ingredients (4 servings)
- Persian cucumbers (or 2 large English cucumbers) — 3 medium (about 12–14 oz total)
- Small red onion or shallot — 1 small (about 2 oz), thinly sliced
- Rice vinegar — 2 tablespoons
- Fish sauce — 1 1/2 tablespoons
- Granulated sugar — 1 tablespoon
- Fresh lime juice — 2 tablespoons (about 1 lime)
- Crushed red pepper flakes — 1/4 teaspoon (sets shared base to medium heat)
- Fresh cilantro, chopped — 2 tablespoons (for garnish)
- Salt — 1/8 teaspoon
Cooking / Baking
- Total prep time: 7–10 minutes. No cooking.
Instructions
- Slice cucumbers into 1/4" rounds (or half-moons if large) and place in medium bowl. Add thinly sliced red onion/shallot.
- In small bowl combine rice vinegar (2 tbsp), fish sauce (1 1/2 tbsp), sugar (1 tbsp), lime juice (2 tbsp), crushed red pepper flakes (1/4 tsp) and 1/8 tsp salt. Whisk until sugar dissolves.
- Pour dressing over cucumbers and onions, toss to combine. Let sit 2–3 minutes for flavors to marry; do not dress more than 10 minutes before serving (the salad should be bright and crisp).
- Toss again, garnish with chopped cilantro (2 tbsp) and transfer to serving bowl; serve immediately.
3. LINEAR TIMELINE (16:18–17:00)
- 16:18: Steamed Thai Fish Custards (Hor Mok Pla) — Gather equipment, measure ingredients, and cut fish into 1" pieces.
- 16:22: Steamed Thai Fish Custards — In blender or bowl, combine fish, 1 cup coconut milk, red curry paste (3 tbsp), eggs (3), fish sauce (2 tbsp), sugar (1 tbsp), shredded kaffir leaves (or substitution); pulse/blend to a coarse purée.
- 16:26: Steamed Thai Fish Custards — Stir in remaining 1/2 cup coconut milk by hand; oil ramekins or line with banana leaf, place a basil leaf in each, divide mixture among 4 ramekins and cover each with foil.
- 16:30: Jasmine rice — Rinse 2 cups jasmine rice in sieve and put rice, 3 cups water and 1/2 tsp salt into 3-qt saucepan; set pot on high to bring to a boil.
- 16:30: Steamed Thai Fish Custards — Place steamer rack in simmering pot, arrange ramekins on rack, cover pot tightly and start steaming (steam target 15 minutes).
- 16:35: Jasmine rice — As soon as rice pot reaches a steady boil (about 5 minutes), reduce heat to low, cover tightly and simmer for 15 minutes (do not lift lid).
- 16:45: Steamed Thai Fish Custards — Open steamer carefully and check custards for set; thermometer should read ~165°F. If set, remove ramekins and keep covered; if not, steam 2–3 minutes more. (Custards will hold covered up to ~15 minutes.)
- 16:50: Jasmine rice — After 15 minutes simmer, remove rice pot from heat and keep covered to rest 10 minutes.
- 16:50: Thai cucumber salad — Start salad prep: thinly slice cucumbers and shallot/shallot, place in medium bowl.
- 16:56: Thai cucumber salad — Whisk rice vinegar (2 tbsp), fish sauce (1 1/2 tbsp), sugar (1 tbsp), lime juice (2 tbsp), crushed red pepper (1/4 tsp) and 1/8 tsp salt; pour dressing over cucumbers, toss lightly and let sit.
- 16:58: Steamed Thai Fish Custards — Garnish custards with torn Thai basil leaves (place basil on top now); keep ramekins covered ready to plate.
- 16:59: Jasmine rice — Uncover rice, fluff gently with a fork and keep covered briefly for plating.
- 17:00: Final assembly & serve — Plate: scoop jasmine rice, place one hor mok ramekin per person on plate or small bowl, share cucumber salad to the side, and serve exactly at 17:00.
4. CONSOLIDATED SHOPPING LIST
Produce
- Kaffir lime leaves — 6 leaves
- Thai basil — 1 small bunch (pick ~8 leaves)
- Persian cucumbers (or English cucumbers) — 3 medium (about 12–14 oz)
- Small red onion or shallot — 1 small (about 2 oz)
- Fresh cilantro — 1 small bunch (you will use ~2 tbsp chopped)
- Limes — 1 large (for 2 tbsp fresh lime juice)
Meat / Seafood
- White fish fillets, skinless & boneless (cod, haddock, pollock, or tilapia) — 1.5 lb (24 oz)
Dairy
- Large eggs — 3
Dry Goods / Pantry
- Full-fat canned coconut milk — 1 1/2 cups (12 fl oz) (buy one 13.5 fl oz can)
- Jasmine rice, uncooked — 2 cups
- Red curry paste (store-bought) — 3 tablespoons
- Fish sauce — 3.5 tablespoons ⁺
- Granulated sugar (or caster sugar) — 2 tablespoons ⁺
- Light brown sugar or palm sugar — 1 tablespoon
- Neutral oil (vegetable or canola) — 1 tablespoon
- Salt — 1.5 teaspoons ⁺
- Crushed red pepper flakes — 1/4 teaspoon
- Rice vinegar — 2 tablespoons
5. NOTES & ASSUMPTIONS
- Optional table-side items: chili flakes or extra fish sauce for adults wanting more heat or saltiness (set on the table).
- Global substitution notes: if fresh kaffir lime leaves are unavailable, use 1 tsp lime zest + 1 tbsp lime juice inside the hor mok mixture. If Thai basil is unavailable, use regular basil or cilantro as garnish. If banana leaves are unavailable, use foil or parchment to cover ramekins.
- Child-safety: keep crushed red pepper and whole small chilies away from children; adults add extra heat at the table only.
- Timeline risks:
- Tightest execution window: the overlap of starting the hor mok steaming and bringing the rice to boil (16:30–16:45). Both require attention to maintain a gentle simmer and avoid over-boiling the rice or under-steaming the custards.
- Risk mitigation mindset: keep the steamer at a gentle, steady simmer (watch water level) and set a visible timer for rice transitions (boil → simmer → rest). Use the steam time as window to attend the rice and do quick salad prep; maintain sequence in timeline.
- The latest safe start time: You can start as late as 16:18 for a 17:00 serve.