Preheat the oven to 375°F.
In a large bowl, whisk together eggs, half-and-half, salt, and pepper. Mix in about half of the cheese.
Heat butter in a 10-inch oven-safe skillet over medium heat. Add onions and bell peppers, sauté until softened, about 5 minutes.
Add garlic and let cook until lightly golden, then add spinach and cook until just wilted.
Pour the egg mixture over the sautéed vegetables. Sprinkle remaining shredded cheese on top. Cook without stirring for about 5 minutes until the edges start to set.
Transfer the skillet to the oven and bake for 20-25 minutes, or until the frittata is set and lightly golden on top.
Remove from oven, let cool for a few minutes, then slice and serve. Garnish with fresh herbs if desired.