In an oven-safe 10-inch skillet, heat olive oil and butter over medium-low heat.
Once the oil and butter have melted and the pan is hot, add the thinly sliced onions, sprinkle with a bit of sea salt and pepper, and stir. Cook for about 5 minutes, stirring frequently until the onions are caramelized.
Meanwhile, in a large mixing bowl, lightly whisk eggs until the yolks are combined, don't beat it. Add the milk, salt, and pepper. Whisk until just combined.
Once the onions have cooked, add the spinach to the pan and stir to combine. The spinach will quickly wilt and decrease in size.
Spread the caramelized onions and spinach evenly around the pan and pour in the egg mixture. Crumble the goat cheese evenly around the top.
Cook for 8-10 minutes or until the eggs are set around the edges but still a bit jiggly in the centre.
Be sure to run your spatula along the edges to make sure nothing sticks and periodically lift the frittata up gently to see if the bottom is browning too quickly.
Transfer pan to the oven and broil for 3-5 minutes or until the top has browned.
Remove the pan from under the broiler and slide the frittata onto a cutting board. Let it rest for 5 minutes before slicing into 6 wedges.
Serve warm.