Quick Recipe Version (TL;DR)
Quick Ingredients
- 12 oz jumbo pasta shells (about 24–26 shells)
- 3 cups marinara sauce (about 24 oz)
- 1 cup raw cashews, soaked
- 14 oz extra-firm tofu, drained
- 4 cups fresh baby spinach (or 10 oz frozen, thawed and squeezed dry)
- 2 tbsp olive oil
- 2 tbsp lemon juice
- 3 tbsp nutritional yeast
- 2 cloves garlic
- 1 tsp fine sea salt, plus more for pasta water
- 1/2 tsp black pepper
- 1 tsp dried basil
- 1 tsp dried oregano
- 1/4 tsp red pepper flakes (optional)
- 1/2–1 cup shredded vegan mozzarella or vegan Italian-style cheese (optional, for topping)
Do This
- 1. Preheat oven to 375°F (190°C). Lightly oil a 9×13-inch baking dish and spread 1 cup marinara over the bottom.
- 2. Boil jumbo shells in generously salted water until just shy of al dente (1–2 minutes less than package). Drain and cool slightly.
- 3. Blend soaked cashews, tofu, olive oil, lemon juice, nutritional yeast, garlic, salt, and pepper until mostly smooth and “ricotta-like.”
- 4. Stir chopped spinach, dried basil, dried oregano, and red pepper flakes (if using) into the tofu-cashew “ricotta.” Adjust seasoning.
- 5. Spoon a heaping tablespoon of filling into each shell. Nestle stuffed shells into the sauced baking dish, open side up.
- 6. Pour remaining 2 cups marinara over shells; sprinkle with vegan mozzarella, if using. Cover tightly with foil.
- 7. Bake 20 minutes covered, then 15 minutes uncovered until bubbly and lightly golden. Rest 5–10 minutes, garnish, and serve.
Why You’ll Love This Recipe
- Creamy, cozy, Italian-inspired comfort food that just happens to be completely dairy-free and vegan.
- Tofu-cashew “ricotta” is rich, savory, and convincingly cheesy, studded with tender spinach.
- Great make-ahead dish for entertaining, potlucks, or meal prep; reheats beautifully.
- Family-friendly flavors with simple, everyday ingredients you can find in most grocery stores.
Grocery List
- Produce: Garlic, fresh baby spinach (or frozen chopped spinach), fresh basil and/or parsley for garnish, lemon.
- Dairy: None required (optional: shredded vegan mozzarella or vegan Italian-style cheese from the refrigerated “dairy-free” section).
- Pantry: Jumbo pasta shells, marinara sauce, raw cashews, extra-firm tofu (shelf-stable or refrigerated), olive oil, nutritional yeast, dried basil, dried oregano, red pepper flakes, salt, black pepper.
Full Ingredients
For the Pasta and Sauce
- 12 oz jumbo pasta shells (about 24–26 shells)
- 3 cups marinara sauce (about 24 oz), homemade or store-bought
- 1–2 tbsp olive oil (for greasing dish and preventing sticking)
- 1–2 tbsp kosher or sea salt (for pasta water)
For the Spinach Tofu-Cashew “Ricotta”
- 1 cup raw cashews, soaked in hot water at least 20 minutes and drained
- 14 oz extra-firm tofu, drained and patted dry
- 2 tbsp olive oil
- 2 tbsp fresh lemon juice (about 1 lemon)
- 3 tbsp nutritional yeast
- 2 cloves garlic, roughly chopped
- 1 tsp fine sea salt (plus more to taste)
- 1/2 tsp freshly ground black pepper
- 4 cups lightly packed fresh baby spinach, finely chopped
- or 10 oz frozen chopped spinach, thawed and squeezed very dry
- 1 tsp dried basil
- 1 tsp dried oregano
- 1/4 tsp red pepper flakes (optional, for gentle heat)
For Assembly and Topping
- 1/2–1 cup shredded vegan mozzarella or vegan Italian-style cheese (optional, but delicious)
- 2–3 tbsp finely chopped fresh basil or flat-leaf parsley, for garnish
- Freshly ground black pepper, for serving
Step-by-Step Instructions
Step 1: Soak cashews, preheat oven, and prep the baking dish
Place the raw cashews in a heatproof bowl and cover with very hot tap water or just-boiled water. Let them soak for at least 20 minutes to soften. This helps them blend into a silky, creamy “ricotta.” If you have extra time, you can soak them for up to 1–2 hours for an even smoother texture.
While the cashews soak, preheat your oven to 375°F (190°C). Lightly grease a 9×13-inch (3 L) baking dish with a bit of olive oil. Spread 1 cup of the marinara sauce evenly over the bottom of the dish. This keeps the shells from sticking and infuses them with flavor from the bottom up.
Step 2: Cook the jumbo shells
Bring a large pot of water to a boil. Salt it generously (about 1–2 tablespoons of kosher or sea salt; the water should taste pleasantly salty). Add the jumbo shells and cook until just shy of al dente, usually 1–2 minutes less than the package directions. The shells will continue to cook in the oven, so you want them slightly underdone to avoid mushy pasta.
Drain the shells in a colander and rinse briefly with cool water to stop the cooking and make them easier to handle. Drizzle with a teaspoon or so of olive oil and gently toss to prevent sticking. Spread them out on a tray or large plate to cool slightly while you prepare the filling.
Step 3: Make the tofu-cashew “ricotta” base
Drain the soaked cashews. In a food processor or high-speed blender, combine the drained cashews, extra-firm tofu (break it into large chunks with your hands), olive oil, lemon juice, nutritional yeast, garlic, salt, and black pepper.
Blend or process until mostly smooth and creamy, stopping to scrape down the sides as needed. You are aiming for a thick, fluffy texture similar to ricotta cheese: smooth but with a little bit of texture, not a runny puree. If it seems too thick to blend, add 1–2 tablespoons of water, a splash at a time, just until it moves. Taste and adjust seasoning with extra salt, pepper, or lemon juice to brighten the flavor.
Step 4: Fold in spinach and herbs
If using fresh spinach, finely chop it. If using frozen spinach, make sure it is fully thawed, then squeeze it very firmly in your hands or in a clean kitchen towel to remove as much water as possible. Excess moisture will make the filling watery, so do not skip this step.
Transfer the tofu-cashew mixture to a large mixing bowl (if it is not already there). Add the chopped spinach, dried basil, dried oregano, and red pepper flakes (if using). Use a spatula or large spoon to fold everything together until the spinach and herbs are evenly distributed and the mixture is a uniform pale green flecked with spinach. Taste again and adjust seasoning if needed. The filling should be well-seasoned and flavorful at this stage.
Step 5: Fill the shells
Set the cooled jumbo shells on your work surface, open side up. Using a spoon or small cookie scoop, fill each shell with about 1 heaping tablespoon of the spinach “ricotta” mixture. The filling should mound slightly above the edges of the pasta. If some shells are torn, you can still fill them and tuck them between more intact ones in the baking dish.
Continue until all shells are generously stuffed. You should have enough filling for about 24–26 shells; pack the remaining filling into shells that look a bit empty or, if there is just a little left, tuck dollops between shells in the dish.
Step 6: Assemble the baking dish
Arrange the stuffed shells snugly in the prepared baking dish on top of the layer of marinara, open side facing up. They can be quite close together; this helps them stay upright and keeps the filling moist.
Pour the remaining 2 cups of marinara sauce evenly over the top of the shells, letting some sauce drip between them but leaving patches of filling visible for a nice presentation. If you like a saucier dish, you can add an extra 1/2–1 cup of marinara.
Sprinkle the tops with the shredded vegan mozzarella (if using), distributing it evenly. Cover the baking dish tightly with aluminum foil, tenting it slightly so it does not press directly against the cheese.
Step 7: Bake, brown, and serve
Place the covered baking dish in the preheated 375°F (190°C) oven. Bake for 20 minutes covered, until the sauce is hot and the filling is heated through. Carefully remove the foil and continue baking for another 15 minutes, or until the sauce is bubbly and the tops of the shells and vegan cheese are lightly golden in spots.
If you would like deeper browning on the cheese, you can switch the oven to broil for the last 1–2 minutes, watching very closely so it does not burn.
Remove the dish from the oven and let the shells rest for 5–10 minutes. This allows the filling to set slightly and makes serving easier. Garnish with chopped fresh basil or parsley and a few grinds of black pepper. Serve hot, spooning extra sauce from the pan over each portion.
Pro Tips
- Do not overcook the shells. Slightly undercooked pasta holds its shape better during stuffing and baking, and prevents a mushy final texture.
- Drain the spinach very well. Whether using fresh or frozen, squeeze out as much liquid as possible to avoid a watery filling.
- Season the “ricotta” boldly. The filling is the heart of this dish. Taste and adjust salt, lemon, and herbs until it is bright and savory before stuffing the shells.
- Use a piping bag or zip-top bag if you like. For faster, neater filling, transfer the ricotta to a large zip-top bag, snip off a corner, and pipe it into each shell.
- Let it rest before serving. A short rest after baking helps the sauce thicken a bit and keeps the filling from spilling out when you plate the shells.
Variations
- Gluten-free version: Use gluten-free jumbo shells, if available, or substitute large gluten-free pasta shapes (such as manicotti or cannelloni tubes) and stuff them with the same filling.
- Mushroom and spinach stuffed shells: Sauté 8 oz finely chopped mushrooms with a little olive oil, salt, and pepper until browned and their moisture has evaporated. Cool slightly and fold into the tofu-cashew ricotta along with the spinach.
- Spicy arrabbiata style: Replace the marinara with a spicy arrabbiata sauce and increase the red pepper flakes in the filling to 1/2 teaspoon for a gentle kick.
Storage & Make-Ahead
These stuffed shells are excellent for meal prep. Refrigeration: Once cooled, store leftovers in an airtight container in the refrigerator for up to 4 days. Reheat individual portions in the microwave until hot, or rewarm a covered baking dish in a 350°F (175°C) oven for 15–20 minutes.
Make-ahead (unbaked): Assemble the dish completely, cover tightly with foil, and refrigerate for up to 24 hours. When ready to cook, bake straight from the fridge, adding about 5 extra minutes to the covered baking time.
Freezing: You can freeze the assembled, unbaked shells tightly wrapped for up to 2 months. Thaw overnight in the refrigerator before baking, or bake from frozen at 350°F (175°C), covered, for about 45–55 minutes, then uncover for an additional 15 minutes. Baked leftovers can also be frozen in portions and reheated in the oven until hot and bubbly.
Nutrition (per serving)
Approximate values for 1 of 6 servings (about 4 stuffed shells, including sauce, without optional vegan cheese): about 500–520 calories, 20–22 g protein, 24–26 g fat, 50–55 g carbohydrates, 5–7 g fiber, and 850–950 mg sodium. Adding vegan mozzarella will increase calories and fat slightly. Actual values will vary based on specific brands of pasta, marinara, and vegan cheese used.

