Inspired by the iconic canal vendors of Bangkok, this Thai boat noodle soup features a deeply savory, almost black broth simmered for hours with star anise, cinnamon, and soy sauces. Served in small portions with thin rice noodles, tender pork, and a riot of fresh garnishes, every spoonful delivers an intense umami punch that has been Thailand's beloved street-food obsession for generations.
Prep Time20 mins
Cook Time90 mins
Total Time110 mins
Servings4
Yield4 small bowls (about 2 cups each)
Nutrition Facts
Per serving (estimated)
- 480 kcalCalories
- 18 gFat
- 6 gSaturated Fat
- 52 gCarbs
- 3 gFiber
- 6 gSugar
- 28 gProtein
- 1480 mgSodium
- 520 mgPotassium
- 90 mgCalcium
- 4 mgIron
- 9 mgVitamin C
- 45 mcgVitamin A
Ingredients
For the aromatic pork broth base
- 2 lb (900 g) pork neck bones, rinsed
- 8 oz (225 g) pork belly, skin on
- 12 cups (2.8 L) water
- 8 garlic cloves, smashed
- 3 coriander roots, smashed
- 1 tbsp white peppercorns, lightly crushed
For the broth seasoning
- 3 tbsp Thai dark soy sauce
- 2 tbsp light soy sauce
- 1 tbsp Chinese soybean paste (tau cheong)
- 2 tbsp palm sugar, chopped
- 3 star anise pods
- 2 cinnamon sticks
- 4 whole cloves
- 1 tsp salt, plus more to taste
For the noodles and proteins
- 8 oz (225 g) thin Thai rice noodles (sen lek)
- 8 oz (225 g) pork meatballs, halved
- 4 cups blanched Chinese broccoli (gai lan) or baby bok choy
- 2 cups fresh bean sprouts, rinsed
For the garnishes
- 1/4 cup crispy fried garlic
- 1/2 cup fresh Thai basil leaves
- 1/2 cup fresh cilantro, roughly chopped
- 2 Thai red chilies, thinly sliced
- 1 lime, cut into wedges
Directions
- Combine the pork bones and pork belly in a large stockpot, cover with cold water, and bring to a boil. Boil for 5 minutes, then drain and rinse the bones and meat under cold water to remove impurities.
- Return the cleaned bones and pork belly to the pot with 12 cups fresh water, the star anise, cinnamon, cloves, peppercorns, coriander roots, and smashed garlic. Bring to a gentle boil, then reduce heat and simmer uncovered for 75 minutes, skimming any foam that rises.
- Remove the pork belly and slice it thinly; set aside. Strain the broth through a fine-mesh sieve into a clean pot, discarding the bones and aromatics.
- Stir the dark soy sauce, light soy sauce, soybean paste, and palm sugar into the strained broth. Simmer 10 more minutes, then season with salt to taste. The broth should be intensely savory and noticeably dark.
- Meanwhile, bring a separate pot of water to a boil. Cook the rice noodles according to package directions, about 3 to 4 minutes, then drain and divide among 4 small bowls (about 1 cup noodles per bowl).
- Bring a small pot of water to a gentle simmer and poach the halved pork meatballs for 4 to 5 minutes until heated through and bouncy.
- Divide the sliced pork belly, poached meatballs, and blanched Chinese broccoli over the noodles in each bowl. Pour the hot aromatic broth over the top to cover.
- Top each bowl with a generous spoonful of bean sprouts, crispy fried garlic, Thai basil, cilantro, and sliced chilies. Serve immediately with lime wedges and a small dish of chili vinegar on the side.
Cook’s Notes
- Authentic boat noodles are served in small bowls with a concentrated broth, so don't be tempted to over-dilute with extra water.
- For an even deeper color and richer flavor, add 1 tablespoon of Chinese black bean sauce (tao jiao) along with the dark soy sauce.
- Crispy fried garlic is non-negotiable. Make a batch by slowly frying sliced garlic in neutral oil until deep golden, then drain on paper towels.
- If you can't find Thai pork meatballs, use Chinese-style fish balls or sliced beef shank (simmered with the bones) for an equally traditional variation.
- The broth keeps refrigerated for up to 4 days and freezes beautifully, so make a double batch for quick weeknight noodle bowls.










