Prep. Preheat oven to 350°F (177ºC). Generously grease a 12-cup muffin pan with nonstick spray (get the rims too) or brush with oil/butter to prevent sticking.
Dry spinach. Finely chop spinach, then squeeze very dry in paper towels. (Optional: quick sauté in a dry skillet 30–60 seconds to steam off moisture; cool.)
Whisk eggs. In a large bowl, whisk eggs (6) until smooth. Whisk in half-and-half (1 cup).
Add fillings. Stir in cheddar (1 1/2 cups), diced ham (8 ounces), and spinach (1/2 cup). Season with pepper and go light on salt (ham + cheddar add plenty).
Fill cups. Divide mixture evenly between muffin cups, filling each about ¾ full (about 3 tablespoons per cup, depending on your pan).
Optional ham-base method: Add a little ham to each cup first, pour in egg mixture, then give each cup a quick gentle swirl with a skewer to distribute.
Bake. Bake 18–22 minutes, until centers are set with no wet jiggle. For best accuracy, muffins are done at 160°F in the center.
Cool + remove. Let cool in pan 8–10 minutes. Run a knife around the edges, then lift out.
Serve. Serve warm.
Notes
Preheat your oven and grease your muffin tin generously (eggs are clingy like that).
If you’re using veggies, sauté them first so you don’t end up with watery, soggy egg muffins.
Cook and drain any meat add-ins (sausage, bacon, ham) so extra grease doesn’t pool.
Whisk the eggs until they look a little frothy — that tiny step makes a big difference in fluffiness.
Don’t overfill the cups; aim for about ¾ full so they rise nicely without spilling.