As you know, I have the final say on all things and I will overturn a vote if I disagree with the outcome. But this one time!! I really was stuck between two great options and told myself I would let the people decide. Luckily the people chose shells because in my heart thats what I wanted to make.
Also lucky for me - I got to work with Botticelli on this recipe and they were very chill and lovely about letting me have full creative freedom, even if that meant potentially changing course three days prior to filming. Lasagna will also have its moment, I promise.
The result? I will be making this dish for dinner parties for the rest of my life and I suggest you do as well. Why? It’s delicious of course but so are many things. More than that, this is one of those recipes you can prep in advance, a day or even a month in advance to keep in the freezer. The recipe makes 2 pans of shells so make one for now and save the other one for later (I have one in my freezer right now!!).
The recipe is intentionally designed to use a whole pound of ground beef, a whole block of Boursin, a whole box of jumbo shells, a 16-ounce block of mozzarella, and two jars of vodka sauce. The goal was not to have a bunch of half used ingredients left over. So you’ll have two pans of shells! Bake one, freeze the other, or deliver it to a friend!
Because the filling requires chopping, cooking, and then piping - we’re giving ourselves a break and using a jar of sauce. The vodka sauce is smooth, balanced, and cozy which pairs perfectly with the meat filling.
Stuffed shells have always intrigued me because I love the prep and the presentation but why??? are they always stuffed with cheese and spinach? Feels like a missed opportunity to do so much more. I understand that many Italian pastas are meant to be a primi not a secondi and I respect that. But shells are just begging for more and I fear that making this dish is just the start of a long road of shells for me.
Time: 2 hours including prep and baking
Makes: 2 dishes of shells, I ended up with 43 shells
Ingredients
For the Beef Filling
1/4 sweet onion, finely diced
1/4 fennel bulb, finely diced
1 leek, trimmed, thoroughly cleaned, and finely diced
2 celery stalks, finely diced
6 garlic cloves, finely chopped
Olive oil, as needed
Salt, as needed
Red pepper flakes, to taste
1 lb 85/15 ground beef
1/2 teaspoon salt
1/2 teaspoon freshly cracked black pepper
1 teaspoon Italian seasoning
1 (5.2 oz) block garlic + herb Boursin
1 cup shredded low-moisture mozzarella
1 tablespoon Calabrian chiles
3/4 cup Botticelli Alla Vodka sauce
A note on the vegetables: You’re looking for about 1 1/2 cups finely diced vegetables total. The onion, fennel, leek, and celery combination is my favorite, but it’s flexible. You can leave out any one of them — I’d just recommend using at least two.
For the Shells
1 (12 oz) box jumbo pasta shells
2 jars Botticelli Alla Vodka sauce
16 oz low-moisture mozzarella, shredded, divided
Freshly grated parmesan, for serving
Fresh basil, for serving
Instructions
Prep the vegetables. Finely dice the onion, fennel, leek, and celery. You want a very small dice so the vegetables blend easily into the meat filling.
Finely chop the garlic and set it aside.
Heat a generous drizzle of olive oil in a large skillet over medium-low heat.
Add in your diced veggies with a pinch of salt. Cook slowly, stirring occasionally, until soft and translucent, about 8–10 minutes. You’re looking to sweat the vegetables rather than brown them.
Add the garlic and a pinch of red pepper flakes. Cook for another 30–60 seconds, just until fragrant.
Season the ground beef with 1/2 teaspoon salt, 1/2 teaspoon black pepper, and 1 teaspoon Italian seasoning.
Add another drizzle of olive oil to the skillet if needed, followed by the ground beef.
Cook over medium heat, breaking the beef into very small pieces as it cooks. This is important — the filling eventually needs to fit easily through a piping bag and into the shells.
Once the beef is fully cooked, remove the skillet from the heat. Transfer the beef and vegetable mixture to a large mixing bowl and let it cool slightly.
Meanwhile, bring a large pot of well-salted water to a boil.
Add the jumbo shells and cook them for 2–3 minutes less than the package directions. You want them quite al dente since they’ll continue cooking in the vodka sauce later.
Drain the shells and rinse briefly with cool water to stop the cooking.
Arrange them individually on a sheet pan, clean kitchen towel, or parchment so they don’t stick together while you make the filling.
Once the meat has cooled slightly, add the Boursin, 1 cup shredded mozzarella, Calabrian chiles, and 3/4 cup vodka sauce.
Mix thoroughly until everything is evenly incorporated.
The filling should be creamy and spreadable but not loose or saucy. If it’s too dry, add another 1/4 cup of vodka sauce or a splash of liquid like milk/ chicken stock/ water.
Transfer the filling to a large piping bag or gallon-size zip-top bag. Cut an opening about 3/4 inch wide from the tip or corner.
Pipe the filling generously into each cooked shell until you’ve used all of the filling. This is my favorite part!!
Assemble the Shells
This recipe makes enough for two baking dishes. I used one cast-iron skillet and one 9x13-inch baking dish.
Before you begin assembling, you can arrange the empty cooked shells in your dishes to get an idea of how they’ll fit.
Spread a thin layer of vodka sauce over the bottom of each baking dish — just enough to cover the surface.
Arrange the stuffed shells opening-side up over the sauce.
Spoon another thin layer of vodka sauce over the shells. They don’t need to be completely submerged or covered.
Finish with a generous layer of shredded low-moisture mozzarella.
Between the mozzarella in the filling and on top of both dishes, I use approximately one 16-ounce block total.
Bake
Preheat the oven to 375°F.
Cover each baking dish tightly with aluminum foil and bake for 30–40 minutes, until the cheese is completely melted and the vodka sauce is bubbling around the edges.
Remove the foil and increase the oven temperature to 425°F.
Return the shells to the oven, uncovered, for another 10–15 minutes, or until the mozzarella is bubbling with golden-brown spots across the top.
Remove from the oven and let it rest just until the bubbles calm down then serve!!
Finish with freshly grated Parmesan and fresh basil.
Make Ahead + Freezing
One of the best things about this recipe is that it makes two full dishes, so I recommend baking one now and freezing the second for later.
For the freezer dish, assemble the shells completely with the sauce and cheese but do not bake them.
Let the meat filling cool before assembling, then cover the finished dish very tightly. I like to use a layer of plastic wrap followed by heavy-duty aluminum foil, or use a freezer-safe container with an airtight lid. Keeping air out helps protect food from freezer burn.
Label the dish with the recipe name, date, and baking instructions.
For the best texture, I’d use the frozen stuffed shells within about 2–3 months. Food kept continuously frozen at 0°F remains safe much longer, but quality gradually declines over time.
To Bake After Freezing
My preferred method: Transfer the frozen shells to the refrigerator the night before and allow them to thaw overnight.
Bake covered at 375°F for about 35–45 minutes, or until hot and bubbling throughout. Remove the foil, increase the oven to 425°F, and bake another 10–15 minutes until golden.
If your baking dish is glass, I strongly recommend thawing it in the refrigerator rather than transferring a frozen glass dish directly into a hot oven.
To Bake Directly From Frozen
You can also bake the casserole without thawing.
Keep the dish covered and bake at 375°F for roughly 60–75 minutes, checking toward the end. Once the center is piping hot and the sauce is bubbling, remove the foil, increase the temperature to 425°F, and bake another 10–15 minutes to brown the cheese.
For food-safety purposes, the center of a reheated or previously cooked dish should reach 165°F.
Storing Leftovers
Let cooked leftovers cool and refrigerate them within 2 hours. Store covered in the refrigerator and eat within 3–4 days.
Reheat individual servings in the microwave or covered in the oven until hot throughout.
Tips
Really break up the beef. Large pieces make the shells difficult to pipe. The finished mixture should almost resemble a very chunky meat sauce before you add the cheese.
Don’t fully cook the shells. Taking them out 2–3 minutes early makes them easier to fill without tearing and prevents them from becoming mushy during baking.
Grate your own mozzarella. Low-moisture mozzarella from a block melts especially well and gives you that bubbly, stretchy cheese layer on top. Perfect for a cheese pull!!
Make the whole recipe. It’s essentially the same amount of work as making one pan, and having an assembled second dinner waiting in the freezer is absolutely worth it.







I love stuffed shells!!