Preheat oven to 350 degrees F.
Cook the pasta shells according to package directions until just al dente. Drain and run under cold water to prevent sticking, being careful not to break them. Note: They will continue to cook in the oven, so al dente is ideal.
If using frozen spinach: squeeze out the excess moisture from the spinach and pat dry. If using fresh spinach: sauté first and absorb any excess moisture. Note that if using fresh, you'll need a lot more since it will reduce.
Make the filling: In a bowl, combine ricotta, 1 cup of mozzarella cheese, ¼ cup parmesan cheese, spinach, fresh basil, fresh parsley, eggs, garlic powder, Italian seasoning, salt, and pepper. Mix until well combined.
Spread a layer of marinara sauce in a 9x13 inch baking pan, or in a round shallow Dutch oven pan.
Fill the cooked pasta shells with the filling using a spoon or a large cookie scoop for ease. Arrange them on top of the marinara sauce layer, open side up.
Spread some more marinara over the shells. Top with remaining ½ cup of mozzarella and ¼ cup of parmesan cheese. We just need a light layer so the shells are visible.
Cover with aluminum foil and bake for 25 minutes. Remove foil and bake for another 5 more minutes until the cheese is melted. Uncover and broil for 2-3 more minutes until slightly golden brown and bubbly.
Let cool down slightly and serve. Enjoy!