This vegan Thai Laab with Tofu is a plant-based love letter to the dish I ate countless times while backpacking in Thailand and Laos for nearly two months. While this version is meat-free, it sparkles with every bit of the vibrant flavor of the laab l devoured years ago!
Starring crumbled tofu pan-fried into meaty morsels, tossed with aromatics and fresh herbs, and infused with a tart, spicy, sweet-savory dressing that sings with a symphony of flavor: funky vegan fish sauce, bright lime, and nutty toasted rice powder.
Delicious on its own, or pile it into lettuce cups with sticky rice for a very fun dinner.
What is laab?
Laab (or “larb” as it’s often spelled in the West—Pailin Chongchitnant of Hot Thai Kitchen explains why) is a ground meat salad hailing from northeastern Thailand (known as the Isaan region) as well as Laos (it’s the national dish of Laos!).
It’s known for its bright, bold confluence of flavors—tangy, spicy, aromatic, fresh, and plenty of savory salty depth—and has a uniquely nutty, popcorn-esque flavor from toasted rice powder (khao khua).
Outside of the obvious swap necessary to make a vegan version of Thai laab (ground meat → tofu), the key flavor identity remains the same… meaning this plant-based version has all the signature vibrance of the original!

Ingredients & Substitutes

- Super firm tofu: The best pick for mimicking ground meat. It’s already pressed and dense, so it cooks up chewy and meaty. Sometimes labeled “high-protein tofu.”
- White rice: Used to make toasted rice powder (khao khua), an essential ingredient that gives laab its roasty flavor and slight crunch, thickening the dressing with its starches. It’s simpler to make than it sounds: just toast Thai sticky rice (or jasmine rice) in a dry pan until golden brown, then grind it into a coarse powder. Buy Thai sticky rice online (here or here) or at Southeast Asian grocers.
- Vegan fish sauce: Salty, savory, funky—without any fish involved! Most versions use some mix of mushrooms, soybeans, salt, and seaweed to deliver the umami blast that laab needs. I like Ocean’s Halo best; Tofuna Fysh works too, as does Au Lac (this one is very salty — start with a lot less).
- Thai roasted chili flakes:Traditional in laab. Look for roasted Thai chile flakes at Southeast Asian grocery stores or online, or see the substitutes below if you’d rather not buy them or are sensitive to heat.
- Fresh makrut lime leaves: If you’ve ever swooned over the flavor of Thai food, there’s a good chance you were swooning over the otherworldly citrus dimension lime leaves bring. Find them at Southeast Asian grocers and large Asian markets like H Mart, labeled “lime leaves,” “makrut lime leaves,” or “kaffir lime leaves” (I don’t recommend using the latter term, as it’s a slur).
- Shallots & Lemongrass: In Southeast Asian cooking, shallots and lemongrass are what onion and garlic are to Indian food—fundamental aromatics that build tons of flavor! Lemongrass is sold at well-stocked grocery stores and Asian markets.
Substitutes
Even if you don’t have access to a Southeast Asian grocer, you can make this recipe with delicious results!
- No super firm tofu? Use extra-firm and press it for 20 minutes before crumbling.
- No Thai sticky rice? This works well with white jasmine rice.
- Don’t want to toast your own rice? Buy roasted rice powder instead.
- No vegan fish sauce? Soy sauce or tamari work great. Use less; exact amounts are in the recipe card notes.
- No Thai roasted chili flakes? Use another Asian chile flake like Sichuan chili flakes (or gochugaru for milder heat) OR use 1 to 3 teaspoons of fresh minced chilies—bird’s eye chiles, serranos, or jalapeños.
- No makrut lime leaves? Add 1 teaspoon of fresh lime zest to the dressing. Still very delicious.
- No lemongrass? Omit it, or add ½ teaspoon powdered lemongrass to the dressing, then taste and add more as desired.
Step-by-step instructions

- Toast the rice: Heat a large frying pan over medium heat (for jasmine rice) or medium-low heat (for sticky rice), then add the rice.

- Stir frequently until it begins to take on color, then start stirring constantly until golden brown with a toasty, popcorn-like aroma (7 to 10 minutes). Transfer to a bowl and cool.

- Make the toasted rice powder: Grind the rice into a coarse powder using an electric spice grinder/coffee grinder.

- Grind for just a few seconds to retain some texture. Alternatively, grind the rice using a mortar and pestle.

- Prep the lemongrass by peeling away the outer layers and slicing off the tops of the stalks.

