Take a large pot or Dutch oven, add butter and olive oil, and melt the butter over medium heat.
Add thinly sliced onions and a pinch of salt. Let them cook slowly, stirring often, until the onions are deeply caramelized. This should take about 20-25 minutes. You can add a little sugar at this point to help speed up the caramelizing process and make the onions even more caramelized. This will also add a nice balance to the savory broth.
Add the garlic, fresh thyme, and balsamic vinegar. I like to add mushrooms, so I add them at this point. Stir and cook for another 2 minutes, or until the mushrooms become softened and turn brown.
Deglaze the pan with a little bit of broth, mixing thoroughly to combine all the ingredients and let it cook for another 2 minutes.
Sprinkle in the all-purpose flour to form a thicker texture and a light roux. Stir for 1 minute. The flour is optional, but it helps create a creamy texture. If you want the final dish to be creamy, I recommend following this step.
Now add the beef broth, or vegetable broth if you're vegetarian, and bring to a boil. Mix thoroughly, then add just a pinch of salt and pepper.
When the broth starts boiling, add the dry pasta to the pan. At this point, reduce the heat to a simmer and let it cook uncovered for about 10-12 minutes. Stir occasionally with a spatula until the pasta is al dente and most of the liquid has been absorbed.
You can add cooked pasta directly to the broth, but I prefer to add mine dry. Cooking it in the broth allows the pasta to soak up all the rich flavors, making it more flavorful. If you choose to add cooked pasta, you’ll want to reduce the amount of beef (or vegetable) broth slightly to avoid a soupy consistency. For dry pasta, I recommend using 2 cups of broth for the best results. If you're using cooked pasta instead of dry, you can reduce the amount of broth to about 1 ½ cups.
If at this point you feel the broth has boiled away and the pasta still needs more time to cook, you can add a little bit of hot water.
If you prefer a richer, gooier texture, you can also add a splash of heavy cream. This is completely optional but if you choose to, add the cream right after the pasta is cooked and most of the liquid has been absorbed, before stirring in the cheeses.
Once the pasta is tender, add the Gruyère (or Swiss) and Parmesan, and continue stirring until the cheese becomes gooey and melted. This is what gives the dish its rich and creamy texture.
Sprinkle with fresh parsley and cilantro.
If you like this recipe, please leave a comment or a star rating below. Tysm!