Vegan Stuffed Shells (with Tofu Ricotta and Spinach)
These are the best vegan stuffed shells you will ever eat! Filled with healthy tofu ricotta and spinach and topped with tomato sauce and melty vegan mozzarella cheese. This is my go-to comfort food for holidays, dinner parties, or just a hearty weeknight meal.

Want to save this recipe?
Enter your email below and get it sent straight to your inbox. Plus, get more amazing vegan recipes that will satisfy your cravings!
I’ve been making this stuffed shell recipe for over 20 years and my family and I never get tired of them. They’re even a hit with non-vegan friends and family. They tell me that “They taste just like the real thing.” My mother (who is not vegan) even requests that I make them when she comes to visit.
If you love comforting vegan dinner recipes that can feed a crowd, you should also check out my vegan lasagna, vegan baked ziti, vegan goulash, and vegan ravioli recipes too!
These stuffed shells are
- absolutely delicious!
- dairy-free, nut-free, and can easily be made gluten-free.
- easy to make ahead, freeze, and reheat.
- great for leftovers and meal prep.
- packed with plant-based protein.
- filling for families with hearty appetites.
Ingredients and substitutions
- Jumbo Pasta Shells – to stuff. Use gluten-free shells if necessary. (You can also use manicotti tubes, lasagna noodles rolled up, or thinly sliced zucchini or eggplant rolled up with spinach ricotta in the middle).
For the Vegan Ricotta
- Tofu – to make the base of your tofu ricotta. You will need 2 14 oz packs of extra firm tofu. (You can also use the high-protein tofu that comes in the vacuum-sealed packs, but you will need to add an extra splash of soy milk to get the right consistency).
- Nutritional Yeast – for a cheesy flavor. Nutritional yeast is a cheese-like flavored flaky powder that gives foods an umami flavor. You can find it in most large grocery stores or health food stores.
- Olive Oil – for a richer flavor.
- Salt – for flavor. (You can add more or less to suit your taste).
- Garlic -for flavor. I usually use fresh garlic, but you can use 1/2 tsp of garlic powder instead if you wish.
- Basil – or other fresh herbs like oregano or parsley for flavor. Fresh basil has the best flavor, but you can also use 2 tbsp of dried herbs instead.
- Black Pepper – for flavor. Fresh ground black pepper is delicious and adds a little extra flavor.
- Soy Milk – or water to thin out the ricotta if needed to achieve the correct texture. You can use any type of plain-flavored plant-based milk you wish.
For Spinach or Veggie Stuffed Shells
- Spinach – for spinach stuffed shells. This is optional, yet highly recommended. I use a 16 oz. bag of frozen spinach thawed and drained to make it easy. You can also use 22 cups of fresh spinach and steam it until it wilts and add it to the ricotta instead. (It takes 11 cups of fresh spinach to equal 1 cup of cooked spinach).
- Other Veggies – You can also use 2 cups of broccoli or other steamed veggies in place of the spinach.
Other Ingredients
- Pasta Sauce – any jarred red sauce will work. If you have time I highly recommend my homemade oven-roasted tomato sauce.
- Vegan Mozzarella or Vegan Parmesan Cheese – to put on top of your stuffed shells. (optional).

