Steamed Pomfret, Teochew Style
If you want to understand Teochew cuisine, eat this dish first.
Steamed pomfret in the Teochew style is the purest expression of ching cooking — clear, clean, letting the fish speak. The Teochew people came from Chaoshan in eastern Guangdong, where the coastline gave them generations of seafood mastery. Their cuisine philosophy: "do less, taste more."
The dish has only a few ingredients beyond the fish — salted plums, kiam chye (salted mustard greens), shiitake mushrooms, tomato, ginger, silken tofu, lard or shallot oil. Each plays a specific role:
- Salted plum — sour, salty, breaks the richness
- Kiam chye — earthy, fermented, bridges fish to broth
- Tomato — fresh acidity, wakens the palate
- Mushroom — umami depth
- Ginger — neutralises any fishiness, warms the dish
- Tofu — silky vehicle that absorbs the broth
The steam from the fish, the plum, the mustard greens — they make their own broth on the plate. You drink that broth like medicine. Old Teochew aunties say the broth is what cures you when you are unwell.
Use white pomfret only. Black pomfret is for frying. Silver pomfret is the Singapore standard.
🛒Ingredients
A short list. The fish must be very fresh — same-day catch, eyes clear, gills bright red.
For the Fish serves 3–4
| Whole white (silver) pomfret | ~500–600 g | Eyes clear, gills bright red, flesh firm. Buy from Tekka, Geylang Serai, or Jurong Fishery Port morning market. |
| suan mei (salted plums) | 2 plums | In jars at any wet market. Pinkish-brown, soft. |
| kiam chye (salted mustard greens) | 80 g | Pickled Swatow mustard cabbage. Soak in hot water 5 min if too salty. |
| Shiitake mushrooms (dried) | 3 large | Soak in warm water 20 min; reserve soaking liquid. |
| Tomato | 1 medium | Cut into 6 wedges. |
| Silken tofu | 100 g | In 2 cm cubes. Optional but traditional. |
| Fresh ginger | 30 g | Cut to fine strips. |
| Spring onion | 1 stalk | Finely sliced. |
| Coriander | a small bunch | |
| Red chilli | 1 | Finely sliced. Optional. |
| Light soy sauce | 1 tbsp | |
| Shaoxing wine | 1 tbsp | |
| Sugar | ½ tsp | |
| Pork lard or shallot oil | 1 tbsp | Drizzled at the end — non-negotiable for full flavour. |
| Salt | a pinch | |
| Water | 80 ml | Or use mushroom soaking water. |
🌶️Shifu's Lift
choose one path — see "Shifu's Secret" chapter for the philosophy- Old-school path: Add ⅛ tsp MSG to the soy/wine seasoning
- Modern hawker path: ¼ tsp chicken stock powder
- Heritage purist path: Use mushroom soaking liquid as the steaming water (already heritage-purist)
👨🍳Method
Five stages. Steaming time is the only moment you cannot rush — and cannot drift.
Prep the Fish
Have the fishmonger scale, gut, and clean the fish. At home, rinse thoroughly, especially inside the cavity. Pat completely dry.
Score the fish with 2–3 diagonal slashes on each side, about 1 cm deep. This helps even cooking and lets the flavours penetrate.
Rub the inside cavity and the slashes with a tiny pinch of salt. Place 2 ginger strips inside the cavity.
Prep the Toppings
De-seed the salted plums; mash the flesh roughly. Slice mustard greens. Cut tomato into wedges. Slice mushrooms thinly (reserving soaking water). Cube tofu.
Mix together: 1 tbsp light soy + 1 tbsp Shaoxing wine + ½ tsp sugar + 80 ml water (or mushroom water).
Assemble on the Plate
On a deep, heatproof plate (must fit your steamer):
- Scatter half the mustard greens and half the ginger strips.
- Lay the fish on top — the mustard greens lift the fish so it cooks evenly.
- Smear half the mashed salted plum on top of the fish.
- Stuff the remaining plum into the belly cavity.
- Arrange the rest of the mustard greens, mushrooms, tomato wedges, and tofu cubes around the fish.
- Sprinkle remaining ginger over the top.
- Pour the soy-wine-water mixture around the sides — not on top of the fish.
Steam
Bring water in a wok or steamer to a rolling boil before placing the fish in. High heat, lid on, steam for 12–14 minutes for a 500–600 g fish. Add 2 minutes per extra 100 g.
Do not open the lid during steaming. Heat loss = uneven cook = tough fish.
Test for doneness: insert a chopstick into the thickest part near the spine. If it slides in easily and the flesh flakes, it's done. Any resistance — give it 90 more seconds.
Finish
Carefully remove the plate from the steamer. Caution — the plate has a pool of broth that is very hot.
Drizzle 1 tbsp hot lard or shallot oil over the fish. This is the signature finishing touch — it bridges the steamed flavours and adds that final umami gleam.
Garnish with coriander, chopped spring onion, sliced chilli. Serve immediately with extra light soy and bird's-eye chilli on the side.
Eat with rice. Pour spoonfuls of the plate-broth over the rice. That broth is the soul of the dish.
🎯The Three Tips
Heritage. Master's. Mistake.
🏛 Heritage Note
The Salted Plum, the Pantry, the Tradition
The salted plum used here is Chinese salted plum (suan mei), not Japanese umeboshi — though umeboshi works in a pinch. The plum's acidity activates fish flavour the same way lemon does for European fish dishes. Old Teochew aunties keep a jar of salted plums for fish steaming, soup-making, and sour pork — it is one of those pantry items that reveals an entire cooking tradition.
👨🍳 Master's Tip
The Pre-Boil
Always have your steamer already at full rolling boil before the fish goes in. This is the single most important rule of Chinese fish steaming.
If you start the steaming process from cold water, the fish cooks unevenly — tough on the outside, raw at the spine. Hot steam from the start = quick, even, tender flesh.
Test: drop water on the lid. If it sizzles and evaporates instantly, you're at proper steam temperature.
⚠ Common Mistake
Overcooking
Overcooked steamed fish is dry, tough, and tastes "old." The window between just-done and overcooked is about 60 seconds.
Signs of overcooking:
- Flesh is dry and pulls away from the bone aggressively
- Eyes are cloudy white and shrunken
- The broth is reduced and concentrated, no longer translucent
Fix: Use a timer. 12 minutes for 500–600 g, 14 minutes for 700 g, 16 minutes for 900 g. Set alarm. Trust the time. Resist opening the lid.
📈 Scaling for Hawker Service
For a Teochew zi char or fish soup stall
- Daily fish purchase: 6–10 whole pomfrets, depending on demand. Source from Jurong Fishery Port at 4am.
- Steam timing: Have 3 plates queued — one steaming, one resting, one being plated. Service rhythm: 15 minutes per fish.
- Cost (Singapore 2026): Whole pomfret SGD 12–18 wholesale, sells SGD 28–42 per fish at zi char. Margin: 55–65% (lower than other dishes because the fish itself is the cost).
- Premium variations: Live grouper instead of pomfret (+SGD 30), red snapper (+SGD 15), king fish (+SGD 20).
Three sourings, one saltiness, one sweetness, one umami — and the fish does the rest. Teochew cooking is restraint as virtue.