Prep the pan. Grease a 9x13-inch baking dish with butter or cooking spray.
Set aside.
Toast the bread (optional but recommended). Spread cubed bread on a sheet pan and bake at 300°F (150°C) for 10–12 minutes until slightly dry. This helps it soak up the custard without getting soggy.
Cook the sausage. In a large skillet over medium heat, cook the sausage, breaking it up with a spoon, until browned and cooked through, about 6–8 minutes. Transfer to a paper towel–lined plate.
Sauté the veggies. In the same skillet, add a little olive oil or butter.
Cook onion and bell pepper with a pinch of salt for 3–4 minutes until soft. Stir in garlic for 30 seconds. If using spinach, add it and cook just until wilted.
Remove from heat.
Whisk the custard. In a large bowl, whisk together eggs, milk (or half-and-half), salt, pepper, paprika, and dry mustard until smooth.
Assemble the casserole. Add the toasted bread cubes to the baking dish. Scatter cooked sausage and sautéed veggies evenly over the top. Sprinkle half the cheese over everything.
Pour the egg mixture evenly across the dish, pressing lightly so the bread soaks it up. Top with the remaining cheese.
Rest (quick or overnight). For best texture, cover and refrigerate for at least 30 minutes or up to 12 hours. If you’re in a rush, you can bake right away.
Bake. Preheat the oven to 350°F (175°C).
Bake uncovered for 35–45 minutes, until the center is set and the top is golden. A knife inserted near the center should come out mostly clean, and the internal temperature should reach 160°F (71°C).
Finish and serve. Let the casserole rest for 10 minutes. Garnish with chopped parsley or chives.
Slice into squares and serve warm.