Grease an 8x8-inch baking dish with butter or nonstick spray. Zest and juice the lemon.
If the croissants are very fresh and soft, leave them out for 20 to 30 minutes to dry slightly. Day-old croissants work best for this kind of croissant bake.
Tear the croissants into large, golf ball-size chunks and scatter half in the prepared baking dish. Sprinkle some of the blueberries over the croissant pieces, then add the remaining croissant chunks and a few more blueberries throughout so you get berries baked right into the casserole.
Make the custard by whisking together the eggs, milk, heavy cream, granulated sugar, vanilla, salt, and lemon zest until smooth and mostly dissolved.
Pour the custard evenly over the croissants. Gently press down with a spoon or your hands so the croissants soak it up. Let it rest for 5 to 10 minutes.
Cover and refrigerate for at least 30 minutes, or overnight if you want to prep it ahead. Take the pan out while the oven preheats.
Preheat the oven to 350°F. Remove the plastic wrap. If needed, you can loosely cover the dish with foil for part of the baking time to keep the top from browning too quickly.
Bake for 20 to 30 minutes, until the croissant bake is puffed, lightly golden, and set in the center. A slight jiggle is fine, but it should not look liquid. Tent with foil for the last 10 to 15 minutes if needed.
For the blueberry topping, toss the remaining blueberries with the granulated sugar and lemon juice. Taste and add more sugar if you want them a little sweeter.
For the whipped cream, beat the cold heavy cream with the powdered sugar and vanilla until soft peaks form. Refrigerate until ready to serve (I wouldn’t recommend making the whipped cream more than an hour or so ahead of time, though). If you want to use canned whipped cream, that works too.
Let the bake cool for 10 to 15 minutes, then top with the blueberry mixture and whipped cream, or let everyone add their own toppings. Serve warm or at room temperature.