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.
ข้าวต้ม (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.
| Thai | English | Amount |
|---|---|---|
| ข้าวหอมมะลิ (ข้าวเก่า) | Jasmine rice, ideally aged | 1 cup |
| ใบเตย | Pandan leaves | 5 leaves |
| ปลาเก๋า | Grouper, or other firm white fish, thick-sliced | 250 g |
| รากผักชี | Cilantro roots, crushed | 2 |
| กระเทียม | Garlic, smashed | 5 cloves |
| กุ้งแห้ง | Dried shrimp | 2 tbsp |
| หมึกแห้ง | Dried squid | 1 small piece |
| เกลือ | Salt | ½ tsp |
| ซีอิ๊วขาว | Light soy sauce | 1½ tbsp |
| ข่าอ่อนเผา | Young galangal, grilled, chopped fine | 1 piece |
| ตั้งฉ่าย | Tang chye (pickled mustard greens) | 1 tbsp |
| กระเทียมเจียว | Fried garlic, with its oil | 2 tbsp |
| ขึ้นฉ่าย ต้นหอม ผักชี | Chinese celery, spring onion, coriander | for garnish |
| พริกไทยป่น | Ground white pepper | to finish |
| เต้าเจี้ยว | Tao jeow (yellow bean paste), with chopped chilli | 2 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 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.
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