Preheat your skillet. Place a large nonstick or cast-iron skillet over medium heat.
Add olive oil or butter and let it warm until shimmering or melted.
Sauté the onion. Add the chopped onion with a pinch of salt. Cook for 3–4 minutes, stirring occasionally, until it’s soft and turning translucent.
Add the garlic and mushrooms. Stir in the minced garlic and sliced mushrooms. Cook for 5–7 minutes, letting the mushrooms release their liquid and brown lightly.
Season with salt and pepper.
Toss in the tomatoes (if using). Add halved cherry tomatoes and cook 1–2 minutes until they soften slightly. This adds a juicy pop and some color.
Wilt the spinach. Add the spinach in batches, stirring until it wilts down. This should take 1–2 minutes.
Taste and adjust salt and pepper.
Create space for the eggs. Use your spatula to make 3–4 small wells in the veggie mixture. Drizzle a tiny bit of oil into each well to prevent sticking.
Cook the eggs. Crack an egg into each well. Reduce the heat to medium-low, cover the skillet, and cook until the whites are set and the yolks are done to your liking, about 4–6 minutes.
For firmer yolks, give it another minute or two.
Add feta and herbs. Sprinkle crumbled feta over the skillet, along with chopped parsley, dill, or chives. Add red pepper flakes if you want a little heat.
Finish and serve. Turn off the heat. Add a small squeeze of lemon over the veggies for brightness.
Serve straight from the pan with crusty toast or warm tortillas.