This vegan char siu bao is a dim sum staple! There are so many different renditions online, but I wanted to avoid food colouring. Enter the traditional source of the red colouring: fermented red bean curd!
These vegan char siu bao are made with homemade seitan, although you can use tofu, rehydrated soy curls, TVP chunks, or even chickpeas! The key is the seasoning, and that’s done with some key ingredients:
Char Siu Sauce
- Red Fermented Bean Curd (AND the liquid from it!)
- Shaoxing cooking wine
- Hoisin or Oyster sauce (I would have used vegan oyster sauce of course)
- Five spice
- Sweetener (traditionally maltose but I preferred brown sugar)
I grew up eating the white fermented bean curd a lot with rice or mashed as a dipping sauce for blanched mustard greens. Red fermented bean curd is similar with a key difference: red yeast rice! The addition of red yeast rice is the traditional source for the red colour in char siu. But most often, you’ll see commercially made char siu made with red food colouring.
I find the fermented bean curd adds a silky, umami funky flavour that is so tasty! It makes the seitan in this recipe taste JUST like the char siu BBQ buns I grew up eating. Soy is a magical ingredient, y’all.
After trying so many different versions of this sauce, I finally got the right balance from a hot tip from my friend Carmy’s partner: use the liquid from the red fermented bean curd!
The liquid from the red fermented bean curd adds a depth of flavour, colour, and of course the right balance of salt! I found that other sodium sources like soy sauce overpowered the flavour of the char siu.
Char Siu Seitan
For my seitan in this post, I used Washed Flour Seitan, but stopped washing after the third wash. This meant it still had some starchy strands, then I let it rest for 30 minutes, and kneaded in the following:
- 2 tbsp beetroot powder
- 1 tbsp dark soy sauce
- 2 tsp mushroom broth powder
- 1 tsp onion powder
- 1 tsp garlic powder
- 1/2 tsp white pepper
It’ll look pretty nasty but it looks like this:
I let it rest for 30 minutes, then seared both sides in about 3 tbsp oil in a cast iron pan.
Again, I know it looks SUPER GNARLY but I swear it ended up pretty delicious! Once both sides have a golden crust, add 2 cups of vegetable broth. Simmered for 2 hours, covered.
Flip the seitan every 30 minutes until the broth has reduced and the seitan is fully cooked through. Let cool, then chill covered in the fridge for at least 6-8 hours. I cut up about 4 long strips to yield ~2 cups of seitan pieces for this recipe.
I made a “cheater” char siu with extra sauce and reduced the sauce on the stove with the seitan cubes. Then I broiled it for 3-5 minutes to get a bit of that charred flavour. One of these days I’ll remake this seitan, baste it in this sauce and throw it on the BBQ to get that epic, charred flavour!
30 Min Vegan Bao Dough
As for the bao dough, my recipe for the dough is different from most traditional char siu bao dough. I prefer a lighter, fluffier and airier bao, but the dough I commonly see is dense yet fluffy, sweet, and stiffer than this dough.
As a result, I didn’t really test this recipe to have the same texture as that traditional bao dough. But if you’d like a stiffer, sweeter dough, it looks like the dough from The Woks of Life achieves that texture with more cornstarch and sugar.
A lot of recipes use either milk or water, but my favourite doughs were always made with soy milk. But as long as you use the same amount of liquid overall, you can use any kind of milk alternative you like.
Bao is one of those things that seems like it would take a lot of time to make, but the dough only takes 30 minutes to proof. This is about the time it would take for you to prepare the filling and a steamer anyway.
For the size of my bao, I steamed for 20 minutes then let it sit for 5 minutes to finish setting. If you divided this recipe into 8 or 10 for smaller bao, you could get away with steaming this for 15 minutes and allow to rest for 5.
It’s important to turn off the heat and let the bao rest before disturbing or taking off the lid. Taking off the lid before this rest time means your buns might deflate, and nobody wants that!
Overall, from start to finish, this takes about 1 hour to pull together, with even a few minutes here and there for you to clean up some dishes between cooking time! I’ve been trying to “clean as I go” more often so that I don’t end up with 30 minutes of dishes later.
Cooking most dishes involves waiting around for 5-10 minutes at a time, and I’ve been capitalizing on those little pockets of time to clean. It’s led to way less stress over cleaning up afterwards! I don’t really know why I never did this before, I feel a bit silly about it. It’s definitely something I learned at my first job (at McDonald’s once upon a time!) so I don’t know why I never implemented it until now.
After experimenting with this recipe for a few months now, I am super proud of how these vegan char siu bao came out. The dough is fluffy and airy and the perfect vessel for this savoury vegan char siu. The texture of the fry simmer fry seitan cooked up so nicely and yields tender nuggets that hold up the sauce so well.
If you try this with tofu or soy curls, I recommend pressing out as much liquid as you can. Sear them with some oil to get a bit of texture before adding the sauce to cook down. Truly any vegan protein you like would work well here! The sauce is what gives this that char siu flavour!
For the full video with the cooking demo, check out my YouTube Video!
Char Siu Inspired By:
1 hour 5 minutes
For the bao dough:
- 250 g (2 cups) all purpose flour (11.5% protein)
- 30 g (1/4 cup) cornstarch
- 10 g (2.5 tsp) instant yeast
- 4 g (1 tsp) baking powder
- 1/2 tsp kosher salt
- Optional: 1 tbsp sugar
- 3/4 cup soy milk, warmed (I microwave for about 30 sec to be warm bath water temperature)
- 30 mL (2 tbsp) vegetable oil + 1 tbsp for the bowl
For the Char Siu Sauce:
- 2 tbsp shaoxing cooking wine
- 2 tbsp hoisin sauce
- 2 tbsp brown sugar (or more traditional: use maltose)
- 2 cubes of red fermented bean curd
- 2 tbsp of red bean curd liquid
- 1/4 tsp white pepper
- 1/2 tsp five spice powder
- 2 cloves garlic, finely minced/pressed
For the “meat”:
- Use 2 cups of your favourite meat substitute, like cubed seitan, cubed tofu, rehydrated soy curls or TVP (I used homemade seitan, see above in blog post)
- A steamer (I use a two layered stainless steel one but you can do this in two layers of bamboo steamers too)
- Prepare 6-8 parchment paper squares for your dough to steam on
- about 1 L of water for the steamer
- Optional: 1-2 tbsp of vinegar (if you’d like your baos to be whiter in the end)
For The Bao Dough
- In a large mixing bowl, combine flour, cornstarch, instant yeast, baking powder, kosher salt (and sugar if you’re using it) and gently whisk to combine.
- Add in your warmed soy milk (you can also use water but soy milk will yield a softer and richer dough) and vegetable oil and mix to form a tacky dough ball. Scrape out the bowl well onto a work surface to knead.
- You should be able to knead it without it sticking to your hands, if you find you need more, add about 1 tsp and knead until it’s easier to work with. The more flour you have, the stiffer the dough will be. I personally prefer really tender bao, so I try to avoid adding any more than in the recipe.
- Knead until you get a smooth dough that springs back when you poke it (about 5 minutes). Gather into a ball and tuck the seams in at the bottom to smooth.
- Add about 1 tbsp to the bowl and spread to coat the bowl. Add the kneaded dough in and turn to lightly coat in the oil. Let let rise for 30 min (smoothed seam down), covered in a warm place.
For the Char Siu Filling:
- In a nonstick and oven-safe pan (like a cast-iron or a NeverStick pan), combine shaoxing wine, hoisin sauce, brown sugar/maltose, red bean curd, red bean curd liquid, white pepper, five spice powder and minced garlic. Mash up the bean curd with a fork or a whisk and heat over medium heat to begin the reduction.
- Add in your preferred protein: I’ve used about 2 cups reconstituted soy curls (about 1 cup dehydrated) and I’ve used seitan before. Whichever your preference is, I just happened to have seitan prepared.
- Cook to reduce the sauce and toss to coat your protein of choice. Once the sauce has thickened and reduced well, broil in the oven on high for about 5 minutes until you get some charring.
- Remove from oven and transfer to a bowl to cool until cool enough to handle
For the Bao:
- Once your bao dough has doubled in size (~30 min), gently punch down the down and divide into 6 equal parts. I had about 430g of dough total, so I divded by 6 to get about 72g of dough per ball. You can make 8 bao instead though, and divide into ~53g per ball.
- Each piece of dough starts to form a dryish skin fairly quickly, so I generally like to tuck that inside the dough ball and then pinch the bottom seams, then cup my hand over the ball with the seams underneath, then roughly move my hand in a circular motion to seal the seam. Repeat with all your dough balls, then cover with a bowl or a damp kitchen towel to keep them from drying out.
- Preheat your pot of water or steamer pot over medium heat and bring the water to a boil while you prepare the bao. Add a splash of vinegar if you’d like your bao to be more white, but this is not necessary.
- Working with one dough ball at a time, gently flatten and roll out the ball into an even, 8-10 cm flat circle (about 3.5-4 inches). I like to make the edges thinner while keeping the middle a bit thicker so the pleating isn’t super thick on top.
- In the centre, add about 1/4-1/3 cup of the cooled char siu mixture and pleat the bao to envelop the char siu filling. I’m pretty bad at this, but as long as you pleat and pinch to secure well it should be fine. Place the pleated bao on parchment paper squares. Repeat until all your baos are ready!
- Steam your bao over the preheated steamer pot (covered) for 20 minutes, then turn off the heat (DO NOT REMOVE THE LID). This 5 min rest in the steamer allows for the bao to set so they won’t collapse once you remove them from heat.
- After 5 minutes, remove and enjoy immediately!