Ingredients
1 ½ cups fresh or panko breadcrumbs
¼ cup plus 2 tablespoons whole milk for soaking breadcrumbs
1 ½ pounds ground beef (85/15 lean to fat)
1 tablespoon chopped parsley
1 teaspoon fresh thyme leaves (plus extra for garnish)
1 teaspoon herbes de Provence
1 teaspoon salt
¼ teaspoon black pepper
½ large finely minced white onion
4 pressed garlic cloves
¾ cup grated Gruyere cheese (divided)
1 whisked egg
1 cup shredded whole milk mozzarella cheese
4 tablespoons olive oil (divided)
2 tablespoons ghee or butter
2 ½ large white onions (halved and sliced)
Salt and black pepper to taste
4 pressed garlic cloves
1 teaspoon herbes de Provence
1 teaspoon dried thyme
¼ cup sherry or white wine (optional)
1 ½ tablespoons flour
2 ¼ cups beef stock
2 teaspoons fresh thyme leaves
Instructions
1-First, begin by soaking the breadcrumbs. Take 1 ½ cups of fresh or panko breadcrumbs and mix them with ¼ cup plus 2 tablespoons of whole milk, letting them sit for 5 minutes to absorb the liquid. This step keeps the meatballs tender and prevents them from drying out during cooking.
2-Next, in a large bowl, gently combine the soaked breadcrumbs with 1 ½ pounds of 85/15 ground beef, 1 tablespoon chopped parsley, 1 teaspoon fresh thyme leaves, 1 teaspoon herbes de Provence, 1 teaspoon salt, ¼ teaspoon black pepper, ½ large finely minced white onion, 4 pressed garlic cloves, ¾ cup divided grated Gruyere cheese, and 1 whisked egg. Mix everything just until incorporated overmixing can make the meatballs tough.
3-Then, shape the mixture into meatballs using about 2-tablespoon portions for each one. You’ll get about 24 to 26 meatballs from this batch. Chill them in the refrigerator for 15 minutes to help them hold their shape. After chilling, brown them in a skillet with 2 tablespoons of olive oil over medium heat for 8 10 minutes, turning to cook all sides evenly.
4-While the meatballs brown, prepare the sauce. In the same skillet, use the remaining 2 tablespoons of olive oil and 2 tablespoons of ghee or butter to caramelize 2 ½ large white onions (halved and sliced) over medium-low heat for 20 25 minutes until they become jammy and sweet. Add 4 pressed garlic cloves, 1 teaspoon herbes de Provence, and 1 teaspoon dried thyme, stirring for another minute. If using, pour in ¼ cup sherry or white wine and let it reduce.
5-Sprinkle in 1 ½ tablespoons of flour and mix well to create a roux, then gradually add 2 ¼ cups of beef stock. Simmer the sauce for 5 minutes to thicken it nicely. Nestle the browned meatballs into the sauce in an oven-safe skillet, top with the remaining Gruyere cheese and 1 cup shredded mozzarella cheese, and broil on high for 5 7 minutes until the cheese is melted and gooey. Garnish with extra fresh thyme leaves and serve hot.
Last Step:
Please leave a rating and comment letting us know how you liked this recipe! This helps our business to thrive and continue providing free, high-quality recipes for you.Notes
🍖 Use 85/15 ground beef for optimal flavor and juiciness.
🍷 Sherry or white wine can be substituted or omitted if preferred.
❄️ Meatballs can be prepared ahead of time and frozen for convenience.
- Prep Time: 30 minutes
- Chilling and cooking time: 1 hour
- Cook Time: 30 minutes
- Category: Main Course
- Method: Browning, caramelizing, broiling
- Cuisine: French-inspired
- Diet: Contains Dairy and Gluten
Nutrition
- Serving Size: 4 to 5 meatballs
- Calories: 669 kcal
- Sugar: 6 g
- Sodium: 850 mg
- Fat: 45 g
- Saturated Fat: 20 g
- Unsaturated Fat: 20 g
- Trans Fat: 0 g
- Carbohydrates: 28 g
- Fiber: 2 g
- Protein: 39 g
- Cholesterol: 130 mg
