Puffed croissants, jammy onions, and a bronzed layer of melted Gruyère turn this breakfast casserole into something that feels a little dramatic in the best way. The edges set into a rich custard, the center stays tender, and every bite tastes like French onion soup decided to show up at brunch. It’s the kind of dish people keep going back to before they’ve even finished the first serving.
The key is giving the onions enough time to fully caramelize. Forty-five minutes is not an exaggeration here. They need to turn soft, sweet, and almost spreadable before they go into the dish, and the broth deglazing pulls every bit of flavor off the pan and back into the filling. The croissants matter too: their butteriness soaks up the custard without turning dense, which is why this casserole feels luxurious instead of heavy.
Below, I’ll walk through the one part that can’t be rushed, the ingredient swaps that still keep the dish on track, and the finish that gives you that deep golden crust on top. If you’ve ever wanted a brunch casserole that tastes as good as it looks when it comes out of the oven, this is the one.
The onions cooked down into this sweet, jammy layer and the Gruyère formed the best crust on top. I let it rest for 15 minutes and the slices held together perfectly.
Love that bronzed Gruyère crust and the French onion center? Save this breakfast casserole for the brunches when you want something rich, savory, and worth the onion time.
The Onion Jam Has to Happen Before Anything Else
If the onions are pale, the whole casserole tastes flat. Caramelizing them slowly until they turn deep gold and sticky is what gives the dish its backbone, and it’s the one step that separates this from a basic egg bake. The broth added at the end doesn’t just deglaze the pan; it captures that concentrated onion sweetness and keeps the filling from tasting dry or one-note.
The other common mistake is treating the croissants like bread cubes. They’re softer and richer than regular bread, so they need enough custard to soak in but not so much that they collapse into mush. That’s why the rested casserole bakes up with structure at the edges and a soft, savory middle.
What Each Ingredient Is Actually Doing in This Dish

- Croissants — Their buttery layers absorb the egg mixture without turning heavy. Day-old croissants work best because they hold their shape a little better, but fresh ones are fine if you tear them into generous chunks.
- Yellow onions — This is the flavor base. No quick sauté can replace the sweetness and depth you get from a true slow caramelization, so don’t cut that time short.
- Broth — A splash of broth loosens the onion fond in the pan and builds a savory layer that plain butter can’t give you. Either beef or chicken broth works; use the one you already like the taste of.
- Gruyère and Swiss — Gruyère gives the nutty, melty crust, while Swiss helps round out the finish without making the top greasy. If you need a swap, use an all-Gruyère top or replace Swiss with fontina for a similar melt.
- Eggs and whole milk — These set the casserole into a soft custard. Whole milk gives a richer texture than low-fat milk; if you use half-and-half, the casserole turns even more luxurious.
- Dijon and thyme — Dijon sharpens the richness and thyme ties the onions and cheese together. Fresh thyme tastes cleaner here, but dried thyme works in a pinch if you use less.
Building the Casserole So the Custard Sets Cleanly
Caramelizing the onions low and slow
Cook the sliced onions in butter over medium-low heat until they turn deep golden and collapse into a jammy mass. They should smell sweet, not sharp, and the bottom of the pan will start to pick up dark browned bits. If you crank the heat, they’ll brown too fast on the outside and stay harsh in the middle, which throws off the whole dish.
Layering the croissants and onion mixture
Grease the baking dish, add the torn croissant chunks, and spread the onion mixture through the layers instead of leaving it on top. That keeps the flavor from sitting in one heavy pocket. You want visible ribbons of onions throughout the casserole, with some pieces tucked down between the bread so every slice picks up the same savory bite.
Whisking the custard and letting it rest
Whisk the eggs, milk, Dijon, thyme, salt, and pepper until the mixture looks smooth and even, then pour it over the croissants slowly so it can sink in. Press the top lightly if needed, but don’t mash it down. The rest time is what gives the bread time to drink up the custard; if you bake it right away, the center stays dry while the edges overcook.
Baking until puffed, then finishing with heat
Bake until the casserole is puffed, set around the edges, and deeply golden across the top. The middle should still have a slight wobble when you give the pan a gentle shake. A short broil at the end creates that bronzed cheese crust, but keep your eyes on it because the line between perfect and scorched is only a minute or two.
How to Adapt This for a Different Crowd or Diet
Gluten-Free Version
Swap the croissants for a sturdy gluten-free brioche-style bread if you can find it, or use a firm gluten-free loaf cut into large chunks. The texture won’t be quite as flaky, but the custard and onion filling still give you the same savory payoff.
Dairy-Free Adaptation
Use a plant-based butter for the onions, unsweetened oat milk for the custard, and a good dairy-free melting cheese if you want the top to brown. The casserole will be a little less rich, but the onions still carry a lot of the flavor on their own.
Make It Meaty
Add a layer of cooked bacon or browned breakfast sausage under the onions if you want more heft. Keep the amount modest so the casserole stays centered on the onion-and-cheese flavor instead of turning into a standard meat bake.
Storage and Reheating
- Refrigerator: Store covered for up to 4 days. The croissants soften a little more as it sits, but the flavor gets deeper.
- Freezer: It freezes well in individual portions once fully baked. Wrap tightly and freeze for up to 2 months, then thaw in the fridge before reheating.
- Reheating: Warm covered in a 325°F oven until heated through. The mistake is blasting it in the microwave, which turns the eggs rubbery and makes the top greasy instead of crisp.
Questions I Get Asked About This Recipe

Breakfast Casserole
Ingredients
Equipment
Method
- Melt butter in a skillet over medium-low heat and add sliced onions, cooking 40–45 minutes until deep golden and jammy, stirring occasionally and keeping the heat low to avoid burning.
- Add broth to the pan and deglaze, scraping up browned bits until the mixture is smooth and glossy, about 1–2 minutes.
- Grease a 9x13 baking dish, then layer torn croissant chunks in an even layer.
- Spread the caramelized onion jam throughout the croissants, aiming for a visible ribbon-like layer across the dish.
- Sprinkle 1 cup Gruyère evenly over the onions.
- In a bowl, whisk eggs, milk, Dijon mustard, fresh thyme, salt, and black pepper until fully combined and lightly foamy.
- Pour the egg mixture over the croissant-onion layer so it soaks down into the chunks.
- Top with the remaining Gruyère and the shredded Swiss to cover the surface.
- Refrigerate the casserole 2+ hours or overnight, uncovered if possible, until the custard sets slightly and the croissants absorb the liquid.
- Bake at 350°F for 45 minutes until puffed and deeply golden across the top.
- Broil for 2 minutes to intensify browning and form a deeper cheese crust.
- Garnish with fresh thyme right before serving for a fresh, aromatic finish.