01 - Preheat oven to 400°F and line a baking sheet with parchment. Toss halved cherry tomatoes with 1 tablespoon olive oil, pinch of salt, and pepper. Spread cut side up and roast 15 minutes until softened and caramelized. Set aside.
02 - Reduce oven temperature to 350°F. Grease a 9x13-inch baking dish generously with butter or cooking spray.
03 - Heat remaining 1 tablespoon olive oil in a skillet over medium heat. Sauté diced onion 3–4 minutes until translucent. Add chopped spinach and cook 2 minutes until wilted. Remove from heat.
04 - In a large bowl, whisk together eggs, milk, heavy cream, Dijon mustard, garlic powder, salt, and black pepper until fully combined.
05 - Add bread cubes to the custard mixture and toss gently to coat evenly. Stir in sautéed onion and spinach, shredded cheddar, and Gruyère cheese until well distributed.
06 - Pour mixture into the prepared baking dish. Arrange roasted cherry tomatoes evenly over the top, pressing lightly into the surface.
07 - Cover dish tightly with aluminum foil. Bake at 350°F for 30 minutes to allow bread to absorb custard.
08 - Remove foil and continue baking 20–25 minutes until golden brown and set throughout. Let cool 10 minutes before sprinkling with fresh chives or parsley. Serve warm.