*This post may contain affiliate links. Read more »
When I cooked in Manilla at the World Street Food Congress, folks were insisting I get to know lumpia, the Philippines’ answer to spring rolls. Make this vegan Lumpiang Shanghai recipe and find out why my team of over 400 recipe testers can’t get enough of these crispy, delicious rolls!


Enter your email & I'll send it to your inbox. Plus, get great new recipes from me every week!
By submitting this form, you consent to receive emails from Cinnamon Snail.
Of course you can eat these just on their own, but they are the perfect thing to dip into chili garlic sauce, homemade sambal oelek, or a little puddle of my sriracha recipe, poured out for your dead homies.
Since learning to make them in the Philipinnes, I have taught the art of vegan Lumpiang Shanghai at cooking classes at the prestigious De Gustibus cooking school in New York, as well as my own online vegan Filipino cooking class.
This is the kind of recipe that makes you wonder why you haven't tried making it at home sooner—especially when you learn it can be whipped up in under 30 minutes and with just a handful of ingredients. No matter if you’re a super skilled chef or a kitchen newbie who practically can’t hold a knife without accidentally committing a crime, the details I lay out in this vegan lumpia recipe pretty much guarantees you’ll achieve super-yum crispy, golden glory.
Jump to:
🤷♀️ What are Lumpia?
Like so many dishes in the culinary crossroads that is vegan Filipino cuisine, lumpiang Shanghai has its roots steeped in the cooking traditions from many regions. Originally adapted from Chinese egg rolls, and Thai spring rolls, it has evolved to be a pretty famous Filipino staple, often served at festive gatherings and family dinners alike.
Lumpias are made with countless types of fillings. But the most popular variety, called lumpiang Shanghai traditionally use a mix of ground pork and vegetables, gets a vegan makeover in this recipe with tofu that’s first been turned quite meaty through magic and hundreds of years of prayer.


🤫 Learn the secrets for perfect vegan Filipino meals
This guide to my most popular plant-based recipes from the Philippines is 100% FREE, & you'll love the actual heck out of it 🥰
🥰Why you'll love this vegan lumpia recipe
✌️ Two options for the meaty filling: Want to make these faster? My recipe has the option to use store-bought vegan meat. But if you are like me and want to make our Filipino spring rolls from scratch, I also give instructions on making a tofu based beef filling that is kinda outrageously rad. I mean, not to toot my own horn. But, it is.
💨 Air Frying Options: Don’t want to consume so much oil? This recipe has been carefully tested in air fryers too, and I am gonna give you all the details about making them that way too.
🕒 Quick and Easy Prep: From start to finish, this recipe takes under 30 minutes, perfect for busy weeknights or impromptu gatherings. They can also be made ahead of time, frozen, and crisped back up for when you have guest to feed at a moment’s notice.
✅ Tested and Approved Worldwide: Like all of the vegan Filipino recipes I share, after perfecting it, I shared it with a massive team of recipe testers who successfully replicated it across the globe. Only after I got back feedback from them did I share it with folks like you on the wild, open seas of the internet…
🌶️ Ingredients in vegetarian lumpiang shangai

