There are lots of folks out on the interwebnets who have used buckets for hauling cargo on their bikes, but I haven't seen it done this way so I thought I'd try it: a 5-gallon bucket with a hinged plywood lid, that sits on the cargo rack. This design has good balance, resists moisture, and doesn't add much to the bike's overall width, is relatively easy to build, and uses materials that might otherwise find their way into a landfill. But the main advantage I wanted was a super-fast load/unload, and I definitely got that!
[UPDATE: after a couple of years and a couple of bikes, I upgraded from the wooden door in the photos to a Gamma Seal lid, and suggest you do the same!]
At some point I'll mount some lighting and/or reflective stuff (including my DIY bike flasher?) to the plywood. And I do hope I can muster the gumption to seal and paint the wood bits, but we'll see.
5-gallon bucket (don't buy one - find one, they're all over the place!)
plywood (base is about 12"x8", lid is a 12" circle)
hinge (one is okay, two would be better)
jigsaw, driver/drill, wrench.
A few notes on construction: The plywood parts are all stuck together with wood screws, and the bucket is screwed to the curved plywood pieces using wood screws with washers. J-bolts hold the base to the bike rack. A pin holds the latch shut. The thickness of the plywood shouldn't make too much difference, but I used 3/4" for the base parts and the stationary part of the lid, and 1/2" for the part of the lid that swings. Cost: the price of the bucket is probably the biggest variable, but can often be $0 if you're willing to do a little poking around - I know it's hard to believe but folks throw these away! The hardware should be under $6. Time: about an hour.