Preheat oven to 350°F (175°C). Grease a 9×13-inch baking dish.
Cut sourdough bread into 1-inch cubes and spread evenly in the baking dish.
In a large bowl, whisk eggs, milk, melted butter, vanilla extract, and sugar until combined. A blender works here too.
Pour custard mixture evenly over bread cubes, pressing down gently. Cover with plastic wrap and refrigerate for at least 4 hours or overnight (up to 8-10 hours).
Prepare topping: In a medium bowl, mix flour, brown sugar, cinnamon, and salt. Cut in cold butter until crumbly. Refrigerate until ready to use.
Remove casserole from fridge, uncover, and sprinkle topping evenly over the bread.
Bake uncovered for 50-60 minutes until the top is golden brown and custard is set.
Let cool slightly before serving. Serve with fresh fruit and a drizzle of maple syrup if desired.