Ingredients
Equipment
Method
Mix and shape meatballs
- In a bowl, combine ground beef, breadcrumbs, egg, Worcestershire, garlic powder, salt, and pepper until evenly mixed. Roll into meatballs of roughly equal size so they brown uniformly.
Brown meatballs
- Melt 4 tablespoons butter in an oven-safe skillet over medium heat, then add the meatballs in a single layer. Cook until golden-brown on all sides, about 6-8 minutes total, then transfer to a plate.
Caramelize onions
- Lower heat to medium-low and add thinly sliced onions to the same skillet. Cook, stirring occasionally, for 30-35 minutes until deeply caramelized, then add minced garlic and fresh thyme.
Build the onion broth
- Pour in the dry white wine and scrape up the browned bits from the bottom of the skillet. Simmer for 1-2 minutes, then stir in beef broth and Worcestershire.
Simmer meatballs in sauce
- Return the meatballs to the skillet and nestle them into the caramelized onion sauce. Simmer for 10 minutes, letting some of the sauce come up around the meatballs for a braised look.
Melt and broil Gruyere
- Scatter the shredded Gruyere evenly over the entire surface of the skillet. Broil for 3-5 minutes until golden and bubbly, then rest 2 minutes before serving.
Notes
For the deepest onion flavor, keep the heat at medium-low while caramelizing and avoid rushing—if the pan looks dry, add a splash of beef broth. Store leftovers in the refrigerator up to 3 days; rewarm gently on the stovetop. Freezing is yes for the cooked skillet (cool completely, freeze up to 2 months) though the cheese can soften on reheating. Dietary swap: for a lower-fat option, use 93% lean ground beef or swap in ground turkey for a lighter texture.