Tofu (Tao-hoo)
Filipinos do some rad things with tofu, like adding it to their adobong sitaw, making breakfasts like taho with it, and even making vegan sisig with it! Extra firm tofu that’s been pressed dry, crumbled and cooked until golden, becomes even more meaty when the liquid seasonings in this recipe have a chance to get caramelized and absorbed. This is the same sort of thing I do to give tofu a meaty consistency for the vegan chorizo I use to stuff my vegan taquitos with, and for the meaty topping of my vegan sushi bake.
Anyway, just use extra firm, not silken, soft or any other wacky kind of tofu for this recipe, ok?
Hoisin Sauce
You might know hoisin sauce already from vegan Vietnamese recipes like tofu banh mi and Vietnamese peanut sauce. Hoisin sauce adds umami and sweetness to the tofu meat component. So if you are making the version of this recipe with store-bought vegan meat, you aren’t gonna even need it up in here, what with its sweet, salty, and umami-rich profile.
If you can’t get hoisin sauce a great substitute is my kecap manis recipe, or store-bought vegetarian oyster sauce.
Sesame Oil (Atasi Oil)
A small amount of sesame oil imparts a nutty aroma and steps up the complexity of the lumpia filling. Use toasted sesame oil for a more pronounced flavor, which is why I turn to it for my Korean cucumber salad and Korean tofu soup, or substitute with another nut oil like olive oil, or peanut oil.
Vegan Beef Crumbles or Ground Seitan:
If you aren’t gonna use the suggested tofu beef (I think you really should!), these meat substitutes provide texture and protein to the filling, mimicking the traditional ground meat used in lumpiang Shanghai. If you are using something like Beyond Meat, or Impossible beef, make sure it gets fully cooked and seasoned before wrapping it in the lumpia wrapper.
As an alternative, you can grind up my homemade seitan, or roasted vegan ham, which is an easy hack I do in my banh bao chay and vegan kofta recipe.
Frozen Spring Roll Wrappers or Lumpia Wrappers
These thin pastry wrappers are essential for encasing the filling and frying into crispy lumpia. You can either use frozen pastry spring roll wrappers, like you would use for making Thai spring rolls, or use the more purpose built frozen lumpia wrappers interchangeably. The only real difference is that lumpia wraps tend to be round, thinner, and slightly more porous than spring roll wrappers.
Gluten free? You can also make lumpia wrapped in rice paper wrappers (like what you would use to make vegan spring rolls or banh trang tron). I don’t honestly love fried rice paper though, because they can have a much more “stick to your teeth” vibe. But if you are GF, at least they are an option for ya.
*See the recipe card at the bottom of the page for exact quantities, nutritional info, and detailed cooking directions.
🤯Variations
Lumpiang Toge (Mung Bean Sprout Lumpia)
A popular Filipino variation that substitutes the meat with mung bean sprouts. Roughly chop the bean sprouts, and add them to the sauté pan at the same time you would have otherwise used the vegan meat in this recipe. Wrap and fry as usual for a lighter, veggie-packed alternative.
Lumpiang Hubad (Naked Lumpia)
Originating from Pampanga, Philippines, this variation serves the lumpia filling without the wrapper, similar to a deconstructed spring roll. Cook the tofu ground beef or vegan beef crumbles with sautéed vegetables and seasonings. Serve it as a salad or lettuce wrap with a side of vinegar dipping sauce or vegan nuoc cham for a refreshing, summery, low-carb option.
📖 How to make vegan lumpiang Shanghai
Nail these plant-based Filipino spring rolls on your first shot by following these step-by-step photos with helpful tips. Or scroll down to the bottom of this page for the easy-to-print recipe card.

Step One
Start a Beef:
Press the tofu to remove excess water and crumble it into small pieces. Heat oil in a large skillet over medium-high heat, add the crumbled tofu, and cook for 7 minutes until it starts to brown.
✅ If you are using store-bought plant-based meat, or ground seitan, you can skip these first two steps.

Step Two
Flavor Power-Up:
Stir in the hoisin sauce, tamari, and tomato paste, and continue to cook for 3-4 minutes until the mixture is well combined, caramelized, and darker in color. Set aside to cool.

Step Three
Sauté the Veggies:
Heat sesame oil in a large skillet over medium heat. After 90 seconds when the oil is hot, add minced garlic, carrots, cabbage, red onion (or shallots), and scallions. Sauté for 7 minutes until the veggies are tender.

Step Four
Combine Filling Magic
Add plant based ground meat or ground seitan (or the prepared tofu ground beef if using). Stir in the tamari, ground black pepper, and sugar, and cook for 5 minutes until everything is well mixed and heated through. Allow the filling to cool for 10 minutes to make it easier to handle.

