Cut stale bread into 1-inch cubes and let them sit uncovered for a few hours (or lightly toast for 10 mins at 300°F).
Preheat oven to 350°F (175°C). Grease a 9x13-inch baking dish with butter.
In a bowl, whisk eggs, granulated sugar, brown sugar, vanilla, cinnamon, nutmeg, and salt.
Gradually add milk and cream, whisking until smooth.
Place bread cubes (and raisins/chocolate if using) in the baking dish.
Pour custard evenly over the bread, pressing down to soak. Let sit for 15 mins.
Bake for 40–45 mins until golden and set (center should slightly jiggle).
Cool for 10 mins. Serve warm with caramel sauce, whipped cream, or ice cream!