Ingredients
Equipment
Method
Make and brown the meatballs
- In a bowl, combine ground beef, breadcrumbs, egg, Worcestershire, garlic powder, salt, and pepper, then mix until evenly combined.
- Roll the mixture into meatballs, about 1 to 1.5 inches wide.
- Heat 1 tablespoon butter in an oven-safe skillet over medium-high heat, then brown the meatballs in batches until golden on multiple sides.
- Remove the browned meatballs to a plate and keep any browned bits in the skillet.
Caramelize onions and build the French onion base
- Melt the remaining butter in the same skillet over medium-low heat, then add the thinly sliced onions.
- Cook the onions for 30-35 minutes, stirring occasionally, until deeply caramelized and jammy.
- Stir in the minced garlic and fresh thyme for 30-60 seconds, just until fragrant.
- Pour in the dry white wine and scrape up the browned bits, then simmer for 2-3 minutes to reduce slightly.
- Add beef broth and Worcestershire, stirring to combine.
Simmer, top with Gruyère, and broil
- Nestle the meatballs into the caramelized onion sauce so they’re partially submerged.
- Simmer for 10 minutes, letting the meatballs absorb some onion broth.
- Scatter the shredded Gruyère evenly over the skillet.
- Broil 3-5 minutes until the cheese is golden and bubbly, with browned spots across the surface.
Notes
Pro tip: for the richest flavor, don’t rush the onion stage—low and slow until truly deep caramelization. Store leftovers in the fridge up to 3 days; reheat gently in a skillet or microwave until hot. Freeze meatballs and sauce (tightly sealed) up to 2 months, and add cheese fresh when reheating for best texture. For a lighter option, swap half the ground beef for lean ground turkey while keeping the same seasonings.
