French onion soup is one of the few dishes I can safely say is either good or bad. In my experience, I can't remember ever getting a bowl that was "meh." It can be a savory, slightly sweet bowl of deeply oniony broth, topped with some crusty bread and gooey melted Gruyère cheese, or the alternative, which is a bitter, salty mug of broth, topped with some soggy bread and something more like processed cheese.
Maybe it's just me, but whenever I get the latter, I think, "I should have made it myself." After all, a delightful version of French onion soup is not hard to make and the results are nothing short of soul-satisfying.
Sometimes I feel like adding some browned mushrooms for an extra bit of earthiness, which I did in the following recipe, but if you prefer a more pristine version, feel free to leave out the mushrooms and skip to the next step.
Start with thinly sliced yellow onions — not too thin, though, as they tend to melt into nothing. About ¼-inch is what you're looking for. I avoid sweet onions, as I find they don't have as much flavor when cooked. Instead, I use yellow or Spanish onions, which do a much better job of retaining their onioniness. Caramelize the onions in butter in a large Dutch oven (I prefer enameled cast iron). Start off using a high heat, then turn down the temperature and cook until the onions are a deep brown.
Remember, deeply browned onions and burnt onions are two different ingredients. One has a complex sweetness and the other has, well, a less enjoyable flavor. That's why it's important to cook the onions low and slow. This draws out the onion's natural sugar and cooks them properly without going too far into the dark side (read "burnt").
Once the onions have caramelized, a little dry white wine is the catalyst for getting all those beautiful browned bits off the bottom of the pan. Put some elbow grease into scraping it.
The next ingredient can be controversial. In a perfect world, homemade beef broth would be the ideal liquid to use in this soup. The problem is that homemade beef broth can take a long time to cook properly, and most of us don't have a couple of quarts hanging out in our freezers.
Unfortunately, store-bought beef broth has a long way to go in terms of quality. I have yet to find one that I thought worked well in French onion soup. The best alternative would be homemade chicken broth, which is much quicker to make than beef, or a good-quality store-bought chicken broth, which does exist.