Preheat oven to 350 degrees F and fill a large bowl with cold water and ice, set aside. Bring a large pot of salted water to a boil. Add pasta shells and cook according to package directions. Drain well then add to ice water until ready to stuff.
Heat a large skillet over medium-high heat. Add onion and pork sausage then use a wooden spoon to break up the sausage, cook 5-6 minutes until browned.
If using fresh spinach, boil water and add spinach immediately when water starts boiling. Take out after 1-2 minutes only. Don't over cook.
Add garlic and cook 30 seconds then add tomatoes and spinach (make sure the spinach has been squeezed dry); cook 1 minute. Remove pan from heat and stir in ricotta cheese (if you are using ricotta cheese).
Using a spoon, or zip lock bag where you cut one end, fill pasta shells with the filling and arrange in a baking dish (9-inch x 9-inch baking dish works well). Sprinkle tops with shredded cheese then bake in the oven 25-30 minutes until cheese has melted and tips of shells begin to crisp and brown.