With a dense custardy inside, a crispy crust, and an extra dose of hot chocolate sauce to pour over the top, this is the most indulgent, decadent breakfast you can prep in advance for Christmas morning.
Unsalted butter (for pan)
1 (1-pound) loaf country-style or “peasant” white bread, sliced 1/4″-thick
3 cups heavy cream
6 ounces milk chocolate, coarsely chopped
6 ounces semisweet chocolate, coarsely chopped
1 tablespoon vanilla extract
9 large eggs
2 cups whole milk
1 cup sugar
1 1/4 teaspoons kosher salt
1/2 cup hazelnuts, coarsely chopped
Butter a 13×9″ baking dish. Arrange bread slices in overlapping rows in dish.
Cook cream, milk chocolate, semisweet chocolate, and vanilla in a medium saucepan over medium heat, whisking constantly, until chocolate is melted, about 5 minutes; remove from heat. Transfer 1 cup chocolate mixture to an airtight container; let cool to room temperature, then cover and chill until ready to serve. Reserve remaining chocolate mixture.
Whisk eggs, milk, sugar, and salt in a large bowl. Whisking constantly, pour in hot chocolate mixture in a slow, steady stream. Pour evenly over and between each layer of bread. Push down with your hands to soak top of bread. Cover dish tightly with foil and chill at least 2 hours.
Preheat oven to 350F. Bake foil-covered bread until warmed through and a knife inserted into the center feels warm to the touch, about 35 minutes. Remove foil and continue baking until bread is browned, 35–40 minutes longer. Let cool 10 minutes.
Meanwhile, toast hazelnuts in a small skillet over medium heat, tossing occasionally, until golden-brown and fragrant, 3–5 minutes. Microwave 1 cup reserved chocolate mixture in a microwave-safe bowl in 10-second intervals (or heat in a heatproof bowl set over a saucepan of simmering water), stirring occasionally, until warmed through.
Serve French toast with hot chocolate sauce and toasted hazelnuts.
French toast can be assembled 1 day ahead before baking; cover tightly with foil and chill.