My grocery getter/mule is.. perfect (for me anyway)
She started life as a cheap mountain bike shaped object. Changed the crank to give me 48t at the top and added a better bottom bracket as well. Added a heavy steel rack rated at 50kg, a kid seat/basket sitting on said rack. Carries my 6 year old just fine as well as a lot of groceries. But it wasn't enough so I added a front basket as well expecting the front suspension to a write off. It isn't, in fact it works better now the the cheap pogo sticks are dampened by the movement of the basket on the pivot points. :) Add to that the fact that the cheap Shimano 7x3 drive train shifts almost as smootly as the deore on my mtb and the cool stop equipped vs stop me in no time. I have to say this makes an awesome grocery getter. :)
Took a bit of work to adapt some of the compents which weren't designed to work with a bike like this, but totally worth it.