Ingredients
Equipment
Method
Make and brown the meatballs
- In a mixing bowl, combine ground beef, breadcrumbs, egg, Worcestershire, garlic powder, onion powder, salt, and pepper, then form into 1.5-inch meatballs.
- Heat butter in a skillet over medium-high heat, add meatballs, and brown them, then transfer them aside.
Caramelize the onions and build the sauce
- In the same skillet, caramelize the thinly sliced onions in butter over medium-low heat for 30-35 minutes, stirring until deep golden.
- Add dry white wine (or beef broth) to deglaze the skillet, scraping up browned bits.
- Stir in beef broth, Worcestershire, and fresh thyme, then bring the sauce to a gentle simmer.
Simmer, cheese, and finish
- Return browned meatballs to the sauce and simmer for 15 minutes, so the centers cook through and soak up onion flavor.
- Transfer to a baking dish if the skillet isn’t oven-safe, then scatter Gruyère/provolone over the top.
- Broil for 3-4 minutes at high heat until the cheese is golden and bubbly.
Notes
Pro tip: slice onions evenly so they caramelize at the same pace; if the pan looks dry during onion cooking, add a splash of broth. Refrigerate leftovers in an airtight container for up to 3-4 days; freeze meatballs (with sauce, before broiling) up to 2 months and broil from thawed until bubbly. For a lighter swap, use lean ground beef (90% or leaner) to keep the texture tender while reducing fat.
