Boil the shells: Bring a large pot of salted water to a boil and cook the pasta shells until just tender. Drain and set aside to cool.
Make the filling: If using fresh spinach, sauté it in a little olive oil until wilted, then squeeze out excess moisture. Combine spinach, ricotta, mozzarella, Parmesan, egg, garlic, and seasoning in a bowl. Mix until creamy and thick.
Prepare the baking dish: Spread a thin layer of marinara sauce on the bottom to prevent sticking.
Stuff each shell: Use a small spoon or piping bag to fill each shell generously with the ricotta mixture.
Arrange and top: Place shells snugly in the dish, spoon over remaining sauce, and sprinkle cheese on top.
Bake covered: 20 minutes to heat through.
Uncover and bake: 10–15 more minutes for a bubbly, lightly browned top.
Serve hot: Let it rest for 5 minutes before plating.