Cantonese char siu crossed the sea with Chinese migrants and landed on Thai rice plates. The pork is Chinese. The gravy, the prik nam som on the side, the jasmine rice underneath: that's Thailand claiming the dish as its own.
Main Dishes
Thai
Weeknight
Quick Meal
30 min
Active Time
45 min cook•1 hr 15 min total
Yield4 servings
Khao moo daeng is a Chinese dish that became Thai the moment a vendor put prik nam som (chili vinegar) on the table next to it.
Ajarn always said that Thai cuisine is a system, not a collection. When Cantonese migrants brought char siu to Bangkok, Thai cooks didn't just copy it. They ran it through the system. The pork kept its red fermented bean curd marinade, its honey glaze, its hanging-oven char. But the gravy got sweeter to match Thai palate logic. The rice became Thai jasmine, fragrant and long-grained. And the condiment caddy appeared: sliced bird's eye chilies in white vinegar, the sour-heat counterpoint that turns a Chinese roast meat plate into a Thai lunch. That condiment is the Thai flavor system asserting itself. Sour from vinegar. Heat from chili. Balance on demand.
I eat khao moo daeng at least twice a week. Yaowarat at lunch, when the vendors have been slicing pork since dawn and the gravy pot has been simmering all morning. The best stalls don't have menus. You sit down, they put a plate in front of you: sliced moo daeng fanned over rice, a ladle of sweet red gravy soaking into the grains, half a boiled egg, cucumber slices for crunch, maybe a few pieces of moo krob (crispy pork belly) if you nod when they hold up the tongs. The whole thing costs less than your morning coffee. Single-dish mastery. One plate, perfected over decades.
The gravy is where most home versions fail. Nam raat (the poured sauce) is not ketchup. It's not hoisin. It's a thin, sweet, savory glaze built from the roasting juices of the pork itself, stretched with stock, sweetened with sugar, darkened with soy, and thickened just enough to coat the rice without drowning it. Get the gravy right and you're halfway to Yaowarat. Get it wrong and you've got sliced pork on plain rice. Principles, not recipes.
Khao moo daeng traces directly to Cantonese char siu (叉燒), brought to Bangkok by Chinese migrants, primarily Cantonese and Teochew, during the late 19th and early 20th centuries. Yaowarat Road (Bangkok's Chinatown, established 1891) became the epicenter of Chinese-Thai food adaptation, where roast meat shops modeled on Hong Kong and Guangzhou originals began serving sliced char siu over jasmine rice with a Thai-sweetened gravy. The addition of prik nam som (chili vinegar) as a tableside condiment, absent from the Cantonese original, marks the dish's naturalization into the Thai street food system.
The technique, the tradition, and the story behind every dish.
red fermented bean curd (tao hoo yi daeng / nam yoo)
Quantity
2 tablespoons
mashed
honey
Quantity
2 tablespoons, plus extra for glazing
oyster sauce
Quantity
1 tablespoon
light soy sauce (si ew khao)
Quantity
1 tablespoon
dark soy sauce (si ew dam)
Quantity
1 teaspoon
five-spice powder (phong pha lo)
Quantity
1 teaspoon
garlic
Quantity
4 cloves
minced
white pepper
Quantity
1/2 teaspoon
Shaoxing wine
Quantity
1 tablespoon
red food coloring (optional)
Quantity
1/2 teaspoon
pork or chicken stock
Quantity
1 cup
granulated sugar
Quantity
3 tablespoons
light soy sauce (si ew khao), for gravy
Quantity
1 tablespoon
dark soy sauce (si ew dam), for gravy
Quantity
1 teaspoon
white vinegar or red vinegar
Quantity
1 tablespoon
five-spice powder (phong pha lo), for gravy
Quantity
pinch
salt
Quantity
pinch
tapioca starch
Quantity
1 tablespoon
mixed with 2 tablespoons water
steamed jasmine rice (khao suay)
Quantity
for serving
hard-boiled eggs
Quantity
2
halved
cucumber
Quantity
1
sliced into rounds
crispy pork belly (moo krob) (optional)
Quantity
for serving, store-bought
bird's eye chilies (prik khi nu)
Quantity
4
sliced into rounds, for chili vinegar
white vinegar, for chili vinegar condiment
Quantity
3 tablespoons
Ingredient
Quantity
pork neck (kor moo) or pork shoulderone piece, about 2 inches thick
600g
red fermented bean curd (tao hoo yi daeng / nam yoo)mashed
2 tablespoons
honey
2 tablespoons, plus extra for glazing
oyster sauce
1 tablespoon
light soy sauce (si ew khao)
1 tablespoon
dark soy sauce (si ew dam)
1 teaspoon
five-spice powder (phong pha lo)
1 teaspoon
garlicminced
4 cloves
white pepper
1/2 teaspoon
Shaoxing wine
1 tablespoon
red food coloring (optional)
1/2 teaspoon
pork or chicken stock
1 cup
granulated sugar
3 tablespoons
light soy sauce (si ew khao), for gravy
1 tablespoon
dark soy sauce (si ew dam), for gravy
1 teaspoon
white vinegar or red vinegar
1 tablespoon
five-spice powder (phong pha lo), for gravy
pinch
salt
pinch
tapioca starchmixed with 2 tablespoons water
1 tablespoon
steamed jasmine rice (khao suay)
for serving
hard-boiled eggshalved
2
cucumbersliced into rounds
1
crispy pork belly (moo krob) (optional)
for serving, store-bought
bird's eye chilies (prik khi nu)sliced into rounds, for chili vinegar
4
white vinegar, for chili vinegar condiment
3 tablespoons
Equipment Needed
•Wire roasting rack and baking tray
•Small saucepan for gravy
•Pastry brush for honey glaze
•Sharp slicing knife
Instructions
1
Mix the marinade
Mash the red fermented bean curd in a bowl until it forms a smooth paste. This is the soul of moo daeng. That funky, salty, brick-red fermented curd is what separates real khao moo daeng from pork with food coloring on it. Add the honey, oyster sauce, light soy sauce, dark soy sauce, five-spice powder, white pepper, minced garlic, Shaoxing wine, and red food coloring if using. Mix everything together. The marinade should be dark red, thick, and smell like a Yaowarat roast meat shop. If it doesn't smell like anything, your bean curd is too old.
Red fermented bean curd (tao hoo yi daeng) comes in jars at any Chinese or Thai grocery store. The cubes sit in red liquid. Use the cubes AND the liquid. That's where the color and flavor live. No bean curd, no moo daeng. There's no substitute.
2
Marinate the pork
Score the pork lightly in a crosshatch pattern, about half a centimeter deep. This lets the marinade penetrate. Coat the pork completely in the marinade, working it into the cuts with your hands. Place it in a sealed container or zip-lock bag and refrigerate for at least 4 hours. Overnight is better. The fermented bean curd needs time to work its way into the meat. Patience here is what separates a good moo daeng from a great one.
Pork neck (kor moo) is the cut every Yaowarat vendor uses. It has enough fat marbling to stay juicy through high-heat roasting. Pork loin works but dries out faster. If you use loin, pull it from the oven a few minutes earlier.
3
Roast the pork
Preheat your oven to 220°C (425°F). Set a wire rack over a baking tray lined with foil. Place the pork on the rack and pour a cup of water into the tray below to catch drippings and prevent smoking. Roast for 20 minutes. Pull it out, brush a thin layer of honey all over the surface, and return to the oven. Roast another 15 minutes. Pull it again, brush with honey one more time. Put it back for a final 5 to 8 minutes, watching it closely. You want the edges caramelized and slightly charred, the honey glaze tacky and dark, the surface glistening. That's the char. That's what you're here for. The internal temperature should hit 65°C (150°F).
Traditional moo daeng is roasted hanging vertically in a charcoal oven, like Cantonese char siu. Your home oven on a rack is the closest approximation. If you have a grill with a lid, even better. The key is high, dry heat and the honey glaze building up in layers.
4
Rest and slice
Rest the pork for 10 minutes. Don't skip this. The juices redistribute and the meat firms up enough to slice cleanly. Collect any drippings from the pan and the resting board. Those go straight into the gravy. Slice the pork against the grain, about half a centimeter thick. You want pieces thin enough to drape over rice but thick enough to show the pink center and the red-glazed edges. If there's no pink center, you overcooked it. Next time, pull it earlier.
5
Make the red gravy
This is the nam raat (น้ำราด), the poured sauce. It makes or breaks the plate. In a small saucepan, combine the stock, sugar, light soy sauce, dark soy sauce, vinegar, pinch of five-spice, salt, and all the collected pork drippings. Bring to a simmer over medium heat, stirring until the sugar dissolves. Taste it. It should be noticeably sweet, lightly salty, with a whisper of vinegar sharpness. Give the tapioca starch slurry a stir and pour it in slowly, stirring constantly. The gravy should thicken to the consistency of thin maple syrup. It coats a spoon but runs off slowly. Too thick and it sits on the rice like paste. Too thin and the rice doesn't absorb it. Add red food coloring for the traditional hue if you want. Let it simmer another minute.
The gravy is sweet. Sweeter than you think it should be. That's correct. The sweetness against the salty-savory pork and the sour-spicy prik nam som is the balance of the whole plate. If you dial down the sugar in the gravy, the dish falls flat. Trust the system.
6
Make the chili vinegar
Slice the bird's eye chilies into thin rounds and drop them into the white vinegar in a small dish. That's it. Prik nam som (พริกน้ำส้ม). This is where the Thai flavor system enters the Chinese-origin plate. Sour from the vinegar, heat from the chili, applied by the eater at the table. This condiment is non-negotiable. Without it, you're eating char siu on rice. With it, you're eating khao moo daeng.
7
Assemble the plate
Pack a bowl of jasmine rice and invert it onto a melamine plate or a regular plate if you don't have melamine. Fan the sliced moo daeng alongside the rice mound, showing the red glaze and the pink center. Place a halved boiled egg next to the pork. Scatter cucumber rounds on the side. If you have moo krob, add a few pieces for crunch. Ladle the warm red gravy generously over the pork and rice. Let it soak in. The rice should turn slightly pink where the gravy pools. Serve the prik nam som on the side. Tell whoever's eating to spoon it over the pork to taste. Sit down, eat fast, get back to work. That's how Bangkok does lunch.
Chef Tips
•Red fermented bean curd (tao hoo yi daeng) is the ingredient that makes moo daeng taste like moo daeng. It's a Chinese fermented product, salty and pungent, preserved in red rice yeast. You'll find it in jars in the Chinese section of any Asian grocery. No substitution. Hoisin sauce is not the same thing. Red food coloring alone is not the same thing. The fermented funk is the flavor.
•The gravy (nam raat) should be made with the actual drippings from roasting the pork. Those caramelized, honey-glazed pan juices carry concentrated flavor that stock alone can't provide. Scrape every bit from the foil, the rack, and the resting board. If you lose the drippings, your gravy will taste like sweet soy water.
•Moo krob (crispy pork belly) is a whole separate production: brined, dried, deep-fried, the works. Don't try to make it as part of this recipe. Buy it from a Chinese roast meat shop or an Asian grocery deli counter. The textural contrast of crispy pork belly against the soft, glazed moo daeng and gravy-soaked rice is part of the design. If you can get it, get it.
•Prik nam som (chili vinegar) is the Thai signature on this Chinese-origin plate. Sliced chilies in white vinegar. Every khao moo daeng stall in Bangkok has a jar of it on the table, alongside sugar, chili flakes, and sometimes fish sauce. The sour-heat cuts through the sweetness of the gravy. That's the balance. That's the system at work even on a dish that didn't originate in Thailand.
Advance Preparation
•The pork must marinate for a minimum of 4 hours. Overnight (8 to 12 hours) is ideal. The red fermented bean curd and five-spice need time to penetrate. Plan accordingly.
•Roasted moo daeng keeps well in the refrigerator for up to 3 days. Slice cold and reheat gently, or serve at room temperature. Many Yaowarat vendors slice from pork that was roasted hours earlier.
•The red gravy can be made up to 2 days ahead and refrigerated. It may thicken as it cools. Thin it with a splash of stock when reheating.
•Prik nam som (chili vinegar) improves after sitting for a few hours. Make it in the morning, use it at lunch. The chilies release more heat into the vinegar over time.
Frequently Asked Questions
Nutrition Information
1 serving (about 440g)
Calories
755 calories
Total Fat
27 g
Saturated Fat
9 g
Trans Fat
0 g
Unsaturated Fat
17 g
Cholesterol
205 mg
Sodium
1260 mg
Total Carbohydrates
87 g
Dietary Fiber
1 g
Sugars
23 g
Protein
37 g
Where cooking meets culture.
Culinary guides, cultural storytelling, and the editorial depth that makes cooking meaningful.