French Onion Soup

This is a deeply savory and comforting soup. The best part is that you only need a few basic ingredients. This soup is all about caramelizing the onions and of course adding some crusty bread with melted cheese never hurts. This recipe serves 4.


1 tablespoon of olive oil

2 tablespoons of butter

6 medium white onions, thinly sliced

1 clove of garlic peeled and leave it whole

200ml dry white wine

2 bay leaves

1/2 teaspoon of dry thyme or 4 sprigs of fresh thyme

8 cups of chicken stock (or beef stock)



Shot of Port (optional)

1 cup of grated Gruyere cheese (or more if you like)

¼ cup of grated Parmesan cheese

1 baguette, sliced


In a large saucepan, over medium heat, melt the butter with the olive oil. Add the thinly sliced onions and saute them, until they are browned. Stir every once in while, you want them to be caramelized, not burned. This will take about 15 to 20 minutes. Add the clove of garlic, thyme and bay leaves and stir for another minute. Then add the white wine and let half of it evaporate and deglaze the saucepan before adding the stock. Once the stock is in the saucepan, add a pinch of salt and pepper and cover. Let it simmer on low heat for about 30 minutes. This will allow all the flavors to blend.

After the 30 minutes have passed, discard the bay leaves and the clove of garlic. Add the shot of port and stir it. Let it simmer for another 5 minutes and then take it off the heat.

Preheat the broiler.

In a small bowl, mix the Gruyere with the Parmesan.

Ladle the soup into the bowls and arrange the slices of baguette on top of each bowl. Sprinkle the cheese on top and broil until the cheese has melted.

What I always do with the remaining slices of baguette, I put them in an oven tray, sprinkle the leftover cheese and broil until the cheese has melted. Then I served it as a side to the soup. It’s always nice to have extra cheesy bread to dip.

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: