Cook the pasta shells in salted water until al dente. Reserve 1 cup of the pasta water, drain the rest, and set aside.
In a large skillet, heat 2 tablespoons of olive oil and sauté spinach until wilted. Add garlic and red pepper flakes, sauté for 30 seconds, then remove and roughly chop.
Add the chopped spinach to a medium bowl along with the ricotta, romano, 1 cup of mozzarella, ¾ cup of parmesan, parsley, pepper, egg, and cream. Mix until fully combined.
In the same skillet, drizzle in the remaining 2 tablespoons of olive oil and cook the Italian sausage and onions until browned. Stir in garlic and cook 30 seconds. Add tomato sauce, diced tomatoes, basil, oregano, salt, and pepper. Simmer for 20–30 minutes. Add in some or all of the pasta water if the sauce is too thick for your liking.
Preheat oven to 375°F. Spread half the sausage sauce in a 9x13 baking dish. Fill shells with cheese mixture and place in dish. Top with remaining sauce, then sprinkle with remaining mozzarella and parmesan.
Bake uncovered for 45 minutes until bubbly and lightly browned. Garnish with parsley and basil if desired. Enjoy!