Vegan San Choy Bau Recipe: Flavorful Plant-Based Lettuce Wraps

These Chinese lettuce wraps, also known as vegan san choy bau, are packed with flavour, healthy and quick to prepare. Crisp lettuce leaves cradle a savoury vegetable and tofu stir-fry that works as a casual family meal or an elegant starter for a dinner party or Chinese New Year gathering. Vegan, gluten-free and nut-free, this san choy bau adapts well to guests with varied dietary needs.

Photo of 4 lettuce leaves with vegan san choy bau filling inside, placed on a blue-grey oblong plate with pan in the background and a chinese dish of hoisin sauce to the side.

San choy bau is a Cantonese starter commonly found in Chinese restaurants worldwide. Traditionally it pairs crunchy iceberg lettuce leaves with a minced pork mixture flavoured with classic Chinese aromatics. The appeal is the contrast between the cool, crisp lettuce and the hot, richly seasoned filling.

As a child I loved the contrast of textures in san choy bau, especially the crisp, juicy bite of water chestnuts. Their mild flavour and unique crunch make them a key ingredient for authentic texture. I still adore this dish, so here’s the vegan version I make at home. My recipe increases the vegetable content and swaps tofu for pork mince, resulting in a high-protein, flavourful filling that I find even more satisfying than many restaurant versions.

Overhead photo of vegan san choy bau in lettuce leaves on a blue-grey oblong plate on a jute mat underneath.

Many vegetarian san choy bau recipes use mushrooms as a mince substitute, but I prefer tofu for its higher protein content and neutral flavour—plus it’s popular with kids. If you don’t like tofu, minced tempeh or a plant-based mince works well too.

Stir-frying tips

The filling is a simple stir-fry. Follow these tips for the best results:

  • Stir-frying works best over high heat with constant motion. Food should sear quickly against the hot pan, then be moved so it cooks evenly without burning.
  • Prepare all ingredients before you start cooking. Stir-fries are fast, and having everything ready prevents overcooking while you chop.
Photo of vegan san choy bau filling cooked in a wok, with a plate of lettuce leaves to the side and some lime wedges.

Preparing and cooking mushrooms

  • Mushrooms act like little sponges and soak up liquid, which can make them soggy. Avoid washing mushrooms in water; brush them clean instead. Some varieties can be peeled, but don’t peel shiitake for this recipe.
  • When cooking mushrooms, add them together with other ingredients and stir immediately so oil and heat distribute evenly and they don’t sit and soak up oil.

Preparing tofu

If you don’t have extra-firm tofu, press the block before cooking. Use a tofu press or place the tofu between kitchen towels, put a plate on top and weigh it down with cans or a heavy pan. Drain periodically and press for an hour or more. After pressing, pat dry and chop into small pieces for a mince-like texture.

Ingredient notes

Vegetables and protein

  • Extra-firm tofu – ideal because it keeps shape and is easy to chop small. Firm tofu pressed well is a good alternative. You can also use plant-based mince if preferred.
  • Garlic and ginger – the base aromatic flavours. Grate ginger with a microplane for the best texture.
  • Vegetables – spring onions, shiitake mushrooms, carrot, baby corn, sugar snap peas and celery make a colourful, crunchy mix. Swap or omit vegetables to suit tastes.
  • Water chestnuts – essential for the crisp, juicy texture typical of san choy bau. Drain canned chestnuts and chop small before adding.
  • Little gem or iceberg lettuce – iceberg gives the authentic crunch but tears easily; little gem is easier to handle and holds the filling well for home serving.
Photo of all the ingredients to make Vegan San Choy Bau.

Sauce ingredients

  • Cornstarch – thickens the sauce to a glossy finish so the filling doesn’t drip out of the leaves. Arrowroot can substitute.
  • Tamari – a gluten-free alternative to soy sauce. Use gluten-free soy or coconut aminos if preferred.
  • Rice wine vinegar – adds brightness. Substitutes: mirin or apple cider vinegar in a pinch.
  • Brown rice syrup – gentle sweetness; maple syrup works too.
  • Toasted sesame oil – use toasted for a deeper nutty flavour.
  • Hoisin sauce – many commercial hoisins contain gluten; choose a gluten-free version or use a homemade gluten-free hoisin if needed.

How to make vegan san choy bau

With everything prepped, the recipe comes together quickly:

  • Mix the sauce ingredients in a small cup and set aside.
  • Chop all vegetables and the tofu into very small pieces so the filling resembles mince.
  • Heat oil in a wok or large frying pan and stir-fry aromatics and mushrooms first, then add carrot, celery and baby corn, followed by tofu, water chestnuts and sugar snap peas in sequence so everything cooks evenly.
  • Stir the sauce so it is fluid again, add to the pan, and let it bubble while stirring for about 2 minutes until the sauce thickens and coats the ingredients.
  • Spoon the filling into chilled lettuce leaves and garnish with sliced spring onions and sesame seeds.
