Thai boat noodles - or guay tiew ruea - are one of Thailand’s most iconic street food dishes. A rich, spiced broth loaded with springy pork meatballs, thin rice noodles, fresh herbs, and a punch of chili vinegar. Originally sold from boats along Bangkok’s canals, these small bowls pack more flavor per ounce than almost any other soup in Southeast Asian cuisine.
This recipe puts the pork meatballs front and center. Instead of buying pre-made Asian meatballs from the frozen section, you make them from scratch with ground pork, fish sauce, and white pepper - bouncy, juicy, and perfectly sized for the bowl. The broth does take some time, but most of it is hands-off simmering, and you can make it days ahead.
Key Takeaways
- Homemade pork meatballs made with ground pork, cornstarch, and fish sauce give the bouncy texture that store-bought versions can match.
- The broth is the star. Star anise, cinnamon, galangal, and Thai chili paste create the signature dark, aromatic base. Simmer it for 30+ minutes for depth.
- Rice noodles need soaking, not just boiling. Soak in room temperature water for 20 to 30 minutes before the final quick blanch.
- Chili vinegar is not optional. It adds the bright acidity that cuts through the rich broth - make it or mix sambal oelek with white vinegar as a shortcut.
- Make the broth ahead. It keeps in the fridge for a week and freezes indefinitely, making weeknight assembly take under 20 minutes.
How to Make Thai Boat Noodles with Pork Meatballs
-
Make the pork meatball mixture. In a bowl, combine ground pork, cornstarch, fish sauce, white pepper, garlic, and sesame oil. Mix until just combined - do not overwork the pork or the meatballs will be dense instead of bouncy.
-
Shape the meatballs. Roll the mixture into small balls, about the size of a cherry (roughly 1 inch across). Thai boat noodle meatballs are intentionally small - they cook fast and fit the small traditional bowls.
-
Poach the meatballs. Bring a pot of water to a gentle boil. Drop in the meatballs and poach for 5 to 6 minutes until cooked through. They will float when done. Remove with a slotted spoon and set aside.
-
Start the broth. Heat vegetable oil in a large stockpot over medium heat. Add minced garlic and saute for 1 minute until golden. Stir in Thai chili paste (nam prik pao) and cook until fragrant, about 30 seconds.
-
Build the broth base. Pour in pork bone broth. Add soy sauce, fish sauce, oyster sauce, dark soy sauce, sugar, star anise, cinnamon stick, galangal, kaffir lime leaves, vinegar, and white pepper. Stir to combine.
-
Simmer for depth. Bring the broth to a boil, then reduce to a gentle simmer. Cook uncovered for 30 to 35 minutes to let the spices infuse and the flavors concentrate.
-
Soak the noodles. While the broth simmers, place rice noodles in a bowl and cover with room temperature water. Soak for 20 to 30 minutes until completely pliable, opaque white, and no longer holding their original shape. Drain well.
-
Blanch the noodles. Bring a large pot of water to a rolling boil. Place one portion of soaked noodles, a handful of bean sprouts, and a handful of spinach in a noodle strainer. Dunk into the boiling water and shake for 5 to 10 seconds. Shake off excess water and place in a serving bowl. Repeat for each portion.
-
Assemble. Ladle hot broth over the noodles along with a few meatballs. Top with cilantro, Thai basil, green onions, and crispy garlic. Serve immediately with chili flakes, lime wedges, and chili vinegar on the side.
Ingredients
Pork Meatballs
| Ingredient | Amount | Notes |
|---|---|---|
| Ground pork shoulder | 1 lb (450 g) | 80/20 fat ratio for juiciness |
| Cornstarch | 1 tbsp | Creates the bouncy texture |
| Fish sauce | 1 tbsp | Adds umami depth |
| White pepper | 1 tsp | Warmer and more floral than black pepper |
| Garlic | 2 cloves, minced | Fresh only |
| Sesame oil | 1 tsp | Nutty aroma |
Spiced Broth
| Ingredient | Amount | Notes |
|---|---|---|
| Pork bone broth | 6 cups (1.4 L) | Homemade or low-sodium store-bought |
| Vegetable oil | 1 tbsp | For sauteing aromatics |
| Garlic | 5 cloves, minced | |
| Thai chili paste (nam prik pao) | 2 tbsp | The signature flavor - find at Asian markets |
| Soy sauce | 2 tbsp | |
| Fish sauce | 1 tbsp | |
| Oyster sauce | 1 tbsp | |
| Dark soy sauce | 1 tbsp | For color and depth |
| Sugar | 1 tsp | Balances the salt and acid |
| Star anise | 2 whole | |
| Cinnamon stick | 1 piece (3 inches) | |
| Galangal | 1-inch piece, sliced | Sub ginger if unavailable |
| Kaffir lime leaves | 2 leaves | |
| White vinegar | 1 tbsp | Brightens the broth |
| White pepper | 1 tsp |
Noodle Bowl
| Ingredient | Amount | Notes |
|---|---|---|
| Thin rice noodles | 1 pack (14 oz / 400 g) | Soak before cooking |
| Bean sprouts | 2 cups | Fresh |
| Water spinach or baby spinach | 1 cup | Cut into 2-inch pieces |
| Fresh cilantro | 1/4 cup, chopped | |
| Thai basil leaves | 1/4 cup | |
| Green onions | 2, sliced | |
| Crispy garlic or shallots | For garnish |
Condiments (Served on the Side)
- Chili vinegar (mix 1 part sambal oelek with 2 parts white vinegar as a quick substitute)
- Roasted chili flakes
- Lime wedges
- Crispy pork rind (optional)
Tips for the Best Boat Noodles
Use pork shoulder for the meatballs. The fat content in pork shoulder keeps the meatballs juicy during poaching. Lean pork loin will produce dry, crumbly meatballs.
Nam prik pao is non-negotiable. This Thai chili paste gives boat noodles their characteristic smoky-sweet depth. It is available at most Asian grocery stores and online. Do not substitute with regular chili sauce or sriracha.
Soak noodles properly. Rice noodles must soak in room temperature water until completely pliable before blanching. Skipping the soak or under-soaking leads to chewy, undercooked noodles even after boiling.
Blanch in batches. One portion at a time ensures even cooking and prevents the noodles from clumping. The 5-to-10-second blanch is all you need for properly soaked noodles.
Blood is traditional but optional. Authentic nam tok boat noodles use a small amount of pork or beef blood to thicken the broth. If you cannot find it or prefer to skip it, the broth is still rich and delicious. A small spoon of cornstarch slurry can add similar body.
Make-Ahead and Storage
The broth is the most time-consuming component and benefits greatly from advance preparation.
- Broth: Keeps in the fridge for up to 1 week. Reheat to a simmer before assembling bowls. Freezes well for up to 3 months.
- Meatballs: Poach and store in an airtight container in the fridge for up to 4 days. Reheat in the hot broth when assembling.
- Soaked noodles: Drain, place on a kitchen towel to absorb excess moisture, then store in a covered container in the fridge for up to 3 days.
- Condiments: Chili vinegar, fried garlic, and chili flakes all keep in the fridge for weeks.
With all components prepped, assembly takes under 10 minutes on a weeknight.
What Makes Boat Noodles Different from Other Thai Noodle Soups?
Boat noodles stand apart from pad kra pao and red curry in several ways. The broth is darker and more spice-forward, built on star anise, cinnamon, and fermented soybean paste rather than coconut milk or fish sauce alone. The bowls are traditionally small - vendors served them from boats on Bangkok’s canals, and small portions were practical for passing across wobbly water. It is common to eat three to five bowls in one sitting.
The nam tok variant - which means “waterfall” - includes blood stirred into the broth at the end. It thickens the liquid and gives it a velvety, almost silky body without tasting of iron. Most vendors in Thailand serve nam tok by default; you have to specifically ask for mai tok (no waterfall) if you want it without.
Frequently Asked Questions
Can I use store-bought meatballs instead of making them from scratch? Yes. Asian-style pork or beef meatballs from the frozen section of most Asian grocery stores work well. They are already seasoned and cooked, so just add them to the hot broth for 2 to 3 minutes to heat through. The texture will be slightly different from homemade, but the dish will still be delicious.
What if I cannot find galangal? Fresh ginger is the closest substitute. Use the same amount. Galangal has a sharper, more pine-like flavor, while ginger is warmer and spicier. The difference is noticeable but not deal-breaking.
Is this recipe spicy? The base broth is mildly spiced - warm from white pepper and chili paste but not hot. Heat comes from the condiments you add at the table: chili vinegar, roasted chili flakes, and fresh chilies. You control the heat level.
Can I use egg noodles instead of rice noodles? Yes. Thin egg wonton noodles (bamee) are a common alternative in Thailand. Boil them for about 1 minute, drain, and assemble as usual. The broth pairs well with both noodle types.
How many bowls does this recipe make? Four generous servings, or six small traditional-style portions. In Thailand, boat noodle bowls are intentionally small - most people eat two to three bowls per meal.
Sources
- Hot Thai Kitchen - Authentic Boat Noodles - Detailed authentic recipe with video tutorial
- The Hungry Goddess - Thai Boat Noodles with Pork Balls - Pork ball recipe and assembly guide
- Open Spicebox - Boat Noodles Recipe - Traditional nam tok preparation
Related Recipes
- Thai Basil Meatballs (Pad Kra Pao Style) - Another iconic Thai street food dinner
- Thai Red Curry Meatballs - Coconut-based Thai comfort
- Thai Green Curry Meatballs - Aromatic green curry with pork
- Indonesian Bakso Meatball Soup - Another Southeast Asian noodle soup with meatballs
- Asian Pork Meatballs with Ginger and Soy - Simple pan-fried pork meatballs