Step Five
Roll Up:
Place a wrapper on a clean surface with one flat edge pointing towards you (unless using round lumpia wrappers). Spoon roughly 3 tablespoons of the filling (thats the same thing as a ¼ measuring cup filled up ¾ of the way) in a 4-inch long shape onto the wrapper near the edge closest to you.
Fold the corner over the filling, then fold in the sides and roll up tightly, sealing the edge by bruising both the inside and outside of the seam with a cornstarch and water slurry.

Step Six
I Fry ‘em Fine:
Heat about ¼ cup of neutral tasting oil (canola, peanut, vegetable, or sunflower) in a deep skillet or frying pan over medium heat. When the oil reaches 350°F (180°C), fry the lumpia in batches until golden brown and crispy.
✅ Air-Fry Option : Preheat your air fryer to 400°F (200°C), spray the lumpia with cooking spray, and cook in batches for 10 to 12 minutes until crispy and golden, turning halfway through.

Step Seven
Cool Your Jets:
Transfer the cooked lumpia to a wire rack to cool for a few minutes, so as not to melt your friggin' face off.
✅ I like to place a baking sheet under the wire rack to catch any of the drips of oil to make clean up a little faster and easier.

Step Eight
Now, Smash Mad Lumpiang!
Serve the lumpia hot with sweet chili sauce, or chili garlic sauce on the side, if desired, and garnish with thinly sliced scallions and cilantro.
💡Serving Ideas
I mean these vegan lumpia shanghai are pretty damned legit on their own, or with a side of sweet and sour sauce, but by golly, you can’t ONLY survive spring rolls I guess…
Some veggie sides you can serve with these? Well my faves from the Philippines would be ensaladang talong, ginitaang kalabasa, langka cooked in coconut milk with chilies, and laing (coconut milk stewed taro leaves).
These go great as a side to a soup like Filipino ginisang munggo, or even Thai tom kha soup!
Of course you could rock a nice salad with these fried spring rolls, like urap sayur salad, or asninan sayur too right? Some spicy Korean marinated cucumbers? Now we are talking.
No Filipino meal is really complete without dessert. I would highly recommend making suman malagkit, turon, gulaman, buko pandan, or karioka to wash these bad boys down with.

👉Top tips
- Gangster Wrapping: Ensure the lumpia wrappers are sealed tightly using the cornstarch slurry to prevent filling from leaking during frying. Use a thin layer of cornstarch paste along the edges for a secure seal, and avoid overfilling to maintain crispiness.
- Preventing Wrapper Drying: Keep unused lumpia wrappers covered with a damp towel to prevent them from drying out, which can make them brittle and prone to cracking during wrapping. It’s the same kinda care you need to have over other thin dough sheets that you need follow if you are making vegan baklava with filo dough.
- Wire Rack-ack-ack-ack-ack, you outta know by now… Listen there are good reasons why I suggest cooling these briefly on a wire rack after they are done cooking. One is because I am a cheap bastid, but the main reason is because I care about the environment, which is why I never suggest using paper towels. But the other is that this way they can drip dry with air all around them. That prevents their heat causing moisture to pool up on their bottom sides making them a little soggy and greasy feeling.
🤷♀️ Recipe FAQs
Have you ever made my crispy rice dumplings before? These follow the same method. Make sure your work surface is clean and dry. Wrap the filling like tight little burritos using lumpia wrappers, folding the sides in before rolling to secure the filling inside. Make sure you brush the seam with cornstarch slurry to prevent oil getting in or filling getting out as they cook.
My recipe calls for pan frying rather than deep frying the lumpia in tons of oil. But I def. made the mistake of doing it that way once at my Galactic MegaStallion pop ups.
Anyway, if you are going to ignore my warning and cook these in a counter top deep-fryer my recommendation is to use extra cornstarch slurry to seal the seam, and let that slurry dry fully before cooking them.
If you have a second frying basket you can place on top of the lumpia to keep the submerged in oil as the cook, they will move around less and have less of a chance of rupturing.
Yes! These are two great options for you:
Either you can make the filling up to 3 days in advance, keeping it in the refrigerator, and then wrapping and frying when you are ready.
Or you you can wrap the lumpia ahead of time and freeze them on a baking tray until they are sold before transferring to a freezer safe container or bag.
Then, when you thaw them, thaw them on a wire rack before cooking them so that they do not become soggy from condensation.
✌️My faves to serve with vegan lumpiang Shanghai:

