In a large pot or a heavy-duty Dutch oven, melt the butter and olive oil together over medium heat.
Immediately add the thinly sliced onions and sprinkle the sugar on top. Stir well to ensure all the onions are coated in the buttery mixture.
Cook the onions slowly, stirring occasionally for about 30-35 minutes until they achieve a deep caramelization and a rich, golden-brown color.
Once the onions are beautifully caramelized, season them with salt, pepper, and dried thyme. Toss in the bay leaf and pour the beef or vegetable broth into the pot. Stir to combine.
Increase the heat slightly, bringing the soup to a gentle simmer. Allow it to cook uncovered for 20 minutes.
While the soup simmers, preheat your oven to 400°F (200°C). Arrange the baguette slices in a single layer on a baking sheet. Toast them in the oven for 5-7 minutes, flipping halfway.
After the soup has simmered, carefully remove the bay leaf. Taste the soup and adjust the seasoning with more salt and pepper if needed.
To serve, ladle the hot soup into oven-safe bowls. Place a toasted baguette slice on top of each bowl, then sprinkle the shredded Gruyère cheese over the baguette slices.
Place the bowls on a baking sheet and broil them in the oven for 3-5 minutes until the cheese is bubbling and turns a golden brown.
Once broiled, carefully remove the baking sheet from the oven. Let the bowls cool for a minute, then garnish each serving with a sprinkle of fresh parsley.
Notes
For an elegant touch, consider using individual French onion soup bowls with a lovely earthenware finish.