Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 lb (900 g) pork neck bones
- 10 cups (2.4 L) water
- 1 medium daikon (about 1 lb/450 g), peeled, sliced
- 1 small onion (150 g), halved
- 6 garlic cloves, smashed
- 8 cilantro stems or 4 roots, rinsed
- 1.5 tsp whole white peppercorns
- 3–4 tbsp fish sauce, divided
- 2 tsp rock sugar (or light brown sugar)
- 1 tsp kosher salt
- 10 oz (300 g) dried medium rice noodles (sen lek)
- 10 cloves garlic (30 g) + 1/3 cup (80 mL) neutral oil
- 10 oz (300 g) pork shoulder or loin, very thinly sliced
- Marinade: 1 tbsp fish sauce, 2 tsp cornstarch, 1/2 tsp sugar, 1/4 tsp white pepper, 1 tbsp water
- 16 Thai pork balls (about 14 oz/400 g)
- To finish: 1/2 cup cilantro leaves, 2 scallions, chili flakes, fish sauce, vinegar with sliced chilies, sugar
Do This
- 1. Blanch bones 5 minutes; rinse. Simmer with 10 cups water, daikon, onion, garlic, cilantro stems/roots, and peppercorns for 90 minutes at a gentle simmer (180–195°F/82–90°C), skimming.
- 2. Fry minced garlic in oil 4–6 minutes until pale gold; strain (reserve oil and crispy garlic separately).
- 3. Soak dried rice noodles in warm water 20–30 minutes.
- 4. Strain broth; season with 2 tbsp fish sauce, 2 tsp rock sugar, 1 tsp salt. Simmer pork balls 3–4 minutes until heated through.
- 5. Marinate sliced pork 10 minutes; poach in simmering broth 1–2 minutes until just cooked.
- 6. Blanch noodles in boiling water 30–60 seconds; drain and toss with a little garlic oil.
- 7. Assemble bowls with noodles, pork, pork balls, hot broth, cilantro, scallions, white pepper, a drizzle of garlic oil, and crispy garlic. Serve with chili flakes, fish sauce, and chile vinegar.
Why You’ll Love This Recipe
- Clean, peppery broth that’s light yet deeply savory, just like your favorite noodle shop.
- Comforting textures: silky rice noodles, tender pork slices, and bouncy pork balls.
- Customizable at the table with chili flakes, fish sauce, and vinegar—everyone gets their perfect bowl.
- Meal-prep friendly: make the broth and garlic oil ahead, then assemble in minutes.
Grocery List
- Produce: Daikon radish, onion, garlic, cilantro (stems/roots + leaves), scallions, Thai bird chilies (for vinegar), optional bean sprouts
- Dairy: None
- Pantry: Pork neck bones, Thai pork balls, dried rice noodles (sen lek), fish sauce, white peppercorns (plus ground white pepper), rock sugar or light brown sugar, kosher salt, neutral oil, distilled white vinegar or rice vinegar
Full Ingredients
Clear Pork Broth (Nam Sai)
- 2 lb (900 g) pork neck bones (or a mix of neck and leg bones)
- 10 cups (2.4 L) water
- 1 medium daikon (about 1 lb/450 g), peeled and cut into 1/2-inch rounds
- 1 small onion (150 g), halved
- 6 garlic cloves, lightly smashed
- 8 cilantro stems or 4 cilantro roots, rinsed well
- 1.5 tsp whole white peppercorns (in a tea ball or cheesecloth if you like)
- 2 tsp rock sugar (or light brown sugar)
- 1 tsp kosher salt, plus more to taste
- 3–4 tbsp fish sauce, divided (start with 2 tbsp to season the broth; use the remainder to adjust at the end)
Garlic Oil and Crispy Garlic
- 10 cloves garlic (30 g), very finely minced
- 1/3 cup (80 mL) neutral oil (canola, rice bran, or peanut)
Pork and Meatballs
- 10 oz (300 g) pork shoulder or loin, sliced very thinly across the grain (2–3 mm)
- 16 Thai pork balls (about 14 oz/400 g), store-bought
- Marinade for sliced pork: 1 tbsp fish sauce, 2 tsp cornstarch, 1/2 tsp sugar, 1/4 tsp ground white pepper, 1 tbsp water
Noodles and Garnishes
- 10 oz (300 g) dried medium rice noodles (sen lek) or 1 lb (450 g) fresh rice noodles
- 1/2 cup loosely packed cilantro leaves, chopped
- 2 scallions, thinly sliced
- Ground white pepper, to finish
- 2 cups bean sprouts (optional)
Table Condiments (Customize Your Bowl)
- Chili flakes (prik bon)
- Fish sauce (nam pla)
- Vinegar with sliced chilies (prik nam som): 1/2 cup distilled white vinegar + 2–3 thinly sliced Thai bird chilies
- Granulated sugar (optional, for balance)

