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