Preheat and prep: Set your oven to 375°F (190°C). If using the broiler to finish, make sure your skillet is oven-safe.
Crack the eggs into a large bowl, add the milk or cream, a generous pinch of salt, and pepper. Whisk until smooth and slightly frothy.
Slice and chop: Clean the mushrooms with a damp towel and slice. Finely chop the onion or shallot, and mince the garlic.
Roughly chop fresh spinach if the leaves are large.
Sauté the mushrooms: Heat olive oil or butter in a 10–12 inch skillet over medium-high. Add mushrooms with a pinch of salt. Cook, stirring occasionally, until they release their moisture and brown around the edges, about 5–7 minutes.
Add aromatics: Lower the heat to medium.
Stir in onion or shallot and cook until soft and translucent, 2–3 minutes. Add garlic and cook 30 seconds more, just until fragrant.
Wilt the spinach: Add the spinach in batches with a small pinch of salt. Toss until just wilted and most moisture has cooked off, 1–2 minutes.
If the pan looks wet, cook another minute to reduce excess liquid. This helps avoid a soggy frittata.
Season and arrange: Taste the veggies and adjust salt and pepper. Spread them evenly over the skillet.
Sprinkle in chopped herbs if using.
Add eggs and cheese: Pour the egg mixture over the vegetables, tilting the pan to distribute evenly. Dot or sprinkle the cheese over the top. For a light kick, add a pinch of red pepper flakes.
For brightness, a little lemon zest is lovely.
Start on the stovetop: Cook over medium-low heat without stirring. Run a spatula around the edges occasionally to prevent sticking. When the edges are set and the center is still a bit loose, 4–6 minutes, it’s ready for the oven.
Finish in the oven: Transfer the skillet to the oven and bake until the center is just set, 6–10 minutes.
For a golden top, switch to the broiler for the last 1–2 minutes, watching closely.
Rest and serve: Let it rest 5 minutes to settle. Slice into wedges. Serve warm with a simple green salad or toast.