Preheat oven to 350°F.
Bring a large pot of well-salted water to a boil.
Add the pasta shells and stir.
Cook the pasta until al dente, about 15 minutes.
Drain the pasta and rinse with cool water.
Spoon 1 cup of tomato sauce into a 10”x 14” (or of similar size) baking dish and spread it around so it covers the bottom of the dish.
Squeeze the water out of the spinach and place in a large bowl.
Sauté the shallots in a small pan with 1 tablespoon of olive oil for two to three minutes until they are softened and then place the shallots in the bowl with the spinach.
Add the egg, ricotta, ½ cup Parmesan, salt, and pepper in with the spinach and mix thoroughly.
Spoon a heaping tablespoonful of the spinach mixture into each shell.
Nestle shells against each other in the baking dish.
Spoon additional tomato sauce over shells.
Cover with foil and bake in 350 oven for 20 minutes.
Remove foil, sprinkle with the remaining grated Parmesan and mozzarella cheese, and bake for another 10-15 minutes.
Serve with grated Parmesan and fresh basil.