CookSnap is coming soon — Join the waitlist →

Banh Mi Xiu Mai

Crispy Vietnamese sandwich stuffed with savory pork meatballs, pickled vegetables, and fresh herbs. A handheld classic that balances sweet, salty, sour, and umami in every bite.

Total time
45 min
Servings
2
Calories
580
Protein
22g
Banh Mi Xiu Mai
vietnameseporksandwichstreet foodcomfort food

Ingredients

  • ½ lb ground pork
  • 2 tablespoons minced shallots
  • 1 teaspoon minced garlic
  • 1.5 teaspoons fish sauce
  • ½ teaspoon soy sauce
  • ¼ teaspoon granulated sugar
  • ⅛ teaspoon ground black pepper
  • 2 tablespoons vegetable oil for frying
  • ½ cup rice vinegar
  • ½ cup water
  • 2 tablespoons granulated sugar
  • 1 teaspoon kosher salt
  • 2 whole large carrots, julienned
  • 1 cup daikon radish, julienned
  • 2 whole Vietnamese baguettes (bánh mì)
  • 2 tablespoons mayonnaise
  • 2 tablespoons pâté (liver or chicken)
  • ¼ cup fresh cilantro leaves
  • 2 tablespoons fresh Thai basil leaves
  • 2 tablespoons thinly sliced jalapeños
  • ½ whole cucumber, julienned

Instructions

  1. 1

    Start by making the pickled vegetables — they need time to develop flavor. In a small saucepan, combine 0.5 cup rice vinegar, 0.5 cup water, 2 tablespoons granulated sugar, and 1 teaspoon kosher salt. Bring to a boil over medium-high heat, stirring until the sugar dissolves completely, about 1-2 minutes. Remove from heat and let cool for 3-4 minutes.

  2. 2

    While the brine cools, peel 2 large carrots with a vegetable peeler and carefully julienne them using a mandoline or sharp knife into thin, matchstick-sized pieces about 2 inches long. Peel a 3-inch piece of daikon radish and julienne it the same way. You should have about 1 cup of daikon.

  3. 3

    Pour the slightly cooled brine over the carrots and daikon in a glass bowl or small container. Stir to combine and set aside at room temperature for at least 20 minutes while you prepare the meatballs — the longer it sits, the more flavorful it becomes.

  4. 4

    Now you're ready to make the filling. In a medium bowl, combine 0.5 lb ground pork, 2 tablespoons minced shallots (peel and finely mince them first), 1 teaspoon minced garlic, 1.5 teaspoons fish sauce, 0.5 teaspoon soy sauce, 0.25 teaspoon granulated sugar, and 0.125 teaspoon ground black pepper. Using your hands or a wooden spoon, mix gently but thoroughly until just combined — overworking the meat makes the meatballs tough and dense.

  5. 5

    Dampen your hands slightly with cool water to prevent sticking, then roll the meat mixture into 12-14 meatballs about the size of large grapes (roughly 1 inch in diameter). Place them on a small plate.

  6. 6

    Set a 10-inch nonstick skillet over medium-high heat. Add 2 tablespoons vegetable oil and let it heat for about 1 minute — you'll know it's ready when it shimmers and a meatball sizzles immediately on contact.

  7. 7

    Carefully place the meatballs in the hot oil — don't crowd the pan; work in batches if necessary. Let them cook undisturbed for 2-3 minutes, listening for a steady sizzle. Then gently roll each one to brown the other side, another 2-3 minutes. The meatballs should develop a deeply browned, caramelized exterior and be cooked through (internal temperature 160°F on an instant-read thermometer). Transfer to a plate lined with paper towels.

  8. 8

    Slice the 2 Vietnamese baguettes in half lengthwise — try to keep the two halves connected at the hinge if possible. Lightly toast them cut-side up on a baking sheet under the broiler for 1-2 minutes until just crispy on the outside but still tender inside, then remove.

  9. 9

    Spread about 1 tablespoon of mayonnaise on the inside of each baguette bottom, then add 1 tablespoon of pâté on top. The warmth of the bread will soften these spreads slightly, creating a creamy base.

  10. 10

    Divide the cooked pork meatballs evenly between the two sandwiches, placing them in a single layer on top of the pâté.

  11. 11

    Using a slotted spoon or fork, transfer about half the pickled carrots and daikon from the brine to each sandwich, distributing them evenly. Let any excess brine drip back into the bowl — you want flavor but not a soggy sandwich.

  12. 12

    Add a generous handful of fresh cilantro leaves and 1 tablespoon Thai basil to each sandwich. Arrange about 1 tablespoon sliced jalapeños on top and tuck in julienned cucumber from 0.5 of a medium cucumber — the cool, crisp vegetables provide a textural contrast to the warm meatballs.

  13. 13

    Close the baguettes carefully. Wrap each sandwich tightly in parchment paper to hold everything together and catch any drips. Cut in half on the diagonal for easier eating, then serve immediately while the meatballs are still warm and the bread is crispy on the outside.

Tools you’ll need

  • small saucepan
  • vegetable peeler
  • mandoline or sharp knife
  • glass bowl
  • medium mixing bowl
  • 10-inch nonstick skillet
  • instant-read thermometer
  • plate
  • paper towels
  • baking sheet
  • broiler
  • slotted spoon or fork
  • parchment paper
  • serrated bread knife

Cook smarter

Get matched recipes for what’s in your fridge

CookSnap is a free iOS app that finds real recipes from the ingredients you already have. No more grocery-list aspirations.