Photo of stir-frying garlic, ginger, mushrooms and spring onions.
1. Stir-fry garlic, ginger, mushrooms and spring onions.
Photo of stir-frying vegan san choy bau after carrot, baby corn and celery added.
2. Add carrot, celery and baby corn.
Photo of stir-frying vegan san choy bau after tofu and water chestnuts added.
3. Add tofu and water chestnuts.
Photo of sauce being added to the san choy bau mixture in the pan.
4. Add sauce and simmer until glossy.

For full ingredient quantities and step-by-step timings, see the recipe card below.

How to keep lettuce leaves crisp

Soak separated leaves in iced water for five minutes, drain and dab dry with a clean tea towel. Arrange on a plate lined with kitchen towel and refrigerate with a towel over the top until ready to serve. This keeps leaves cold and crisp for serving.

Photo of a bowl of lettuce leaves soaking in iced water.
1. Soak in iced water for 5 minutes.
Photo of lettuce leaves drying on kitchen towel.
2. Dry on kitchen towel and refrigerate.

Serving suggestions

These vegan lettuce wraps are ideal for Chinese New Year, a party starter or a relaxed family meal where everyone builds their own wraps. Little gem leaves produce hand-sized portions (about three bites each) and are less messy if not overfilled. Alternatively, serve the filling over rice or with crackers for guests who prefer not to eat lettuce.

Photo of a hand holding a lettuce leaf filled with vegan san choy bau filling.

Variations

  • Swap or adjust vegetables to suit taste, keeping them finely chopped so the filling cooks quickly and has a mince-like texture.
  • Use plant-based mince for an even faster version that skips tofu preparation.
  • Serve with rice for family members who won’t eat lettuce.

Leftovers

Store any remaining filling in a sealed container in the fridge for up to 3 days, or freeze for longer storage. Reheat and serve with rice or roasted vegetables for an easy second meal.

Vegan San Choy Bau FAQs

Which lettuce is best for Chinese lettuce wraps?

Iceberg lettuce is traditional for its crispness, but little gem lettuce is easier to separate into intact leaves and holds the filling better for home service.

How long will leftover filling keep?

Store in a sealed container in the fridge for up to 3 days or freeze for longer storage.

📖 Recipe

Vegan San Choy Bau
Crisp lettuce leaves served with a savoury tofu and vegetable stir-fry. Ready in about 30 minutes, serves 4.

Ingredients

Sauce

  • 1 tbsp cornstarch (mixed with 2 tsp water)
  • 4 tbsp water
  • 1 tbsp tamari
  • 1 tbsp hoisin sauce (use gluten-free if needed)
  • 2 tsp rice wine vinegar
  • 1 tsp brown rice syrup (or maple syrup)
  • 1 tsp toasted sesame oil

Stir-fry

  • 1 block extra-firm tofu (or pressed firm tofu)
  • 2 tbsp grapeseed or other neutral oil
  • 2 garlic cloves, minced
  • 1 cm piece ginger, grated
  • 2 spring onions, thinly sliced
  • 30 g shiitake mushrooms, chopped small
  • 1 carrot (100 g), grated
  • 80 g baby corn, thinly sliced
  • 60 g water chestnuts, drained and chopped
  • 60 g sugar snap peas, thinly sliced
  • 30 g celery, chopped small

To serve

  • Iceberg or little gem lettuce, leaves separated
  • Sliced spring onions and sesame seeds to garnish

Instructions

  1. Make the sauce: mix cornstarch with 2 tsp water, then whisk in the remaining sauce ingredients and set aside.
  2. Prep ingredients: chop tofu and vegetables into small pieces so the mixture resembles mince.
  3. Heat oil in a wok. Add garlic, ginger, spring onions and mushrooms and stir-fry for about 1 minute.
  4. Add carrot, celery and baby corn and stir-fry 2 minutes.
  5. Add tofu, water chestnuts and sugar snap peas and stir-fry another 2 minutes.
  6. Stir the sauce so it is fluid again, add to the pan and cook while stirring for 2 minutes until the sauce becomes glossy and thick. Adjust seasoning with extra tamari, hoisin, vinegar, sesame oil or syrup as needed.
  7. Spoon into chilled lettuce leaves and garnish with sliced spring onions and sesame seeds.

Notes

  • Soak lettuce in iced water and refrigerate to keep leaves crisp.
  • Press tofu if not using extra-firm to remove excess moisture.
  • Hoisin can contain gluten—choose a gluten-free version or use a homemade gluten-free hoisin alternative.

Nutrition (per serving, approximate)

Calories: 200 kcal | Carbohydrates: 18 g | Protein: 10 g | Fat: 11 g | Sodium: 406 mg | Fiber: 2 g

More vegan and gluten-free Asian recipes

If you enjoy this vegan san choy bau, try other plant-based Asian recipes featuring tofu, tempeh or gluten-free sauces for more family-friendly meals.

  • photo of a wok containing vegan chinese green beans and tempeh recipe on a butcher block surface
  • Close-up photo of a shallow Chinese bowl filled with homemade hoisin sauce and a Chinese ceramic spoon
  • photo of a blue oblong plate filled with crispy air fried tofu with spring onion sprinkled on top
  • Photo of thai basil vegan stir fry with white rice in a dark grey bowl

If you try this recipe, please rate it on the recipe card!