Vegan Lumpiang Shanghai
Equipment
Ingredients
Tofu Ground Beef (optional)
- 14 oz. Extra firm tofu
- 3 tablespoons canola oil vegetable oil or sunflower oil
- 3 tablespoons hoisin sauce
- 1 tablespoon tamari or other soy sauce of your preference
- 1 tablespoon tomato paste
Lumpia Filling:
- 1 tablespoon sesame oil
- 4 teaspoons garlic minced
- ½ cup carrots julienne cut or grated
- 1 cup cabbage shredded
- ¼ cup red onion or shallots, small dice
- 2 scallions thinly sliced
- 2 cups vegan beef crumbles or ground seitan (if you are skipping the tofu meat above)
- 2 teaspoons tamari or other soy sauce of your preference
- ½ teaspoon ground black pepper
- 1 teaspoon sugar
To Form and Serve:
- 12 frozen spring roll wrappers or lumpia wrappers
- 2 teaspoons cornstarch
- 2 tablespoons water
- oil for frying or cooking spray for air-frying
- Kecap Manis optional for serving
- Chili Garlic Sauce optional for serving
- Thinly sliced scallions to garnish
Instructions
- If you are not using store-bought vegan beef crumbles, start by making the tofu ground beef. Press the tofu to remove excess water and crumble it into small pieces. Heat the oil in a large skillet over medium-high heat, then add the crumbled tofu and sauté for about 7 minutes until it begins to brown.
- Stir in the hoisin sauce, tamari, and tomato paste. Continue to cook for another few minutes until the mixture is well combined and slightly caramelized and darker in color. Set aside to cool.
- For the lumpia filling, heat sesame oil in a large skillet over medium heat. After 90 seconds when the oil is hot, add the minced garlic, carrots, cabbage, red onion (or shallots), and scallions. Sauté until the vegetables are tender.
- Add the vegan beef crumbles or ground seitan (or the prepared tofu ground beef if using). Stir in the tamari, black pepper, and sugar. Cook until everything is well mixed and heated through. Allow the filling to cool for 10 minutes to make it easier to handle.
- To form the lumpia, place a wrapper on a clean surface with one flat edge pointing towards you (unless you are using round lumpia wrappers). Spoon some of the filling in a 4 inch long shape onto the wrapper near the edge closest to you.
- Fold the corner over the filling, then fold in the sides and roll up tightly, sealing the edge with a paste made from the cornstarch and water mixture.
- To fry the lumpia, heat oil in a deep skillet or frying pan over medium heat. When the oil reaches 350°F (180°C), fry the lumpia in batches until golden brown and crispy. Alternatively, to air-fry, preheat your air fryer to 400°F (200°C), spray the lumpia with cooking spray, and cook in batches until crispy and golden, about ten to twelve minutes, turning halfway through.
- Serve the lumpia hot with kecap manis and chili garlic sauce on the side, if desired, and garnish with thinly sliced scallions.
Notes

Enter your email & I'll send it to your inbox. Plus, get great new recipes from me every week!
By submitting this form, you consent to receive emails from Cinnamon Snail.
Kelly McLaughlin says
I made this recipe last night for dinner, using the air fryer method. They were pretty easy to put together and I enjoyed the taste. I used some homemade kecap manis as one of the dipping sauces. Very enjoyable!