Heat 2 tablespoons olive oil in a large pot over medium-high heat. Add the sliced onions and cook, stirring occasionally, until tender, about 5 to 7 minutes. Reduce heat to medium-low and continue to cook the onions, stirring every 3 to 5 minutes, until caramelized and golden brown, about 15 to 25 minutes.
Stir in 2 tablespoons butter and 1 tablespoon minced garlic. Cook for 2 minutes, or until the butter melts and the garlic becomes fragrant.
Pour in 8 cups beef broth and 1/4 cup dry sherry (if using). Season with 1 teaspoon dried thyme, 1 teaspoon salt, and 1/2 teaspoon black pepper. Bring the soup to a simmer, then reduce heat to medium-low and simmer for 20 to 30 minutes.
While the soup is simmering, preheat the broiler setting on your oven, placing a rack 8 inches from the heating element. Brush both sides of the baguette slices with olive oil. Arrange the slices on a baking sheet and broil for 2 to 3 minutes on each side, or until golden brown. Watch closely to prevent burning.
Preheat your broiler again if necessary. Place 4 oven-safe bowls onto a baking sheet and ladle the soup into each bowl. Place 2 slices of toasted baguette on top of each serving. Add 1 slice Gruyère and 1/2 tablespoon grated Parmesan to each bowl.
Carefully slide the baking sheet with the soup bowls under the broiler. Broil until the cheese is bubbling and starting to brown, about 2 to 3 minutes. Watch carefully, as broiler times may vary.
Serve the soup immediately, while the cheese is still melted and bubbly.
Video
[yeetvid]
Notes
If you don’t have oven-safe bowls, you can melt the cheese directly on the toasted baguette slices under the broiler. Then, ladle the soup into regular bowls and top with the cheesy toasts before serving.