Preheat the oven to 350º Fahrenheit. Lightly grease a deep 9 by a 13-inch ovenproof baking dish with butter and set aside.
Bring a large pot of salted water to a boil.
In a large skillet, heat 1 tablespoon of the olive oil over medium-high heat and sauté half of the onions, and zucchini (if using) for 4-5 minutes. Add 1 tablespoon of garlic and cook 20-30 seconds. Season with salt, black pepper, and crushed red pepper flakes. Remove from the heat and transfer to a large bowl to cool.
When the mixture has cooled to room temperature, stir in the ricotta cheese, spinach, egg, and ½ cup parmesan cheese; mix well to combine.
Add the pasta shells to the boiling water and cook for 8 minutes; make sure not to overcook. Drain and rinse in cold running water. Set aside.
Stuff the pasta shells with the ricotta mixture and place them in the prepared dish.
In a large saucepan, heat the remaining olive oil over medium-high heat and sauté the remaining chopped onion until translucent, about 4 minutes. Add the remaining tablespoon of garlic and cook until fragrant about 20-30 seconds. Add the crushed tomatoes and salt + black pepper, cook for 5 minutes. Add the heavy cream and cook until the sauce is reduced in volume by about 1/3, about 10-15 minutes. Add the basil to the sauce and pour the sauce over the shells.
Sprinkle the fontina and the remaining Parmesan cheese all over the stuffed shells. Cover loosely with aluminum foil and bake for 20-25 minutes. Remove the foil and continue baking until the cheese is melted and bubbly, about 10-15 minutes longer. Let stand for 10 minutes before serving. Enjoy!