Grease a 9x13 baking dish with butter and set aside.
Cook the spinach according to the package directions, drain well, and set aside.
In the meantime, in a large saute pan over low-medium heat, add the butter and olive oil. When it is hot and shimmery, add the onions and lightly sprinkle with salt. Cook, stirring often, until tender and beginning to caramelize, about 15 minutes. Taking care not to let them burn.
Add the garlic to the onions and stir until fragrant, about 30 seconds. Turn off the heat and drain out the excess the oil and butter, leaving approx. 2 tablespoons in the pan. Add the spinach mixture to the pan, mixing well to combine. Lightly season with salt and pepper and gently combine again.
Add a layer of cubed bread to the bottom of the buttered baking dish. Next, add half of the Gruyère as evenly as possible. Layer with the remaining bread. Add the spinach and onion mixture on top, using a fork to help pick it up and move it around where needed. Top with the remaining cheese.
Using a large mixing bowl, beat the eggs, white wine, and half and half with a whisk. Season with salt and pepper, beat to combine.
Carefully pour the egg mixture over the strata, PRO TIP using a large spouted measuring cup helps especially into the corners of the dish.
Gently lift the bread to incorporate the egg mixture underneath, too. When done, press the bread down with the back of a cooking spoon to help absorb.
Cover with plastic wrap and foil and place in the refrigerator overnight.
When ready to bake, preheat the oven to 350 F. (176 C.). Remove the plastic and discard. Cover again with the foil and bake for 30 minutes, taking care to not touch the cheese with the foil. Remove the foil and bake 20 minutes more, or until the strata is bubbling and lightly golden brown.
Remove from the oven and let it rest at least 20 minutes, or longer. Can be served room temperature, too.