These Chinese lettuce wraps (a.k.a. vegan san choy bau) are full of flavour, healthy and super easy to prepare! Crisp lettuce leaves served with a tasty vegetable and tofu stir-fried filling, they can be a fun family meal at home or garnished beautifully and served as a starter for a dinner party or Chinese New Year celebration. Vegan, gluten-free and nut-free, san choy bau is great to serve to guests with different dietary requirements too!
San Choy Bau is a Cantonese dish often served as a starter in Chinese restaurants around the world. Also known as san choi bow or simply as Chinese lettuce wraps, it is basically lettuce leaves filled with a tasty pork mince mixture with classic Chinese aromatic flavours. In restaurants, it is usually served with perfect ice-cold crisp lettuce leaves dripping with condensation.
When I was little, san choy bau was my all-time favourite dish at our local Chinese restaurant. I loved the juxtaposition of the cold crisp lettuce leaves against the hot tasty mince mixture inside but the thing I loved the most was the distinctive texture of the water chestnuts chopped into the mixture. They are crunchy but kind of juicy at the same time. It’s difficult to describe! Think of an apple but without the sharp sweet flavour. In fact, it’s a soft fairly neutral flavour so it’s all about the texture!
I’m still an absolute sucker for this dish so this is the vegan version I make at home. Surprise surprise, my version contains more vegetables than the restaurant version (because, well you know, I always like to sneak in more veggies!) and I use tofu rather than pork mince. But the taste is still sensational and I think the extra veggies actually enhance it!
I notice a lot of vegetarian san choy bau recipes use mushrooms in place of pork mince but I like to use tofu instead so that it has enough protein for a complete meal (and partly because my kids are not fans of mushrooms so this would be less popular with them if I used mushrooms instead!). If you're not a fan of tofu, you could use minced tempeh or any plant-based mince instead.
Stir Frying Tips
The filling is essentially a stir-fry and there are a few tips to keep in mind for stir-frying success!
- Stir frying needs a high heat and almost constant agitating with a spatula or spoon. The idea is that whatever is touching the pan at any time is fried very quickly against the very hot metal of the pan and then moved by frequent stirring so that it cooks through without burning.
- Since it is such a quick method of cooking and requires your undivided attention, it is best to prepare all the ingredients in advance. That way, you can focus fully on your cooking and not burn anything while frantically trying to chop something at the same time! It may seem like a bit of a bore to chop everything before you start but it means that once the chopping is done, the dish comes together in a matter of minutes in the pan!
Tips for Prepping and Cooking Mushrooms
- The thing to remember when working with mushrooms is that they are like little sponges. They soak up any liquid they come into contact with, and that can make them soggy and unpleasant to eat. So… do not wash mushrooms in water and do not cook them in too much oil!
- Instead of washing mushrooms, just brush the dirt off with a pastry brush (or for some kinds of mushrooms, you can peel them – but not for the shitake mushrooms in this recipe!).
- When cooking mushrooms, add them with other ingredients and stir them straight away so that the oil is distributed evenly around all the mushrooms and not just those that first landed on it (they will suck it up quickly if you leave them there!).
How to Prepare Tofu For This Recipe
Unless you are using extra-firm tofu, you will need to press the tofu first. The easiest way to press tofu is in a tofu press but if you don’t have such a thing, it’s fine! Instead, you can use a plate and something heavy to weigh it down.
- Take the tofu out of the packet and drain off the liquid.
- Then pat with some kitchen towel and place on a plate lined with fresh kitchen towel.
- Lay more fresh kitchen towel on top and then place a plate on top of that and a weight (tins of beans or a cast iron pan work brilliantly for this).
- Leave for an hour or more, draining the liquid off every now and then.
- Once it has stopped leaking liquid, you can remove the weights and dab the tofu with a little more fresh kitchen towel (yes more kitchen towel! This is why I like to use a tofu press instead!) and then you’re good to go!
- Extra firm tofu - For this recipe, I like to use the extra firm tofu that doesn’t need pressing (like the To-foo brand or the Taifun Japanese tofu fillets). They are easy to chop into tiny pieces because they are so firm. However, you can also use firm tofu and press it first (see above for instructions on how to press tofu). Alternatively, if you prefer, you can use any plant-based mince instead.
- Garlic and ginger – for background flavour. (Really all my cooking starts this way!). To prepare ginger, it is best to use a fine microplane and grate it. I like to keep it peeled in the freezer and then it’s really easy to grate.
- Vegetables - spring onions, shiitake mushrooms, carrot, baby corn, sugar snap peas, celery – feel free to change to whatever vegetables your family likes best but this combination works well for us!
- Water chestnuts – to me these are essential for giving the true san choy bau texture! You can usually find them in small half sized tins in the canned section of the supermarket. You just open the tin, drain them in a sieve or colander and then use. Easy! Once you try them, you might find yourself adding them to all your stir fries!
- Little Gem or Iceberg Lettuce – For true authenticity, you should use crisp cold iceberg lettuce leaves. However, they are very delicate and easily torn, so I usually use little gem lettuce leaves instead which are quicker and easier to tear apart and hold the filling nicely in hand sized portions!
- Cornstarch – for thickening the sauce to give a glossy thick consistency to the filling. This is essential otherwise your sauce will become a dripping mess in your lettuce leaves! You could substitute for arrowroot which can be used in the same way as cornstarch.
- Tamari – since I am gluten-free, I like to use the Japanese naturally gluten-free tamari instead of soy sauce. Feel free to substitute for gluten-free soy sauce or coconut aminos instead if you prefer.
- Rice wine vinegar – you need this for adding a touch of sharpness. If you don’t have any rice wine vinegar, you could substitute with mirin or apple cider vinegar.
- Brown rice syrup – this adds a little sweetness without adding any particular flavour. However, you can use maple syrup instead, if you prefer.
- Toasted Sesame oil – make sure to use toasted sesame oil rather than plain sesame oil. It has a much deeper flavour and will really enhance your dish.
- Hoisin sauce – I always have some of my homemade hoisin sauce in the fridge so I tend to use that. You can make the dish without this sauce if you like but I do like the depth of flavour that it contributes.
Please see the printable recipe card at the bottom of this post for quantities of ingredients.
How to Make Vegan San Choy Bow
As for most stir fries, if you prep everything in advance, this dish comes together very quickly and easily!
- First, mix together the sauce ingredients in a little cup and set aside.
- Next, prep all the vegetables and the tofu. Cut the vegetables and tofu into very small pieces so that the filling has a mince-like texture.
- Next heat the oil in a wok or large frying pan and stir fry the vegetables and tofu in the order listed in the recipe card at the bottom of this post.
- Add the sauce ingredients and stir, bubbling, for 2 minutes until thick and glossy.
- Serve spooned into lettuce leaves.
Please see the printable recipe card at the bottom of this post for full instructions.
How To Get Lettuce Leaves Crisp
To crisp up the lettuce leaves, you need to first soak them in a bowl of iced water for 5 minutes. Then drain and dab dry with a clean tea towel. Place on a plate lined with kitchen towel. Keep the plate in the fridge with a piece of kitchen towel on top, until ready to serve.
This vegan san choy bau would make a wonderful starter for Chinese New year celebration or as a more substantial finger food at a party. If using little gem lettuce leaves, each leaf would be about 3 mouthfuls and if they aren’t stuffed too full, they wouldn’t be too messy to eat politely!
Alternatively, serve as a family meal at home for a fun meal where everyone gets to help themselves and make their own wraps. My kids love this kind of meal – the eldest has the san choy bau mixture in the lettuce leaves whereas the other two won’t go near lettuce so they have it in a bowl with rice instead. Either way, they all love this meal and it’s easy to tailor to each person in the family as the adults can add some chilli sauce too!
You can also do the same idea with this Thai basil vegan stir-fry filling instead.
It is so easy to adapt this dish to your personal likes and dislikes.
- Chop and change the vegetables to your own taste. Just make sure to cut all the vegetables into small pieces so that it all cooks quickly and you end up with a mince-like consistency for filling the lettuce leaves.
- You could also use plant-based mince instead of the tofu and that would make it even faster since you cut out the tofu preparation!
The san choy bau filling is easy to re-purpose as another meal with rice the next day and perhaps some air fried tender stem broccoli to go with it on the side (5-8 mins at 180°C/350°F). Just keep in a sealed container in the fridge and use within 3 days.
Vegan San Choy Bau FAQs
Traditional Chinese restaurants will serve san choy bau with beautiful crisp Iceberg lettuce leaves. However, I rarely have the patience for carefully peeling off layers of Iceberg lettuce since they tear so easily. So, for serving at home, although less authentic, I prefer using little gem lettuce instead. It doesn’t have the same crispy texture but it is infinitely easier to peel off in perfect leaves, it is the perfect shape for holding in your hand neatly and it is a little more forgiving when trying to use it to wrap around a filling! So, I often sacrifice authenticity for convenience in this respect. Feel free to go for the authentic iceberg lettuce if you have more patience than me though!
You can keep it in a sealed container in the fridge for up to 3 days or in the freezer for up to 6 months. (See the leftovers section below for ideas of how to serve it).
📖 Recipe 📖
Vegan San Choy Bau
- 1 tablespoon cornstarch, (mixed with 2 teaspoon water)
- 4 tablespoon water
- 1 tablespoon tamari
- 1 tablespoon hoisin sauce
- 2 teaspoon rice wine vinegar
- 1 teaspoon brown rice syrup
- 1 teaspoon toasted sesame oil
- 1 block extra-firm tofu, (or firm tofu, pressed)
- 2 tablespoon grapeseed oil (or other flavourless oil)
- 2 garlic cloves, minced
- 1 cm piece ginger, grated
- 2 spring onions, thinly sliced
- 30 g shiitake mushrooms, chopped small
- 1 carrot (100g), grated
- 80 g baby corn, thinly sliced
- 60 g water chestnuts, drained and chopped small
- 60 g sugar snap peas, thinly sliced
- 30 g celery, chopped small
- iceberg or little gem lettuce, separated
- spring onions, thinly sliced
- sesame seeds
- First make the sauce. In a small jug or cup, mix the cornstarch with 2 teaspoon of water to make a thin liquid. Add the rest of the sauce ingredients and stir well. Set aside.1 tablespoon cornstarch, 4 tablespoon water, 1 tablespoon tamari, 2 teaspoon rice wine vinegar, 1 tablespoon hoisin sauce, 1 teaspoon brown rice syrup, 1 teaspoon toasted sesame oil
- Next, prep the tofu and vegetables (they don't have to be neat):- chop the tofu into very small pieces;- mince the garlic cloves and grate the ginger with a microplane;- peel and coarsely grate the carrot with a box grater;- thinly slice the spring onions, baby corn and sugar snap peas;- chop the shiitake mushrooms, water chestnuts and celery into small pieces.
- Heat the oil in a wok or a large frying pan. When the oil is hot, add the garlic, ginger, spring onion and mushrooms and stir fry for 1 minute.2 tablespoon grapeseed oil (or other flavourless oil), 2 garlic cloves, 1 cm piece ginger, 2 spring onions, 30 g shiitake mushrooms
- Add the carrot, celery and baby corn and stir fry for 2 minutes.1 carrot (100g), 30 g celery, 80 g baby corn
- Add the tofu, water chestnuts and sugar snap peas. Stir fry for another 2 minutes.1 block extra-firm tofu, 60 g water chestnuts, 60 g sugar snap peas
- Stir the sauce ingredients together again to go back to being a thin liquid, then add to the pan with the vegetables and tofu. Stir well and let it bubble for 2 minutes while stirring. You will see it thicken up as you stir. (Do not stop stirring or you will get lumps of cornstarch)
- Taste the mixture and adjust the flavour to your taste by adding more tamari, hoisin, rice vinegar, sesame oil, or brown rice syrup as necessary. If the mixture is too dry, add more water. If it is too wet, then add a touch more cornstarch mixed with a little water and simmer on a low heat for a couple more minutes to cook off the flour.
- Serve spooned into lettuce leaves and garnish with sliced spring onions and sesame seeds.iceberg or little gem lettuce, spring onions, sesame seeds
- See the blogpost for tips on how to get the lettuce leaves really crisp.
- Substitute the tofu for plant-based mince if you prefer.
- Press the tofu if it is not extra-firm. (See the blogpost for full instructions on how to press tofu).
Did you make this recipe? Please leave a ⭐ star rating ⭐ on the recipe card!
More Vegan and Gluten-Free Asian Recipes
If you like this vegan san choy bau recipe, you may like these other delicious vegan and gluten-free Asian recipes too: