Simmered in a buttery and savory gravy, these vegan Swedish meatballs are tender, meaty, and so delicious served over mashed potatoes! Instead of using store-bought vegan ground meat, this recipe has you making both the meatballs and gravy from scratch!
Rehydrate the TVP. Add the TVP chunks to a large bowl and cover with hot water. Allow it to rehydrate for about 20 minutes or until soft.
Drain it well. Next, drain the chunks using a colander and rinse them under cold water 2-3 times. Use your hands to squeeze them as much as possible to remove the water they have absorbed. Line a cutting board with a few sheets of kitchen paper towels. Transfer the chunks to the kitchen paper towels, then top with a few more sheets. Press to remove as much water as possible. Set the TVP chunks aside.
Process the beans into a paste. Add the cooked white beans, oil, soy sauce, water, nutritional yeast, sugar, onion powder, garlic, parsley, dried thyme, nutmeg, ground white pepper, and allspice. Process for 10-15 seconds or until it forms a paste. You may have to use a spoon to scrape down the sides.
Add the TVP. Add the rehydrated TVP chunks and process for another 4-5 seconds, or until it resembles ground meat. Transfer the mixture to a mixing bowl.
Combine with the gluten. Add the vital wheat gluten and mix until well combined. It should form a thick paste.
Shape into balls. Using a cookie scoop, scoop about 1.5 tablespoons of the mixture and shape it into a ball using your hands. Transfer to the steamer and repeat with the remaining mixture. Note: I ended up with 9 large meatballs; feel free to make them smaller if you prefer.
Steam. Bring about 2 cups of water to a boil in a saucepan that can fit under a bamboo basket steamer. Once boiling, place the steamer on top of the pot and steam the meatballs for 25-30 minutes. Let them cool for at least 30 minutes. At first, they will appear very soft but will firm up a bit as they cool.
Pan-fry the meatballs. Heat about 2 tablespoons of oil in a large non-stick skillet. Once hot, add the meatballs and pan-fry for 6-8 minutes, stirring occasionally, until evenly golden brown. Transfer the meatballs to a plate and wipe the skillet clean with a kitchen paper towel.
Gravy
Make a roux. Melt the butter over medium heat in the skillet you just cleaned. Once melted, add the flour and stir until fully combined, with no lumps remaining.
Add the remaining ingredients. Pour in the vegetable broth, plant-based cream, vegan Worcestershire sauce, soy sauce, mustard, ground white pepper, and dark soy sauce (if using, for color). Use a whisk to mix everything together.
Cook until thickened. Heat over medium heat for 5-7 minutes, whisking regularly, until the sauce thickens.
Add the meatballs. Carefully add the vegan meatballs to the sauce and toss to coat.
Cook and serve! Cook the meatballs in the sauce for 2-3 minutes, garnish with chopped parsley, and serve!
You can store the meatballs in the gravy in the refrigerator for up to 3 days.
Homemade Cashew Cream
If you want to make your own plant-based cream: Drain the soaked cashews and blend them with the water until smooth.
Notes
Pat the TVP dry. After rinsing and draining the TVP chunks, squeeze them by hand to remove all excess water. Then transfer them to a sheet of kitchen paper towels and press with another sheet to absorb any remaining moisture.Make a brown roux. Looking to add a bit more flavor to the sauce? You can brown the butter and flour mixture until it turns golden brown. Thanks to the Maillard reaction, the butter will brown and develop a nutty aroma.Adjust the consistency of the sauce. If you're using homemade cashew cream, 3 tablespoons of flour should be enough to make the roux, as the cream will naturally thicken the sauce. On the other hand, if using store-bought cream, use 1/4 cup of flour.Taste and adjust the saltiness of the sauce. All vegetable broths vary in saltiness. That's why I recommend adding only half the soy sauce at first, then adding the rest after tasting.Do not simmer the meatballs for too long. To prevent the meatballs from falling apart, it's best not to simmer them in the sauce for too long. 2-3 minutes is usually enough.