Step-by-Step Instructions
Step 1: Blanch bones and start a clear, gentle simmer
Place the pork bones in a large pot, cover with cold water, and bring to a boil. Boil for 5 minutes to draw out impurities. Drain, rinse the bones under hot water, and scrub/rinse the pot. Return bones to the pot with 10 cups (2.4 L) fresh water, daikon, onion, smashed garlic, cilantro stems/roots, and whole white peppercorns. Bring just to a simmer, then lower heat to maintain 180–195°F (82–90°C). Do not boil. Simmer uncovered for 90 minutes, skimming foam for the first 20–30 minutes. This gentle approach keeps the broth beautifully clear.
Step 2: Make golden garlic oil
While the broth simmers, add minced garlic and neutral oil to a small skillet off heat. Set over medium heat and cook, stirring, 4–6 minutes until the garlic turns pale gold. Immediately strain through a fine sieve to stop carryover cooking. Reserve the fragrant oil and the crispy garlic separately (they burn easily if left together). Set aside.
Step 3: Soak the rice noodles
Place dried rice noodles in a large bowl and cover with warm water (about 120°F/49°C). Soak 20–30 minutes until pliable but not fully soft. Drain well. If using fresh rice noodles, separate the strands and keep covered to prevent drying.
Step 4: Strain and season the broth; cook pork balls
Strain the broth through a fine-mesh strainer (cheesecloth-lined for extra clarity). Return the clear broth to the pot and season with 2 tsp rock sugar, 1 tsp kosher salt, and 2 tbsp fish sauce. Bring back to a gentle simmer (not a rolling boil). Add the pork balls and simmer 3–4 minutes until heated through and floating. Keep the broth at a bare simmer for the next steps.
Step 5: Marinate and poach the sliced pork
In a bowl, combine the sliced pork with fish sauce, cornstarch, sugar, white pepper, and water. Mix well and marinate 10 minutes. Working in 1–2 handfuls at a time, slide the pork into the simmering broth and poach 1–2 minutes until just cooked and tender. Use a slotted spoon to transfer the pork to a warm plate so it does not overcook. Keep the broth gently simmering.
Step 6: Cook the noodles separately
Bring a separate pot of water to a rolling boil. Blanch soaked noodles for 30–60 seconds (fresh noodles may only need 10–20 seconds). Drain thoroughly and portion into 4 warmed bowls. Toss each portion with 1–2 teaspoons of the reserved garlic oil to keep strands silky and separate.
Step 7: Assemble and customize
Top each bowl of noodles with poached pork and 4 pork balls. Ladle 1.5–2 cups hot, clear broth over the top. Garnish with cilantro, scallions, a light dusting of ground white pepper, a drizzle of garlic oil, and a pinch of crispy garlic. Serve immediately with chili flakes, fish sauce, and chile vinegar so everyone can tweak the heat, salt, and tang to their liking.
Pro Tips
- Clarity is king: keep the broth at a gentle simmer—never a boil—to avoid cloudiness.
- Slice pork very thinly across the grain; the quick cornstarch marinade creates a velvety texture.
- Cook noodles in a separate pot so starch doesn’t muddy the broth.
- Warm your bowls and ladle in very hot broth for the best serving temperature.
- Season the broth lightly and let diners finalize with table condiments—the Thai way.
Variations
- Pressure cooker broth: After blanching, cook bones, aromatics, and water at High Pressure for 30 minutes; natural release 15 minutes. Strain, season, and proceed.
- Chicken Nam Sai: Swap pork bones and pork for chicken carcasses/wings and thin chicken breast; simmer 60 minutes, then poach chicken 45–60 seconds.
- Glass noodles (woon sen): Replace rice noodles with 10 oz (280 g) soaked mung bean vermicelli; blanch 15–30 seconds for a light, springy bowl.
Storage & Make-Ahead
Broth keeps 4 days in the refrigerator or 3 months in the freezer. Store broth, cooked pork, pork balls, noodles, and garnishes separately. Reheat broth to a simmer and briefly warm the pork and pork balls just before serving. Blanch noodles fresh for best texture; avoid storing cooked noodles in broth (they will swell). Garlic oil keeps 2 weeks chilled; crispy garlic stays crunchy up to 5 days in an airtight container.
Nutrition (per serving)
Approximate values: 560 calories; 31 g protein; 64 g carbohydrates; 17 g fat; 1600 mg sodium. Values will vary with noodle brand, pork balls, and condiment amounts.


Leave a Reply