Tender beef and pork meatballs mixed with sweet, golden onions, baked until browned, then coated in a savory onion gravy and broiled under melted Gruyère cheese. A hearty, comforting dinner that tastes like French onion soup.
Choose 80/20 ground beef for the juiciest meatballs, as leaner beef can turn dry. Shredding Gruyère from a block melts more smoothly than pre-shredded cheese.
To save time, cook the onions and shape the meatballs up to 1 day ahead. Keep them covered in the refrigerator, then bake, make the gravy, and broil just before serving.
Store leftovers in an airtight container in the refrigerator for up to 4 days. Reheat in a covered baking dish with a splash of beef broth at 350°F for 15 to 20 minutes, until hot all the way through (165°F). The cooked meatballs and gravy can be frozen without the cheese topping for up to 3 months. Thaw overnight in the refrigerator, then add fresh cheese and broil again.
If the gravy is too thin, simmer it for 2 to 3 more minutes. If it is too thick, whisk in a splash of broth. If the cheese browns too quickly under the broiler, lower the rack slightly. Calories are an estimate and will vary with the brands used.