Try my new budgeting app Cheddar 🧀
Better than YNAB, Mint (RIP), or EveryDollar.
5.0
(4)
Export 18 ingredients for grocery delivery
Step 1
In a large bowl, mix the breadcrumbs and milk together and let sit for 5 minutes.
Step 2
Add the remaining ingredients to the bowl and mix gently until combined.
Step 3
With your hands, roll ~1 1/2" meatballs ( makes roughly 15-and set them on a parchment paper lined baking sheet.
Step 4
Heat a large pan or pot to medium heat and add the olive oil, onions, water, and salt, and mix to coat. Cover with a lid and cook for 15 minutes.
Step 5
Remove the lid and continue to cook, stirring occasionally. Keep an eye on the onions and adjust the heat to avoid burning. Add a splash of water every so often to avoid burning if necessary.
Step 6
Heat a large oven-safe frying pan to medium heat with olive oil poured to a thin layer coating the whole pan. Once the oil is hot fry the meatballs until browned (about 3 minutes per side) then remove with a slotted spoon to a dish and set aside.
Step 7
Preheat oven to 450f and set the rack on the middle level.
Step 8
Pour off the oil used to fry the meatballs and add all of the onions to the pan from the other pot along with the butter. Continue to cook the onions over ~medium heat until they are deeply caramelized, paying attention to the heat and stirring frequently or adding water to avoid burning.
Step 9
Once the onions are done, add the garlic and cook for 1 minute. Add the flour to the pan and cook for 1-2 minutes, stirring frequently, until all of the flour is no longer white.
Step 10
Add the wine and bring to a boil while scraping the bottom of the pan with a wooden spoon to dislodge all of the brown bits.
Step 11
Once boiling add the chicken stock and thyme and bring to a simmer for 5 minutes.
Step 12
Taste test and adjust salt and pepper to taste. Add the brandy or sherry (optional) and stir to combine.
Step 13
Add all of the meatballs to the pan and top with 3/4 of the Swiss cheese, then place in the oven and bake for 7-10 minutes or until bubbly.
Step 14
Top the baguette slices with the remaining cheese and place under the broiler for a minute to toast and melt the cheese but watch closely to prevent burning.
Step 15
For a browner top, broil the meatballs for 2-3 minutes but watch carefully. Garnish with thyme leaves and serve with toasted baguette slices topped with the remaining Swiss cheese. Enjoy!