This recipe calls for both onions and shallots but you can also make it with all onions. Just add one more onion and omit the shallots.
What I love most about this recipe, other than it being delicious, is that it’s a recipe you can make when you have nothing in the fridge. The feeling of knowing that I can always make something yummy even when I’m need of a good grocery run is one of the coziest feeling I know. I don’t know about you, but I always have onions, and a bit of parm or manchego at home, even when I don’t have much else. This recipe traditionally calls for gruyere but either of those cheeses work as well. And a search in my freezer almost always reveals some bread— sometimes there are slices, others it’s a ziplock bag full of chunky pieces waiting to be turned into croutons or a strata. This soup is just as good with those croutons in waiting as it is with a slice of bread.
I like to caramelize onions in a large, stainless steel pan. You could also use a dutch oven but that type of pan can be a bit trickier when caramelizing onions. It's not a deal breaker you'll just have to watch the onions more, and add a bit of water as needed, specially towards the end of the process.
If you have homemade stock that is always going to be the best option for a simple soup like this one.
Second best would be store bought high quality beef (or chicken broth), like the kind you would buy from a fancy butcher shop. If neither of those are available your favorite brand of chicken stock is perfect.
2 Tablespoons olive oil
2 medium yellow onions
2 medium shallots (or 4 small ones)
2 Tablespoons Marsala wine (white wine or dry sherry are good too!)
6 cups chicken broth
1 sprig thyme, optional
2 teaspoons sherry vinegar
1/2 teaspoon fish sauce
sourdough (or other rustic bread), you'll need cut 2 pieces that fit inside a bowl per person
1 pound gruyere, shredded (If you have extra, see note below about grilled cheese.)
Slice the onions in half, peel them, and then slice each half again into 1/8” thick slices. Do the same with the shallots if using. The shallot slices may end up being thinner, that’s ok.
Heat the oil over medium-high heat. Add the onions and shallots. Cook them, stirring once in a while, until they begin to soften and become slightly translucent, about 10 minutes.
Lower the heat to medium-low and cook them, stirring frequently. The process of caramelizing the onions will take about one hour, but you don’t have to be standing over the pot the whole time as long as you are in the kitchen keeping an eye on the onions. You have to stir often and fold the fond (the bits that stick to the bottom of the pan) back into the onions while it's still gooey. In other words, you want to make sure that that fond doesn’t burn. The closer the onions are to being done the more you’ll have to watch for this and stir.
You want to get the onions to a golden caramel color. If the fond is getting too stuck to the pan, add a Tablespoon of water here and there as needed.
Once the onions are a nice caramel color, think amber or medium honey tones, add the Marsala and scrape any fond that may be at the bottom of the pan. Cook for 2-3 minutes then add the broth.
Raise the heat to medium-high, bring to a boil, then lower it a smidge. Add the thyme sprig and simmer for 20 minutes so that the flavors meld.
After twenty minutes or so, add the fish sauce and sherry vinegar. Pull out the thyme stem and taste the soup. Add a little more salt if it needs it, keeping in mind you are also adding salt with the cheese.
Preheat your broiler.
There are two ways you can make the last, iconic, part of the soup. Ideally you have some oven proof bowls, but if you don’t (I don’t) it’s okay.
If you have oven-proof bowls:
Spread a little butter on your bread slices. Place one piece at the bottom of each bowl and top with a spoonful of gruyere. Ladle some soup on top, then top that with another slice of bread and more cheese. Place the soup bowls in a baking tray and broil the soup until the cheese is bubbly. Remove from oven.
If you don’t have oven-proof bowls:
Butter the bread, top with cheese, and broil it on a baking sheet tray until the cheese is bubbly. Remove from oven. Carefully lift a piece of bread with a spatula and place it in a soup bowl. Ladle the soup over the bread and top with another piece of cheesy bread.
If you have left over soup, it makes a fantastic lunch with a gruyere grilled cheese. It also freezes beautifully and is a delight to have on a night you don’t feel like cooking.