Ingredients
Equipment
Method
Make the meatballs
- Mix ground beef, breadcrumbs, egg, Worcestershire, garlic powder, onion powder, and Salt and pepper until evenly combined. Roll into 1.5-inch balls.
- Heat 2 tablespoons of butter in a skillet over medium-high heat until it foams, then brown the meatballs on all sides. Transfer browned meatballs to a plate.
Caramelize onions and simmer
- In the same skillet, add the remaining 2 tablespoons butter and cook the onions over medium-low heat, stirring often, for 30-35 minutes until deeply caramelized. Keep the heat low so the onions turn golden instead of burning.
- Pour in dry white wine (or beef broth) to deglaze, scraping up browned bits from the skillet. Cook for 1-2 minutes until the liquid slightly reduces.
- Add beef broth, Worcestershire, and fresh thyme to the skillet and bring to a gentle simmer. Simmer uncovered for 5 minutes to meld flavors.
- Return the meatballs to the onion sauce and simmer for 15 minutes, turning once halfway through, until cooked through. The sauce should cling lightly to the meatballs.
Broil the cheese crust
- If your skillet is not oven-safe, transfer the meatballs and sauce to a baking dish. Scatter Gruyere or provolone over everything in an even layer.
- Broil for 3-4 minutes until the cheese is golden and bubbly, watching closely to prevent scorching. Serve immediately while the crust is hot and melty.
Notes
Pro tip: caramelize the onions slowly (medium-low, 30-35 minutes) and avoid rushing so you get a sweet, deep broth for spooning. Store leftovers in the refrigerator up to 4 days; reheat gently until hot. Freeze meatballs (sauce included) up to 2 months, then thaw in the fridge and reheat. For a lighter option, use 90% lean ground beef to reduce calories while keeping the same savory flavor.
