If you’re looking for a new comfort meal on chilly winter nights… consider this your sign!! As the recipe title implies, this is a one-pan situation and if you know me, you know my one true love is a one-pan meal. I have countless variations on my website, in last year’s 10 day series, and of course a few made it into the cookbook.
I consider myself an expert at one-pan meals at this point, so in addition to today’s recipe I’m also including my best tips for success when making one-pan (or one-pot) pasta dishes, because there are a few tricks to it & ingredient swaps can affect it!
This one-pan french onion pasta incorporates all the classic flavors of french onion soup into a rich, creamy, and easy dinner. And honestly, if you’ve never had the traditional soup before—or aren’t a fan—I still encourage you to try this one out. It has all the main components: carefully sautéed onions, beef broth, and gruyere cheese, plus pasta and extra veggies to bulk it up so it becomes a savory, melty, and warming dish that’s so perfect for wintertime. I used brown rice & chickpea pasta to add more fiber and protein, making this recipe come in at 30g protein and 5g fiber per serving.
A few important ingredients:
Yellow onions: Yellow onions are slowly caramelized to develop a deep, savory sweetness that’s the foundation of this dish’s rich flavor. Their natural sugars break down as they cook, adding complexity and richness without overpowering. They create the signature base that gives this dish its comforting “french onion” taste. Taking your time with them pays off!
Gruyere cheese: The skillet gets topped with a generous sprinkling of gruyere cheese before heading into the oven. Gruyere has an earthy, nutty flavor and is the best cheese to get that perfect melt. You can swap for shredded mozzarella or shredded dairy-free cheese!
Baby bella mushrooms: Adding sliced mushrooms to the skillet gives a veggie boost and these are a classic to pair with onions. Add them after the onions have softened to ensure they don’t overcook.
Beef broth: Low-sodium beef broth provides a hearty liquid for the pasta to cook in. It’s classic to use beef broth in a french onion (it balances the sweetness from the onions) but you can use beef bone broth, chicken bone broth, or vegetable broth if you prefer it.
Broth: In most one-pan meals, broth is the liquid used to cook the pasta because it adds a rich flavor to the final dish vs. cooking with water. The most important thing you need to know about the liquid in a one-pan meal is that once the liquid is added, you have to bring it to a boil before reducing to medium and covering to cook. This is how the pasta gets cooked: if there’s no boiling before covering and simmering, the pasta won’t reach a high enough temperature to cook quickly.
Pasta: I used brown rice penne in this recipe, which I love to use to incorporate a bit of extra fiber and protein. Most gluten-free pastas come in 10 to 12 ounce packages (this recipe uses 10 ounces) so double-check what you’re using. If you use non-gluten-free, the package may have up to 16 ounces of pasta. Either measure out 12 ounces with a scale or up the liquid by 25% to accommodate for the extra! Each brand can act differently, so keep an eye on it while cooking.
Cook time: Different pasta types will vary in their cook time. When in doubt, refer to the package instructions! Al dente might be 11 minutes or it might be 8, which makes a big difference. All the cooking that’s done on the stove is to cook the pasta and the oven is used to finish it off and melt the cheese. The pasta should be al dente before transferring to the oven, so add more liquid as needed.
Cooling time is equally important with one-pan situations. You’ll notice written into these recipes (including today’s) is an instruction to let the pan cool for about 10 minutes after it’s removed from the oven. This isn’t just so you don’t burn your tongue—it’s helping the last of that liquid to fully absorb.
Pots and Pans: Using a deep, lidded skillet, like this saute pan is best for one-pan meals. You can also use a dutch oven or large oven-safe pot depending on how much you make and what kitchen tools you have on hand. Kate R. recently shared this exact one-pan pasta in a dutch oven!!
Trust your instincts: If you see that the pasta is getting crunchy in the oven, add some more liquid! Still liquidy when it’s out of the oven? Let the pan sit for 15 minutes, excess will absorb! Taking longer in the oven than you expected? Up the heat a smidge or move your pan closer to the heat source and cover!
one-pan french onion pasta
serves 4 | prep time: 15 minutes | cook time: 60 minutes
gluten-free, vegetarian option, vegan option, dairy-free option
INGREDIENTS
2 tablespoons olive oil
2 large yellow onions, thinly sliced
4 cups low-sodium beef broth, divided (can sub low-sodium vegetable broth for vegetarian or vegan)
8 ounces baby bella mushrooms, sliced
4 garlic cloves, minced
1 1/2 teaspoons dried thyme
3/4 teaspoon kosher salt (reduce to 1/4 if using regular beef broth)
1/2 teaspoon ground black pepper
10 ounces brown rice penne (see notes if using another type of pasta)
3/4 cup whole milk or full-fat coconut milk (about half a well-shaken 13.5-ounce can), use coconut milk for dairy-free or vegan
6 ounces gruyere cheese, shredded (can sub mozzarella if preferred, or shredded dairy-free cheese for dairy-free or vegan)
finely chopped parsley leaves, to garnish (optional)
INSTRUCTIONS
Preheat the oven to 425ºF. Heat the olive oil in a large, deep, lidded skillet over medium heat.
Add the onions to the skillet and cook, stirring occasionally, until softened and translucent, about 12 minutes. Stir in 1/2 cup of the broth and continue cooking until absorbed by the onions, then add another 1/2 cup of broth and continue cooking until the liquid is absorbed and the onions are very soft and caramelized, another 10 to 12 minutes.
Stir in the mushrooms, garlic, thyme, salt, and black pepper and continue cooking and stirring until the mushrooms have softened, about 5 minutes.
Add the penne and stir to combine with the onion-mushroom mixture. Mix in the remaining broth (3 cups) and 3/4 cup of water, increase the heat to high, and bring to a boil. Once boiling, reduce heat to medium, cover and cook, stirring occasionally to prevent sticking, until the penne is just al dente, 11 to 14 minutes (See Note below).
Turn off the heat, remove the lid, and stir in the milk and about half of the gruyere (about ¾ cup) until evenly combined. Smooth out the top layer of pasta so it lays flat. Top with the remaining gruyere cheese.
Transfer to the oven and bake until the cheese is melted and bubbling, about 10 minutes. Optional (but highly recommended) to broil on high for the last 2 to 3 minutes for extra color. Cool on the counter for 10 minutes.
To serve, garnish with chopped parsley.
Store it: Refrigerate in a sealed container for up to 4 days.
Reheat it: Microwave until warm, about 2 minutes, or return the skillet to a 350ºF oven until warm, about 15 minutes.
Recipe notes:
Step 4 note: The pasta should be covered by the broth and water when it is first added in Step 4. If not, add water in ¼ cup increments until no pieces are more than halfway exposed. If all of the liquid absorbs while cooking but the pasta is not yet al dente, stir in up to 1 cup additional water as needed.
Pasta note: Depending on the type of pasta you use, the cook time may vary. I used 10 ounces of brown rice pasta, using regular pasta may require an additional few minutes to reach al dente, while a chickpea-based pasta will take less time. I also tested this one with a corn and rice based GF pasta and the timing was the same! Refer to the package instructions for exact timing to avoid over-cooking.
Non-gluten-free pasta: Packages of regular pasta may 16 ounces. You can either measure out 10 to 12 ounces and follow the recipe as-is or use the full 16 ounces and increase the liquid by 25% to accommodate for the extra! This recipe was also tested using 10 to 12 ounces of Rummo regular (non GF) pasta—same timing!
Make it work for you: To make it vegetarian, swap beef broth for low-sodium vegetable broth (this will alter the overall flavor slightly but still work). For vegan and dairy-free, use coconut milk and dairy-free shredded cheese too.
Add protein: Add cooked and diced or shredded chicken in Step 6 (baking). Or, add pieces of prosciutto on top before baking. The prosciutto will get a little crisp on top that will add the perfect crunch.
But I don’t like mushrooms! Totally fine, omit them and the recipe will work!
French Onion Meatball Skillet — Same flavor as today’s recipe, different meal! This one-pan meal brings all the cozy flavors, plus it’s hearty and filling! Don’t rush the onions, letting them caramelize adds that deep, savory flavor that makes this dish unforgettable.
High-Protein Creamy Pasta Bake with Broccoli — So easy to prep and full of protein, this broccoli pasta bake is a true dump and bake! The protein boost here comes from blending cottage cheese into the sauce, I promise you can’t taste it–but you can easily swap for ricotta if preferred. It’s the ultimate comfort meal.
Don’t Think About Dinner Club Recap: ginger lime ground chicken bowls!
I had so much fun cooking on live with Brian this week! Get the recipe & access the entire 13-recipe preorder bonus bundle here. See you next Monday at 7pm EST for our next live…. Zoe Barrie Soderstrom will be joining us and we’re making Sheet Pan Pesto Pizza (a fave)!!
Don’t Think About Dinner Reminders!
✅ Enter the DTAD Sweepstakes (takes one minute!)
✅ Order between now and 12/20 for a free DTAD tote bag
✅ Unlock the preorder bonus bundle meal plans (13 new recipes)
✅ Get your book tour tickets (counts as a preorder for bonuses above!)








Love how the troubleshooting section frames one-pan cooking as pattern recognition rather than rigid rules. That tip about bringing liquid to a full boil before covering is the kindof detail most recipes skip, but it totally changes whether pasta actually cooks through vs. sits there getting mushy on the edges. The cooling time callout is smart too since most people dunno that's when absorption finishes.
So good!!! Love one pans 👏