In a large Dutch oven over medium heat, melt olive oil and butter together. Add onions, sugar (if using), and 1/4 teaspoon salt. Cook until the onions are starting to darken and caramelize, about 30 minutes.
Stir in vinegar and scrape up the brown bits from the bottom of the pot. Add chicken broth, beef broth, thyme, and bay leaf. Simmer until reduced slightly, about 20 minutes. Season to taste salt and pepper.
Preheat oven broiler on HIGH. Place broiler-safe soup bowls on a rimmed baking sheet. Divide the soup evenly among the 8 bowls (about 1 cup each). Top each bowl with 1 or 2 baguette slices and cover with one slice of cheese (or 1/4 cup shredded).
Broil until the cheese is hot and bubbly, about 3 to 5 minutes, then remove from oven and garnish with fresh thyme if desired.
Video
Notes
Onions: Standard yellow onions work great, but so do white onions, sweet onions, or even red onions. Speed up prep time by running the onions through a food processor rather than cutting onions by hand.
Sugar: A touch of sugar coaxes along the caramelization process, but it's up to you if you want to add it.
Baguette: Toasting the baguette slices makes them even better at sopping up the maximum amount of broth while holding the melty cheese. If desired, substitute store-bought or homemade croutons.
Yield: My homemade French Onion Soup recipe makes eight cozy (1-c.) servings that work well as a starter, side dish, or light main dish.
Storage: Store leftovers covered in the refrigerator for up to 4 days.