Preheat oven to 350 degrees. Heat the olive oil in a large sauté pan over medium-high heat. Add the onion, garlic and a 1/4 teaspoon salt. Sauté until tender and fragrant, about 3-4 minutes. Add a handful or two of spinach and, working in batches, wilt the spinach and sauté until any liquid is absorbed. Set aside to cool slightly.
Bring a large pot of heavily salted water to boil. Add the shells and cook until slightly tender, but not all the way through, about 5 minutes. Drain and rinse with cold water.
In a mixing bowl, combine the ricotta, mozzarella, egg, black pepper to taste, parsley and the remaining salt. Stir in the spinach mixture.
Spoon the ricotta and spinach mixture into the shells and place in a rectangular Pyrex or casserole dish. Pour 2 cups marinara over top and sprinkle with Parmesan. Bake in the oven for 25 minutes until crisped and lightly browned on top.
Heat remaining marinara sauce in small saucepan over medium heat. To serve, spoon sauce over shells and sprinkle with fresh basil.