- Pound the remaining bottom sections with a rolling pin to release the aromatic oils, then finely chop.

- Cook the tofu and aromatics: Crumble the tofu by hand into small morsels, roughly the size of a blueberry.

- Heat a large frying pan over medium-high for, then add the oil and the crumbled tofu with a pinch of salt.

- Cook undisturbed for 2 to 3 minutes to start the browning process, then cook for 10 minutes total, stirring occasionally, until golden brown. Transfer to a large bowl.

- Return the pan to medium heat with a bit of oil. Cook the shallots for 2 minutes until softened, then add the garlic and lemongrass for 1 to 2 minutes. Transfer to the bowl of cooked tofu.

- Make the dressing: whisk together the toasted rice powder, lime juice, chili flakes, fish sauce or soy sauce, sugar, and minced lime leaves (or lime zest).

- Assemble: Add the dressing to the tofu-aromatics mixture.

- Stir well to coat.

- Fold in the mint, cilantro, and scallions and taste for seasonings.
Tips for making Thai laab
Make substitutions as needed
While I would love for everyone to be able to try the recipe as it’s written (it delivers the unique quintessential flavors of laab that I love so much), I know many readers won’t have access to every single ingredient.
Jump up to the ingredients section for substitutes for the specialty ingredients, including fresh lime leaves, lemongrass, Thai chile flakes, and vegan fish sauce.
Tailor the spice
Laab is traditionally quite spicy, but I know that’s not everyone’s cup of tea. Here are a few tips for achieving the perfect spice for your palate:
- If you’re using Thai chili flakes, start slowly. 2 teaspoons—the upper end of the range called for in the recipe—makes for a spicy laab!
- Feel free to try other Asian chili flakes: Sichuan chili flakes would be great, and gochugaru would give you a milder heat.
- If using fresh chiles: Try 1 to 3 teaspoons of minced fresh chile peppers. Listed from mildest to hottest: jalapeños, serrano peppers, or birds’ eye chilies.
Tips for Toasted Rice Powder
1. If using Thai sticky rice, AKA glutinous rice, use medium-low heat; at a higher heat, the rice tends to start smoking.
2. If using white jasmine rice, you can start with medium heat, though you may still want to eventually lower to medium-low heat for even toasting.
3. Once the rice takes on some color, start stirring constantly. This will give you evenly golden brown rice with a deep, roasty nutty flavor (and prevents burning).
4. Wait until the rice has cooled, then transfer to your grinding tool of choice and grind it into a coarse powder, not a fine powder.
If using a mortar and pestle, it will take 4 to 5 minutes with some arm power. If using an electric spice grinder or coffee grinder, it takes just a few seconds.


Frequently Asked Questions
No worries! This post has a pretty comprehensive Ingredients & Substitutes section, where I include substitutes for the specialty ingredients (substitutes are also listed in the Notes section at the bottom of the the recipe card).
That being said, if this recipe looks delicious to you, I encourage you to check out your local Southeast Asian grocery store and seek out some of these ingredients—they make this dish spectacular.
My favorite way to eat this laab is piled into lettuce cups with sticky rice, or honestly plain, because the flavor is so good!
Traditionally, laab is served with sticky rice—you use the rice to scoop up the laab with your fingers, though you can use sushi rice or regular white rice.
Laab is also typically served with crisp, raw veggies—think leaves of lettuce, wedges of green, cabbage, sliced cucumbers, sliced carrots, etc.
Stored in an airtight container in the fridge, this laab will keep for 5 days. Leftovers are best eaten at room temperature (or cold).
Unfortunately, this dish does not freeze well (but it’s so delicious I doubt you’ll have leftovers!).

Lovin’ this laab? Let me know by leaving a rating and review below! Reading your comments makes my day! 🥰

Introducing
Big Vegan Flavor
Techniques and 150 recipes to master vegan cooking.
Thai Laab (Larb) with Tofu

