Recipe · Thailand · Breakfast Soup, All Day Long

Khao Tom Pla (ข้าวต้มปลา)

Whole jasmine grains in a clear, sweet stock, poached fish, fried garlic — and the tao jeow dipping sauce that makes a Pantip thread out of a bowl of rice soup.

The Rice Soup That Refuses To Be Porridge

ข้าวต้ม (khao tom) is Thailand's answer to congee with one unbreakable rule: the rice stays rice. Grains remain whole and separate, the broth stays clear, and the fish sits on top like a guest, not an ingredient boiled into submission. Chef Phol's recipe at Phol Food Mafia opens with the why — good khao tom pla starts with ข้าวสารเก่า, aged rice, because fresh-crop rice falls apart in the pot and turns the soup to glue.

The stock does the talking. Kapook's grouper version — from a Pantip member's home kitchen — simmers cilantro roots, garlic, dried shrimp and dried squid into a broth that is sweet without a pinch of sugar, while Wongnai's version pours in a litre of pork-bone stock. Either way the broth stays pale and clean; the garnish carries the colour: fried garlic, Chinese celery, spring onion, white pepper.

And then the dipping sauce. Thai rice-soup stalls serve ข้าวต้มปลา with a little dish of เต้าเจี้ยว — fermented yellow bean paste — spiked with chilli. Kapook's cook writes of spooning it over the fish and biting through the beans one by one; a Pantip thread exists purely to ask how to make it, because a bowl without it, in the poster's words, is not worth buying. The fish is quiet. The sauce is the point.

The Recipe (home version, from Kapook's grouper recipe with Chef Phol's measures)

ThaiEnglishAmount
ข้าวหอมมะลิ (ข้าวเก่า)Jasmine rice, ideally aged1 cup
ใบเตยPandan leaves5 leaves
ปลาเก๋าGrouper, or other firm white fish, thick-sliced250 g
รากผักชีCilantro roots, crushed2
กระเทียมGarlic, smashed5 cloves
กุ้งแห้งDried shrimp2 tbsp
หมึกแห้งDried squid1 small piece
เกลือSalt½ tsp
ซีอิ๊วขาวLight soy sauce1½ tbsp
ข่าอ่อนเผาYoung galangal, grilled, chopped fine1 piece
ตั้งฉ่ายTang chye (pickled mustard greens)1 tbsp
กระเทียมเจียวFried garlic, with its oil2 tbsp
ขึ้นฉ่าย ต้นหอม ผักชีChinese celery, spring onion, corianderfor garnish
พริกไทยป่นGround white pepperto finish
เต้าเจี้ยวTao jeow (yellow bean paste), with chopped chilli2 tbsp

Chef Phol's pot: 120 g grouper per bowl, 1 cup rice, 6 cups water, pandan and salt — the rice water is strained off and becomes half the stock (with 2 cups pork stock), and the poaching liquid for the fish. Wongnai's quick pot: 2 ladles cooked rice, 500 g red snapper, 1 litre pork-bone stock, 4 shiitake, sliced galangal and 2 cilantro roots, seasoned with light soy and pepper. TrueID's winter pot: a whole sea bass, 2 litres of fish stock, Chinese garlic, cilantro root — cooked rice goes straight into the stock.

The Method

  1. The rice. Rinse the rice, then boil it in about 6 cups of water with the salt and pandan leaves — about 10 minutes, until the grains open but stay whole. Strain and keep the rice water: Chef Phol uses it for the stock and for poaching the fish. Kapook's cook goes further, rinsing the starch off the cooked grains (ล้างยาง) so the soup stays clear. This step is what separates khao tom from porridge.
  2. The stock. Simmer the cilantro roots, garlic, dried shrimp and dried squid in water — or half rice water, half pork stock, Chef Phol's way — seasoned with light soy and a little salt. Keep it low until the shrimp and squid go tender. The sweetness in the finished bowl comes from these, not from sugar.
  3. The galangal. Grill the young galangal briefly and chop it fine, then add it to the stock with the tang chye. This is the background note of every good khao tom pla — and the one ingredient Thai cooks argue about most (see below).
  4. The fish. Cut thick slices and poach them in the rice water or stock. Wongnai's rule is absolute: do not stir while the fish cooks, or the broth turns fishy. The doneness cue is visual, from Kapook: the skin-side layer just under the flesh turns translucent — then it is done. Lift the fish out, don't leave it in the pot.
  5. The bowl. Rice first, fish on top, stock ladled over, then fried garlic with its oil, Chinese celery, spring onion and a good dusting of white pepper. The tao jeow dip — bean paste loosened and spiked with chopped chilli — goes alongside, to spoon over the fish. Eat it scalding; the whole point of the dish is the first hot spoonful.

