Lentils and finely chopped mushrooms form the base of these tender, allspice-and-white-pepper-seasoned meatballs, which are served in a plant-based brown gravy built from a toasted roux. Lingonberry jam on the side adds the sweet-tart contrast traditional to Swedish köttbullar. The full dish takes roughly an hour.
1 ½cupscooked brown or green lentils, well-drainedfrom about 1 (15-oz) can; rinse and pat dry for best texture
1tbspnutritional yeastadds savory depth (optional but recommended)
2tbsplow-sodium soy sauce or tamarifor umami and seasoning; use tamari for gluten-free
1tbspDijon mustardadds subtle tang and complexity
2tbspfresh parsley, finely choppedstems tender parts included; optional garnish and mix-in
½cuppanko breadcrumbschoose a brand that stays crisp; gluten-free panko works too
¼cupunsweetened oat milkor other neutral plant milk; just enough to moisten the mix
½tspkosher saltto season the mixture; adjust to taste
2tbspneutral high-heat oilsuch as avocado or canola, for searing the meatballs
For the Creamy Gravy:
3tbspvegan butterlook for brands that brown nicely (Miyoko’s, Earth Balance)
3tbspall-purpose flourscoop-and-level; for gluten-free use a 1:1 baking blend by weight equivalence
2cupslow-sodium vegetable broth, warmedwarm broth incorporates more smoothly into the roux
1cupunsweetened oat milk or barista-style plant creamoat keeps it classic and silky; cashew cream works beautifully too
1tbsplow-sodium soy sauce or tamarilayers umami and color in the gravy
1tspDijon mustardbalances richness
1tspapple cider vinegaror lemon juice; brightens the finish
¼tspground white pepperclassic Swedish profile; add more to taste at the end
⅛tspground allspicea pinch reinforces the meatball’s spice notes
¼tspkosher saltor to taste, depending on broth and soy sauce salinity
To Serve (Optional):
4cupscreamy mashed potatoes or buttered wide noodlesclassic accompaniment; use vegan butter for both options
4tbsplingonberry jamtraditionally served; look for Scandinavian brands or IKEA
2tbspfresh parsley or dill, choppedfor garnish and fresh aroma
Prevent your screen from going dark
Instructions
Preheat the Oven: Set the oven to 400°F (205°C). Line a rimmed baking sheet with parchment for easy cleanup.
Make the Flax Egg (2 minutes): In a small bowl, whisk together 1 tbsp ground flaxseed and 3 tbsp water. Let sit 5 minutes to thicken until gelled.
Sauté Aromatics (8–10 minutes): Heat 1 tbsp olive oil over medium heat. Add onion, mushrooms, and 1/2 tsp kosher salt. Cook, stirring occasionally, until the mushrooms release their moisture and everything turns golden brown with some fond on the pan. Add garlic and cook 1 minute until fragrant. Sprinkle in 1/2 tsp allspice, 1/2 tsp white pepper, and 1/4 tsp nutmeg; stir 30 seconds to bloom the spices. Remove from heat to cool slightly.
Pulse the Mixture (2–3 minutes): In a food processor, combine the sautéed mixture with lentils, nutritional yeast, 2 tbsp soy sauce, and 1 tbsp Dijon. Pulse 8–10 short bursts until cohesive but still textured—aim for a mixture that holds together when pressed, with tiny visible bits of lentil and mushroom. No processor? Finely mince the mushrooms and onion, then mash everything together with a potato masher.
Bind and Rest (10 minutes): Transfer to a bowl. Stir in the flax egg, parsley, panko, and 1/4 cup oat milk. Season with the remaining 1/2 tsp kosher salt. Mix until evenly hydrated and scoopable—moist but not sticky. Let the mixture rest 10 minutes so the breadcrumbs fully hydrate.
Form the Meatballs (5–7 minutes): With damp hands or a 1-tbsp scoop, form 20–24 balls about 1 inch in diameter. Roll gently for smooth sides; this helps even browning.
Sear (about 8 minutes): Heat 2 tbsp neutral oil in a large skillet over medium-high heat. When shimmering, add meatballs in a single layer without crowding. Sear 2–3 minutes per side until deeply golden. Transfer to the prepared baking sheet.
Bake (16 minutes at 400°F/205°C): Slide the sheet into the oven and bake until the meatballs are set and lightly crisped on the outside. They should feel firm yet springy when gently pressed.
Start the Gravy: (make a blond roux) (2–3 minutes) Return the skillet to medium heat. Add vegan butter; once melted and foamy, whisk in flour. Cook, whisking, until the roux smells nutty and turns pale blond—avoid browning for a classic Swedish-style gravy.
Build the Gravy (6 minutes). Gradually whisk in warm vegetable broth, a splash at a time, until smooth and lump-free. Simmer 3 minutes to thicken slightly. Whisk in oat milk, 1 tbsp soy sauce, 1 tsp Dijon, 1/4 tsp white pepper, and a pinch (1/8 tsp) of allspice. Simmer 2–3 minutes more until silky and nappe (it should coat the back of a spoon). Stir in 1 tsp apple cider vinegar and 1/4 tsp kosher salt, adjusting to taste.
Coat and Finish (1–2 minutes). Add the baked meatballs to the gravy and toss gently over low heat until coated and warmed through. If the gravy thickens too much, splash in a bit of warm broth or oat milk to loosen.
Serve. Spoon over creamy mashed potatoes or wide noodles. Garnish with chopped parsley or dill and a spoonful of lingonberry jam for the iconic sweet-tart counterpoint.
Notes
Mary’s Tips:
Texture is Everything: Pulse just enough to bring the mixture together—overprocessing makes the meatballs dense. Visible lentil and mushroom flecks signal the right grind.
Chill for Extra-Firm Balls: If your mixture feels soft, refrigerate 20–30 minutes. Cold fat from the sauté and hydrated breadcrumbs will help the meatballs hold shape.
Gluten-Free: Use gluten-free panko and tamari; swap AP flour in the gravy for a 1:1 gluten-free baking blend.
No Soy? Replace soy sauce with coconut aminos and season with additional salt to taste.
Cashew-Cream Gravy: Blend 1/2 cup raw cashews with 1/2 cup water until silky; use in place of the oat milk for ultra-luxurious body.
Fast Caramelization Trick: Add a tiny pinch of sugar to the onions and mushrooms as they sauté to encourage deeper browning without burning.
Make Ahead: Form and par-bake meatballs for 10 minutes; cool and refrigerate up to 3 days or freeze up to 2 months. Reheat in gravy until hot.
Alternative Protein: Swap 1 cup of lentils with 8 oz rehydrated TVP for a bouncier bite; season generously.
Serving Suggestions:
Plating: Nestle a mound of buttery vegan mashed potatoes on a warm plate. Top with glossy, taupe-hued meatballs and cascade with gravy. A ruby spoon of lingonberry jam and a sprinkle of emerald herbs create a striking color trio.
Sides: Try a quick-pressed cucumber salad with dill and white vinegar, or simply steamed green beans with lemon zest.
Drinks: Dry apple cider, a crisp pilsner, or sparkling water with lemon keeps the palate refreshed.
Doneness Cues: Meatballs should be evenly bronzed, lightly crisped outside, moist and tender inside; gravy should coat the back of a spoon without pooling liquid.
Culinary Context:
Swedish meatballs are traditionally spiced with allspice and white pepper and served with brown gravy and lingonberry jam. This plant-based version honors that balance of savory, creamy, and bright while leaning on Nordic minimalism—restrained ingredients, impeccable technique.
Optional Advanced Instructions:
Batching: Double the recipe and freeze the baked meatballs on a sheet pan, then transfer to freezer bags. Reheat directly in simmering gravy 8–10 minutes.
Parallel Prep: While the meatballs bake, make the roux and start the gravy; this keeps total cook time efficient.
No Food Processor: Mince mushrooms very finely and mash lentils with a fork or masher. The texture will be slightly chunkier but still delightful.