How to make vegan stuffed shells
Make the Pasta
Step 1 – Cook jumbo shells in salted boiling water for 8 minutes. Drain and rinse with cold water to stop the cooking process. (It’s better to slightly undercook them than overcook them. They will continue to cook a little more when you bake them).
While the shells are boiling, make the tofu ricotta
Step 2 – Drain and press the tofu to get out as much liquid as possible.
Step 3 – Add tofu, garlic, basil, nutritional yeast, olive oil, salt, and pepper to your food processor. Blend for about 1-2 minutes until smooth. (Add a splash of plain soy milk if needed to make it a ricotta texture.
Step 4 – Heat 2 cups of frozen spinach until thawed. (You can use a microwave or stovetop) Once it has thawed, put it into a colander, set it in the sink, and press the spinach with a spatula to squeeze the liquid out of it.
Step 5 – Add thawed and drained spinach to the ricotta mixture and blend again for a few seconds. (You can blend for another minute or two to get the spinach finely chopped for picky kids or you can stir the spinach in if you want it to remain more whole).

Assemble the shells
Step 6 – Preheat the oven to 350°F. It should be heated by the time you finish filling the shells.
Step 7 – Fill the cooked jumbo shells with the tofu ricotta mixture (About 2 tbsp. in each shell) and place them into a large baking dish. (Hold the shell putting pressure on both ends so that it opens up to fill it).
Step 8 – Pour a jar of marinara sauce over the shells or use 2 1/2 cups of my oven-roasted tomato sauce or roasted red pepper and tomato sauce. ( You can also place the stuffed shells on a bed of the sauce).

Bake the shells
Step 10 – Cover with foil and bake for 20 minutes at 350° F (176°C).
Step 11 – Top with vegan mozzarella cheese, cover again, and bake for another 20 minutes.
Step 12 – Take the foil off and bake the shells for an additional 10 minutes until bubbly in the center. (I bake them uncovered at the end to make them a little crispy on the edges. If you don’t want that, you can bake them covered the whole time).
Step 13 – Garnish with fresh chopped basil or parsley.

Pro Tips
- Slightly undercooking your shells will help to prevent them from breaking in the stuffing process.
- This makes a very large lasagna dish full of stuffed shells. I stack my shells on top of each other a little to make them all fit, but if you want a very orderly presentation, you divide them into 2 baking dishes. *Reduce baking time by 10 minutes if you are baking in 2 smaller dishes.
- If the shells start to stick together, simply rinse them again in cold water or place them in a pan of cold water before stuffing them.
Vegan cheese for stuffed shells
- I double my basic vegan ricotta recipe for these stuffed shells to make enough filling to fill a whole box of cooked jumbo shells. (You can cut the recipe in half if you want).
- You can use 3 cups of store-bought vegan ricotta instead as a replacement for the homemade version.
- You can add the cheese to the top in the beginning and skip the step of taking it back out of the oven to add the cheese. However, some of the store-bought vegan cheese cook down too much and will kind of disappear into your pasta sauce. (My homemade mozzarella can withstand baking for the full 50 minutes.
Variations of vegan stuffed shells
Cashew Ricotta – If you want a soy-free version, you can use 2 cups of raw cashews that you have soaked overnight and then drained and rinsed instead of tofu. Replace the oil with lemon juice and follow the rest of the recipe the same. It will take a lot more blending and you will need to stop and scrape the edges frequently. (You can also use a high powdered blender instead of a food processor).
Broccoli Stuffed Shells – Use 2 cups of chopped steamed broccoli instead of spinach.
Sausage Stuffed Shells – Add a batch of my vegan sausage crumbles to the ricotta or dice up my vegan Italian sausages a package of store-bought vegan sausage, saute it in a frying pan, and add it to the ricotta mixture.
Extra Cheesy Stuffed Shells – Stir a cup of vegan mozzarella-style cheese into the tofu ricotta mixture and top the shells with another layer of cheese. Or you can use my vegan alfredo sauce instead or in addition to the red sauce.
Creamy Stuffed Shells – Instead of red sauce or cheese over them, drizzle your stuffed shells with my vegan bechamel sauce or liquid vegan pizza cheese. This creamy white sauce is the ultimate comfort food!

How to store vegan stuffed shells
Refrigerator: The vegan stuffed shells will keep well in the fridge for 3 – 5 days in a sealed container.
Freezing: These tofu stuffed shells freeze well and can be stored in an airtight container in the freezer for up to 3 months.
Defrosting: Allow them to thaw in the fridge overnight before reheating.
Reheating instructions: Reheat the stuffed shells one serving at a time in the microwave for about 3-4 minutes. To reheat large amounts, sprinkle with 2 tablespoons of water, cover, and bake at 350° F (176°C) for about 20-25 minutes until hot in the center.
Can you freeze stuffed shells before baking?
These work great for meal prep! Simply cover the stuffed shells with a layer of plastic wrap pushed tightly against the shells to keep out as much air as possible. Then place another layer of foil or an air-tight lid and freeze for up to 3 months.
Allow to thaw for a day in the fridge before baking or add an additional 20-30 minutes of baking time if baking them from frozen. *Be sure to take the plastic wrap off before cooking!

Can I make stuffed shells ahead of time?
Yes! If you want to prepare these for a holiday or party, simply assemble them up to a day ahead of time, keep them covered in the fridge, and then bake them 1 hour before you want to eat.
What to serve with tofu stuffed shells
Since stuffed shells are sort of a filling dish, I like to serve them with some easy vegan broccoli salad or a vegan Ceasar salad on the side. Some vegan cheddar bay biscuits or vegan focaccia bread are also amazing with this meal.

Vegan stuffed shells recipe

Vegan Stuffed Shells
Ingredients
For the Pasta
- 1 16 oz package jumbo pasta shells, (gluten-free if necessary)
For the Ricotta
- 2 14 oz. packages extra-firm tofu, drained and pressed
- 1/3 cup nutritional yeast
- 2 tablespoons olive oil
- 2 teaspoons salt
- 2 cloves garlic
- 1/4 cup basil, or other fresh herbs or 2 tbsp dried herbs
- 1/4 teaspoon black pepper
- 1 splash soy milk, or water if needed to thin the ricotta
For Spinach or Veggie Stuffed Shells
- 1 16 oz package frozen spinach, or 2 cups wilted spinach ( or swap for steamed broccoli is desired.)
Other Ingredients:
- 1 26 oz jar pasta sauce
- 1 cup vegan mozzarella, to sprinkle on top (optional)
- 1/4 cup vegan parmesan cheese, to sprinkle on top (optional)
Equipment
Instructions
Make the Pasta
- Cook jumbo shells in salted boiling water for 8 minutes. Drain and rinse with cold water to stop the cooking process. (It’s better to slightly undercook them than overcook them. They will continue to cook a little more when you bake them).
While the shells are boiling, make the tofu ricotta
- Drain and press the tofu to get out as much liquid as possible.
- Add tofu, nutritional yeast, garlic, basil, olive oil, salt, and pepper to your food processor. Blend for about 1-2 minutes until smooth. (Add a splash of plain soy milk if needed to make it a ricotta texture.
- Heat 2 cups of frozen spinach until thawed. (You can use a microwave or stovetop) Once it has thawed, put into a colander, set in the sink, and press the spinach with a spatula to squeeze the liquid out of it.
- Add thawed and drained spinach to the ricotta mixture and blend again for a few seconds. (You can blend for another minute or two to get the spinach finely chopped for picky kids or you can stir the spinach in if you want it to remain more whole).
Assemble the shells
- Preheat the oven to 350°F (177°C). It should be ready by the time you finish filling the shells.
- Fill the cooked jumbo shells with the tofu ricotta mixture (About 2 tbsp. in each shell) and place them into a large baking dish. (Hold the shell putting pressure on both ends so that it opens up to fill it).
- Pour a jar of marinara sauce over the shells ( You can also place the stuffed shells on a bed of sauce).
Bake the stuffed shells
- Cover with foil and bake for 20 minutes at 350°F (177°C).
- Top with vegan mozzarella cheese, cover again and bake for another 20 minutes.
- Remove foil and bake the shells for an additional 10 minutes until bubbly in the center. (I bake them uncovered at the end to make them a little crispy on the edges. If you don't want that, you can bake them covered the whole time).
- Garnish with fresh chopped basil or parsley and serve hot.
Notes
- Slightly undercooking your shells will help to prevent them from breaking in the stuffing process.
- This makes a very large lasagna dish full of stuffed shells. I stack my shells on top of each other a little to make them all fit, but if you want a very orderly presentation, you divide them into 2 baking dishes. *Reduce baking time by 10 minutes if you are baking in 2 smaller dishes.
- You can add the cheese to the top in the beginning and skip the step of taking it back out of the oven to add the cheese. However, some of the store-bought vegan cheese cook down too much and will kind of disappear into your pasta sauce. (My homemade mozzarella can withstand baking for the full 50 minutes.
- If the shells start to stick together, simply rinse them again in cold water or place them in a pan of cold water before stuffing them.
Variations:
- Cashew Ricotta – If you want a soy-free version, you can use 2 cups of raw cashews that you have soaked overnight then drained and rinsed instead of tofu. Replace the oil with lemon juice and follow the rest of the recipe the same. It will take a lot more blending and you will need to stop and scrap the edges frequently. (You can also use a high powdered blender instead of a food processor).
- Broccoli Stuffed Shells – Use 2 cups of chopped steamed broccoli instead of spinach.
- Sausage Stuffed Shells – Add a batch of my vegan sausage crumbles to the ricotta or dice up a package of vegan Italian sausage, saute it in a frying pan and add it to the ricotta mixture.
- Extra Cheesy Stuffed Shells – Stir a cup of vegan mozzarella style cheese into the tofu ricotta mixture and top the shells with another layer of cheese. Or you can use my vegan alfredo sauce instead or in addition to the red sauce.
- Creamy Stuffed Shells – Instead of red sauce or cheese over them, drizzle your stuffed shells with my vegan bechamel sauce. This creamy white sauce is the ultimate comfort food!
*This was originally published on 2/13/20. It was updated on 3/25/21 to include new pictures and more detailed instructions.
📌 Be sure to follow me on Pinterest for new vegan recipes!
Hi
When I do this dish which is quite frequent I don’t boil begorehand so as to retain their shape when filling them. But I make sure that I place them in a single layer in the dish and add water just to reach thier top. I save some energy and are cooked excellent.
Also the ricotta I make I use both tofu and cashews in a single job, leave out the garlic and any spices if I must use it in sweet dishes cannoli e.g.
I made this last year as a pan of lasagna because I could not find large shells anywhere. This makes one of THE BEST lasagnas I have ever had! A non-vegan friend tried some and loved it.
I used the no-cook lasagna noodles and homemade sauce. Absolutely delicious. Thank you for this wonderful, tasty, and totally satisfying recipe!
Since it’s not a recipe for lasagna, I had a terrible time finding the recipe so I can make it again. I’ve been thinking about it for a few weeks LOL Glad I found it again, and I will print it for my recipe binder!
I’m glad that you like it! I use this tofu ricotta in my lasagna recipe too. You can find it here if you are interested… https://thehiddenveggies.com/vegan-lasagna/
This is delicious! I have been trying to get my husband to cut down on meat and dairy but hadn’t been successful until I found your website! I made this dish last night and he said “maybe there is something to this vegan thing.” I am so happy you have this website! So far I have only made these stuffed shells and your vegan breakfast burritos but I made them both within a few days of each other and now my husband wants me to try all of it! Tonight creamy vegan chipotle sauce. I’m so excited!
Just made this lastnight for dinner and it turned out amazing for some reason vegan food gets better with time so my 2nd serving was better than the first one 😋
I’m so happy that you liked the recipe! 🙂
Hi Monica,
Can firm tofu be used to make the ricotta cheese? I cannot find any extra firm tofu.
Yes, firm tofu will also work well. Enjoy! 🙂
This is literally one my kid’s favorite recipes. One of then said when they first tasted it ” this tastes like Christmas”! I’ve made it for so many church potlucks and family gatherings and no one can believe that it’s vegan. Excellent job with this recipe. I sometimes add impossible sausage crumbles and it’s delicious with that as well. I rarely leave comments, but couldn’t help myself with this one 🙂
I’m so happy that you like this recipe! It has been a family favorite in my house for years too! 🙂
I didn’t make the recipe yet but intend on making very soon for my son and daughter-in-law’s reception. Since there’s more prep in many of the vegan dishes I will be serving, was wondering if I could freeze this? If so, what do you recommend for thawing and baking?
You can freeze it, but it will change the texture of the ricotta a little since it is made of tofu. Tofu gets a little grainy after it is frozen. I would make it a day or two ahead of time and keep it in the fridge until you are ready to bake it. It will need an extra 10-15 minutes of bake time to account for it being cold from the fridge. If you choose to freeze it, let it thaw for about 24 hours in the fridge before baking.
I made this dish for a dinner when we were meeting our daughter’s boyfriend’s parents for the first time. Apparently halfway through the dinner the father asked my daughter… where was the vegan food? HAHAHA!! They didn’t realize they WERE eating vegan dishes 🙂 Thank you for this recipe!!
That’s so awesome! So happy that you liked it! 🙂
These turned out great! Except I needed more sauce to cover the shells. Also—the directions didn’t include nutritional yeast—so I forgot it and that prob affected the flavor and made it more bland. It will likely taste even better next time with the nutritional yeast!
Sorry about that, thanks for letting me know, it has been fixed now. I think that you will love them even more with the nutritional yeast. 🙂
I loved this recipe! I thought the tofu ricotta was fabulous and plan to use it in other recipes as well. I appreciated your suggestions for variety. I might try it next time with the vegan sausage crumbles.
I’m so happy that you liked the recipe, Megan! I think that you will love it with the vegan sausage too! 🙂
Your recipe isn’t vegan unless you’re buying a special kind of pasta. Normally pasta contains eggs and eggs are not vegan.
Actually, the majority of pasta is vegan. (At least where I live in the US, maybe it is different where you live.) Of course, I don’t use pasta with eggs since I am a strict vegan. Almost all dry pasta does not contain eggs. I wrote an extensive post about it that you can find here… https://thehiddenveggies.com/is-pasta-vegan/
This was so delicious! I think the tofu is better than the ricotta, very creamy. The next time I make it (which will be very soon) I will omit the spinach, I found it to add a dry taste. I cannot wait to convert this recipe into a lasagna, with some beefless beef. Thank you!
I’m glad that you enjoyed the recipe, Phillip! 🙂
Hi Monica,
I haven’t made this yet, but like your other recipes, it looks amazing! You’d mentioned that we could roll up thinly sliced eggplant in place of pasta shells. Do I need to do anything to the eggplant prior to baking, such as drawing out the moisture with a sprinkling of salt or are they good to go as is
Thanks! I’m really enjoying your webpage!
If you want to make eggplant roll-ups, I usually salt them first to sweat out some liquid, then bake them on an oiled cookie sheet for about 10 minutes to soften them up before I spread the ricotta on them and roll them up. I also have a zucchini lasagna recipe on the site if you are looking for more plant-based alternatives instead of pasta noodles. Here is the link to that… https://thehiddenveggies.com/vegan-zucchini-lasagna/ Enjoy. 🙂
My ricotta turned out watery. I didn’t steam the spinach I put it in the blender right from the package. Is that why it turned out watery?
Yes, I think that would be the answer. I usually use frozen spinach and let it warm up, then press out all of the excess water. Steaming fresh spinach will help get some liquid out of it. Also, be sure to use extra-firm tofu and press it well.
Oooops sorry I meant Monica lol
Hi Rachel, do you think it would work well to make it ahead of time and leave it in the fridge to just pop in the oven at dinner time?
Yes, that will work just fine. Enjoy! 🙂
I don’t usually leave comments on recipes but then I do always read the comments before I try out the recipe…thought it was best that I started to leave some feedback! This recipe is fab, absolutely love the tofu ricotta, something which I think could be used in a variety of recipes! I halved the recipe which lasted for dinner and a yummy lunch the next day for two people.
Thank you, Rachel
I’m so happy that you liked it, Rachel! Thanks for commenting! I love to hear when people like my recipes! 🙂
Making this tonight! (I made the vegan mozzarella last night) Does the nutritional yeast go in the food processor with the tofu ricotta mixture, or on top of the assembled shells? Also, on the mozzarella recipe, the ingredients says 1/4 tsp garlic powder, and the directions says 1/2 tsp, which is correct? Thank you for what I’m sure will be another amazing recipe!!
You want to put the nutritional yeast in the food processor with the tofu. You can sprinkle more on top of the shells too if you want, but it helps to flavor the tofu. Sorry about the garlic powder typo – I will go fix it now. I use 1/2 tsp of garlic powder in the mozzarella, but you can use less if you don’t like garlic. I hope that you love the stuffed shells! 🙂
songood! my boyfriend told me I can add some veggie meat inside, then i add more veggie meat , super duper yummy!
I’m so happy that you liked it! 🙂
Made this 2 nights ago and it was really yummy and easy to make. I didnt bother with the shells – rolled the filling up in lasagna noodles and followed the recipe for the rest.
Thank you. Sue
I’m glad that you liked it, Sue! 🙂
These are really delicious! We do meatless dinners a few nights a week and everyone loved this. You’d have no idea this is dairy free.
Thanks, Rachel! I’m so happy that you all liked it! 🙂
I made these last night. They were delicious! The whole family loved them too! I’ll be making them again for sure!
I’m so happy that you liked them, Carolyn! They are a family favorite for sure! 🙂