Where Thai Sources Disagree

The rice. Wongnai, TrueID and the dory recipe at Kapook use cooked rice, dropped straight into the stock. Kapook's grouper recipe boils raw rice first, drains and rinses it. Chef Phol insists on aged raw rice with pandan, and turns the strained rice water into the stock. Everyone agrees on the outcome — whole grains, clear broth — but gets there by three different roads.

The stock. Dried shrimp and dried squid in plain water (Kapook's grouper pot), pork-bone stock (Wongnai), rice water and pork stock half-and-half (Chef Phol), fish stock (TrueID), or just water with aromatics (the dory recipe). The dish absorbs whatever stock the kitchen has — none of the five sources uses the same one.

The galangal. Kapook grills young galangal and stirs it, chopped fine, into the soup. Wongnai floats slices in the stock. Chef Phol dry-roasts mature galangal, pounds it (ข่าแก่คั่วป่น) and puts it on the table as a condiment, not in the pot at all. Young in, mature out — three schools of the same root.

The fish. Grouper (Kapook, Chef Phol), red snapper (Wongnai), sea bass (TrueID), dory (ครัวแม่ผึ้ง's recipe). The constant: firm, white, lean flesh that holds a slice. No Thai source even considers an oily fish.

The tao jeow. Kapook and Chef Phol make the dipping sauce central — crushed bean paste with chilli, spooned over the fish. Wongnai and TrueID never mention it, and the Pantip thread that asks how to make it treats a bowl without it as not worth buying. Street-stall habit against home-kitchen habit.

The stir rule. Wongnai forbids stirring while the fish cooks — it makes the soup fishy. TrueID's rule is only about timing: blanch briefly, never to the point of falling apart. Both point the same way, though: the fish is handled like a poached egg, not a stew ingredient.

How Western Versions Get It Wrong

UK Ingredient Notes

Sources

This recipe is translated from the following Thai-language sources. Where they disagree, we've said so.

1. Kapook Cooking — "สูตรข้าวต้มปลา พร้อมเทคนิคต้มข้าวเม็ดสวย น้ำซุปหอมกลมกล่อม" (the recipe used here; from Pantip member มอแกนน้อย) — cooking.kapook.com

2. Phol Food Mafia — "Rice Soup with Fish (ข้าวต้มปลา)" by พล ตัณฑเสถียร (the aged-rice and rice-water technique) — pholfoodmafia.com

3. Wongnai — "วิธีทำ ข้าวต้มปลา เมนูอาหารเช้า อิ่มง่าย สบายท้อง" (the red snapper and pork-stock pot; the no-stir rule) — wongnai.com

4. TrueID Food — "สูตรข้าวต้มปลากระพง #เมนูหน้าหนาว" (the sea-bass and fish-stock pot) — food.trueid.net

5. Kapook Cooking — "5 เมนูข้าวต้มปลา อิ่มอร่อยสบายท้อง หอมกรุ่นรับยามเช้า" (incl. the dory version from ครัวแม่ผึ้ง and the anchan-rice pot) — cooking.kapook.com

Johnny Tiger
Johnny researches and translates Thai recipes from Thai-language sources — chefs, restaurants and home cooks in Thailand — and publishes them with their sources cited. No westernised shortcuts, no invented steps.