Gather ingredients: yellow onions (4–6 large), unsalted butter (4 tbsp), olive oil (1–2 tbsp), salt (to taste), black pepper (to taste), sugar (1 tsp, optional), garlic (2 cloves, minced), dry white wine (1/2 cup, optional), beef broth (6–8 cups), thyme (1–2 tsp fresh or 1/2–1 tsp dried), bay leaf (1), Worcestershire sauce (1–2 tsp, optional), baguette slices (1 large baguette), Gruyère cheese (2–3 cups, shredded, or to taste), optional Parmesan (1/2 cup)
Slice onions thinly
Heat butter and olive oil in a large heavy pot over medium heat
Add onions and stir to coat; cook, stirring occasionally, until deeply caramelized (about 45–60 minutes)
Season onions with salt and pepper; add sugar if using
Add garlic and cook 1 minute
Deglaze with wine (if using); simmer until reduced by about half
Add broth, thyme, and bay leaf; bring to a gentle simmer
Simmer 20–30 minutes; remove bay leaf
Taste and adjust seasoning; add Worcestershire sauce if using
Heat oven broiler
Toast baguette slices until lightly browned
Ladle soup into oven-safe bowls
Top with toasted baguette slices
Generously add Gruyère cheese (and Parmesan if using)
Broil until cheese is melted and browned (1–3 minutes)
Serve immediately
