Ingredients
Equipment
Method
Mix and brown the meatballs
- In a bowl, mix ground beef, breadcrumbs, egg, Worcestershire, garlic powder, salt, and black pepper until evenly combined. Roll into meatballs.
- Add butter to an oven-safe skillet and brown the meatballs in the same skillet. Cook until golden on the outside, then remove to a plate.
Caramelize the onions and build the sauce
- In the same skillet, cook thinly sliced onions over medium-low heat for 30-35 minutes, stirring occasionally, until deeply caramelized. When the onions are nearly done, add minced garlic and fresh thyme and cook 1 minute.
- Pour in the dry white wine to deglaze, scraping up browned bits from the bottom of the skillet. Cook briefly until slightly reduced, then add beef broth and Worcestershire.
Simmer, top, and broil
- Nestle the browned meatballs into the caramelized onion sauce so they are partially submerged. Simmer for 10 minutes, turning once if needed.
- Scatter shredded Gruyere over everything in an even layer. Broil for 3-5 minutes at high heat until golden and bubbly.
Notes
Pro tip: slice onions evenly for faster, more uniform caramelization—patience matters more than high heat. Refrigerate leftovers in an airtight container for up to 3 days; rewarm gently on the stovetop or in the oven at 325°F until hot. Freezing is not recommended because the onions and cheese texture can soften when thawed. For a lighter swap, use lean ground beef (90% or leaner) for a similar flavor with less fat.
