Vietnamese National Dishes

Bánh mì xíu mại Đà Lạt — pork meatballs with dipping baguette

Tender pork meatballs simmer in a light tomato-and-stock broth with strips of pork skin. Serve the hot broth in bowls with warm Vietnamese baguette for dipping, plus scallions, cilantro and optional fresh chili.

Vietnamese National Dishes
Share
Two bowls of xíu mại and baguettes on a bright Đà Lạt table.
Two bowls of xíu mại and baguettes on a bright Đà Lạt table.
Yield 4 servings
Cook 45 minutes
Passive 20 minutes
Total 1 hour 40 minutes
Calories About 850 kcal per serving
Overview

Bánh mì xíu mại Đà Lạt — pork meatballs with dipping baguette

Bánh mì xíu mại Đà Lạt pairs Vietnamese pork meatballs with baguette, often served as a bowl of broth for dipping rather than only as a filled sandwich. Local and culinary recipes show both tomato-based and clearer stock-based broths, and toppings also vary. This version uses a light tomato-and-pork-stock broth, tender meatballs, pork skin, scallions and cilantro; the baguette is served alongside so it stays crisp until dipped.

A little softened bread and egg help the pork hold together, while mixing until tacky gives the meatballs a tender, cohesive texture. Poach them gently rather than boiling hard, and check the centre of the largest one with a thermometer. The broth should remain light enough to sip or dip into.

Practical

Practical

  • Keys to successUse ground pork with some fat; very lean mince can make dry meatballs. Soak and squeeze the bread binder so it blends into the meat without watering it down. Chill the shaped meatballs for 20 minutes to help them hold their shape. Keep the broth at a gentle simmer so the meatballs do not break apart. Warm the baguettes just before serving and keep them separate from broth until eating.
Ingredients

Ingredients

Pork meatballs

  • 600 g ground pork, about 20% fat
  • 1 large egg (about 50 g without shell)
  • 35 g stale baguette or soft white bread, crust removed, briefly soaked and squeezed dry
  • 60 g shallots, finely minced
  • 12 g garlic, finely minced
  • 25 ml fish sauce
  • 8 g sugar
  • 2 g fine salt
  • 2 g ground black pepper

Tomato broth

  • 30 ml annatto oil
  • 120 g yellow onion, cut into thin wedges
  • 400 g ripe tomatoes, diced
  • 120 g cooked pork skin, cut into bite-size strips
  • 1.2 L pork stock
  • 20 g tomato paste
  • 15 g rock sugar
  • 15 ml fish sauce, plus more to taste
  • 5 g fine salt, plus more to taste

To serve

  • 4 small Vietnamese baguettes (about 360 g total), warmed
  • 20 g scallions, thinly sliced
  • 10 g fresh cilantro leaves
  • 10 g fresh red or green chili, thinly sliced (optional)
Method

Method

Method

  1. Briefly soak the bread in water, then squeeze it dry. In a large bowl combine the pork, egg, softened bread, shallots, garlic, 25 ml fish sauce, 8 g sugar, 2 g salt and black pepper. Mix until tacky, shape into 16 small meatballs and refrigerate for 20 minutes.

  2. Heat the annatto oil in a wide heavy pot over medium heat. Add the onion and cook for 3–4 minutes until beginning to soften. Add tomatoes and tomato paste; cook for 5 minutes, stirring, until juicy and fragrant.

  3. Add pork skin, stock, rock sugar, 15 ml fish sauce and 5 g salt. Bring to a gentle simmer and cook for 10 minutes so the broth takes on the tomato flavor.

  4. Carefully lower the chilled meatballs into the simmering broth. Keep the liquid at a gentle simmer, not a rolling boil, and poach for 20–25 minutes until the centre of the largest meatball reaches 71°C / 160°F.

  5. Taste the broth and adjust with the remaining fish sauce or salt. If it tastes too sharp, simmer 2–3 minutes longer; keep it light enough for dipping baguette.

  6. Warm the baguettes in a low oven or dry pan until the crust is crisp and the centres are warm. Slice or tear them into manageable pieces.

  7. Divide meatballs and pork skin between four bowls and ladle over broth. Garnish with scallions, cilantro and chili if using. Serve at once with warm baguette for dipping.

Practical

Practical

Practical guidance

If annatto oil is unavailable, gently warm neutral oil with a small pinch of annatto seeds, then strain before using. Keep the broth at a quiet simmer; strong boiling can toughen the meatballs or break them apart. The pork skin should be fully cooked and tender before serving. Set baguette pieces beside the bowl so each person can dip them as they eat. Refrigerate leftovers within 2 hours and store bread separately.

Troubleshooting

Meatballs fall apart: Mix the pork until tacky and chill them before poaching. The broth turns cloudy: Lower the heat and avoid stirring after adding the meatballs. Meatballs seem dry: Use pork with some fat and avoid a hard boil. The broth tastes too acidic: Simmer a little longer and adjust with a small amount of rock sugar. The baguette gets soggy: Serve it separately and dip each piece at the table.

Frequently asked questions

Is this served as a sandwich or in a bowl? Both styles exist. In Đà Lạt, a common serving is a bowl of meatballs and broth with baguette alongside for dipping; the meatballs can also be placed inside the bread. Can I use a clear broth instead of tomato broth? Yes. Clearer stock-based versions are also made. This recipe uses a light tomato broth, but you can omit the tomato paste and reduce the tomatoes for a less tomato-forward bowl. Can I prepare the meatballs ahead? Yes. Shape them and refrigerate, covered, for up to one day before cooking. Keep them chilled until they go into the broth. What can replace annatto oil? Use neutral oil. A small amount of annatto oil adds color, but the recipe still works without it.

Nutrition per serving

Nutrition per serving

  • Serving sizeOne bowl with meatballs, pork skin, broth and one small baguette
  • CaloriesAbout 850 kcal
  • Carbohydrate66 g
  • Protein49 g
  • Fat43 g
  • Fibre4 g
  • SodiumAbout 1,500 mg
Allergens and safety

Allergens and safety

Contains egg, fish (fish sauce) and wheat (baguette and bread binder). Check packaged ingredients for additional allergens. Wash hands and equipment after handling raw ground pork, and keep garnishes and bread away from raw meat. Cook the centre of the largest meatball to 71°C / 160°F; color alone is not a reliable check. Refrigerate leftovers in shallow containers within 2 hours and use within 3–4 days or freeze. Reheat meatballs and broth to 74°C / 165°F.

Closing notes

Closing notes

  • Keep the baguette beside the bowl until each bite is dipped.
  • Simmer the meatballs gently for a tender texture.