Ingredients
- 2 ½ tablespoons (32g) Thai sticky rice (aka white glutinous rice) (OR white jasmine rice, see Note 1)
Tofu and aromatics
- 16 ounces (454g) super firm tofu, drained
- 2 tablespoons (28g) neutral flavored oil, separated
- Kosher salt
- 1 large shallot, thinly sliced (~ 2 oz / 55g once sliced)
- 4 cloves garlic, finely chopped (optional if using lemongrass and lime leaves)
- 2 stalks fresh lemongrass (see Note 2)
Dressing
- 4 fresh makrut lime leaves (OR 1 teaspoon finely grated lime zest, see Note 3)
- 3 ½ tablespoons (52 mL) freshly squeezed lime juice
- ½ to 2 teaspoons Thai chili flakes (or fresh chilies, see Note 4)
- 2 ½ tablespoons (38 mL) vegan fish sauce (see Note 5 for sub)
- 1 tablespoon brown sugar
Finishing
- ¼ cup tightly packed (6g) fresh mint leaves, chopped
- 1 handful (6 to 8g) cilantro leaves, chopped
- 3 to 4 scallions, bruised tops trimmed and thinly sliced (optional)
For serving
- Cooked sticky rice (or other white rice)
- Fresh crunchy vegetables such as lettuce leaves, wedges of green cabbage, sliced cucumbers or snap peas
- Lime wedges
Instructions
- Toast the rice. Heat a large frying pan over medium-low for 1 ½ to 2 minutes (for jasmine rice, use medium heat). Add the rice and stir frequently. Once it starts to turn color, stir constantly until deeply golden brown with a toasty popcorn-like aroma, 7 to 10 minutes. If it starts to smoke a lot, reduce the heat. Transfer to a bowl to stop cooking.
- Grind the rice. Once the rice has cooled, transfer to an electric spice grinder/coffee grinder or a mortar and pestle and grind into a coarse powder.If using an electric grinder, it'll only be a few seconds–you still want some texture. If using a mortar and pestle, it will require some arm power and 4 to 5 minutes.
- Prep the lemongrass. Peel away the papery outer layers and slice off the top part of the stalks until you have just the tender bottom section. Pound the lemongrass with a rolling pin or other heavy tool to lightly break it up and release aroma. With the tender inner core, chop it very finely or mince; store with the garlic.
- Prep the lime leaves. Fold the leaves in half to strip out the center vein, then fold up the leaves and mince as finely as you can (like chiffonading basil very finely).
- Prep the tofu. Crumble the tofu into very small pieces with your hands, about the size of a blueberry.
- Cook the tofu. Return the frying pan to medium-high heat for 2 minutes, then add 1 ½ tablespoons (21g) of oil. Add the crumbled tofu with a pinch of salt. Cook undisturbed for 2 to 3 minutes to allow some browning. Cook for a total of about 10 minutes, stirring only every 1 ½ minutes, until golden brown in most spots. Note: If the tofu starts to char, reduce the heat to medium. Transfer the tofu to a large bowl and allow the pan to cool off a bit.
- Saute the aromatics. Return the frying pan to medium heat and add the remaining ½ tablespoon of oil. Add the shallots and season with a pinch of salt. Stir frequently for 2 minutes, or until softened. Add the garlic and lemongrass and stir frequently for 1 to 2 minutes, or until the smell of raw garlic cooks off. Transfer to the bowl of cooked tofu.
- Assemble. To the cooked tofu mixture, add 2 tablespoons (24g) of the toasted rice powder, the minced lime leaves (or lime zest), lime juice, chili flakes, fish sauce (or lesser amount of soy sauce), and the sugar. Toss well to coat the tofu.Taste, adding more lime juice for brightness, more fish sauce for savory saltiness, more rice powder for toasty crunch, or more sugar for balance.
- Fold in the mint, cilantro, and scallions if using. Season to taste with salt as needed. If desired, mix in more toasted rice powder.
- Serve with cooked rice for scooping and fresh veggies/lime wedges on the side.
Notes
- While sticky rice is traditionally used in Thailand/Laos, you can use jasmine rice with great results. As a shortcut, you can also purchase roasted rice powder at some Asian markets.
- If you can’t find lemongrass, just omit it. Or, if you have powdered lemongrass, try adding ½ to 1 teaspoon to the sauce.
- Fresh makrut lime leaves are sold at Southeast Asian grocery stores and some larger Asian grocers (e.g., H Mart). They may be sold frozen sometimes.
- If using Thai chili flakes, start slowly, then add more to taste; 2 tsp is quite spicy! As a sub, you can use other Asian chili flakes, such as Sichuan chili flakes (or gochugaru for mild heat). Or use 1 to 3 teaspoons of finely minced fresh chilies, such as birds’ eye, serrano, or jalapeños–3 teaspoons will be fairly spicy.
- If you don’t have access to vegan fish sauce, use 1 tablespoon + 1 teaspoon soy sauce (or tamari).
Nutrition
Nutrition information is automatically calculated, so should only be used as an approximation.















