Bring a large pot of salted water to a boil. Cook pasta shells until al dente, then drain and rinse under cold water to prevent sticking.
Heat olive oil in a skillet over medium heat. Sauté garlic until fragrant, about 30 seconds. Add spinach and cook until wilted about 2 minutes. Let cool slightly, then chop if needed.
In a bowl, mix ricotta, mozzarella, Parmesan, egg, basil, salt, black pepper, and Italian seasoning (if using) until well combined. Add the spinach and mix until combined.
Preheat the oven to 375°F (190°C). Spread 1 cup of marinara sauce at the bottom of a baking dish.
Stuff each shell with about 1-2 tablespoons of the ricotta mixture and arrange them in the baking dish.
Pour the remaining marinara sauce over the shells and sprinkle with extra mozzarella cheese. Cover with foil and bake for 25 minutes.
Remove the foil and bake for another 10 minutes until the cheese is melted and bubbly.
Let cool slightly, then serve with extra Parmesan and fresh basil on top.
Notes
Boil the pasta just until al dente — slightly underdone is better than overcooked. They’ll soften more while baking, and firmer shells are much easier to stuff without tearing.
If you're using frozen spinach or sautéed fresh, be sure to squeeze out all the moisture using a clean kitchen towel or paper towels. Extra liquid will make your filling watery and cause soggy shells.
Before mixing in the egg, taste your cheese-spinach mixture for seasoning. It’s your only chance to adjust salt or herbs — once the egg’s in, no more taste testing.
A generous layer of marinara on the bottom prevents the shells from sticking and helps them cook evenly. It also infuses flavor from the bottom up, so go for the full cup!
After baking, let the dish sit for at least 10 minutes before serving. This helps everything set up, so the shells hold their shape and don’t fall apart when you plate them