Ingredients
Equipment
Method
Mix and shape meatballs
- In a mixing bowl, combine ground beef, breadcrumbs, egg, Worcestershire, garlic powder, and salt and pepper, then mix until just combined.
- Roll the mixture into meatballs and set them aside.
Brown meatballs in the skillet
- Melt 1–2 tablespoons of butter in an oven-safe skillet over medium-high heat, then brown the meatballs until golden on the outside.
- Remove the meatballs to a plate while keeping the browned bits in the skillet.
Caramelize the onions
- Add the remaining butter and cook onions in the same skillet over medium-low heat for 30-35 minutes, stirring occasionally, until deeply caramelized.
- Stir in the minced garlic and fresh thyme for 30 seconds, just until fragrant and lightly softened.
Build the French onion sauce
- Pour in the dry white wine and scrape up the browned bits, simmering until the liquid reduces slightly, about 2-3 minutes.
- Add beef broth and Worcestershire, then bring to a gentle simmer.
Simmer and broil with cheese
- Nestle the meatballs into the caramelized onion sauce and simmer for 10 minutes, turning once so they cook through.
- Scatter shredded Gruyère over the top and broil for 3-5 minutes until golden and bubbly with melted cheese covering the surface.
Notes
For even browning, keep the skillet hot while searing the meatballs, then don’t stir the onions constantly—let them caramelize over medium-low for the full 30-35 minutes. Store leftovers covered in the fridge up to 4 days; reheat gently until hot throughout. Freezing is not recommended because Gruyère can become grainy when thawed and reheated. For a lower-fat option, use lean ground beef (90% or leaner) and reduce butter to 3 tablespoons.
