Cut your day-old bread into bite-sized cubes. If using fresh bread, dry it out in a 300°F (150°C) oven for 10 minutes to prevent sogginess.
In a large bowl, whisk together the eggs, milk, heavy cream, granulated sugar, brown sugar, vanilla, cinnamon, nutmeg, and salt until fully combined.
Grease a 9x13-inch baking dish with butter or non-stick spray.
Evenly spread the cubed bread in the dish.
Pour the custard over the bread, making sure every piece is soaked.
Lightly press the bread down with a spatula so it absorbs the liquid.
Rest (Overnight or 30 Minutes): For best results, cover and refrigerate overnight for a deep, rich flavor. For a quick option, let it sit at room temperature for at least 30 minutes.
In a small bowl, mix the melted butter, brown sugar, and cinnamon.
Stir in pecans if using.
Sprinkle the mixture evenly over the casserole.
Preheat oven to 350°F (175°C).
Bake uncovered for 40-45 minutes: 40 minutes for a softer, bread-pudding-like texture. 45 minutes for a firmer casserole with a crisp top.
If browning too quickly, cover with foil for the last 10 minutes.
Let the casserole cool for 5-10 minutes before slicing. Top with maple syrup, powdered sugar, berries, or whipped cream.