Project 02 · Plumbing Solutions
Nobody Books a Bathroom From a Stock Photo
Plumbing Solutions is a referral-led plumbing and bathroom business with decades of work behind it and nothing to find when you searched the name. I designed and built the site around the photographs, then handed the gallery over to the owner.
Harry Twigg · 18 October 20253 min read
Fig. 1Like Ravenscroft, this is a referral business: decades of work, most of it repeat customers and word of mouth. And like Ravenscroft, the referral is only the first half of the transaction. The name gets passed across a fence or a kitchen table, and then the homeowner does what everyone does with a name now, which is search it. Until this project, that search found nothing.
What the search needs to find is different here, though. A patient checking an anaesthetist wants credentials. A homeowner checking a plumber before committing to a five-figure bathroom wants photographs, and specifically proof that the work is real, recent, and to the standard they are picturing. So the site had to be the portfolio that turns up thirty seconds after the recommendation does.
That decided almost everything else. The homepage isn't a brochure with a gallery at the bottom, it's a gallery with just enough words around it.
Their Facebook Photos, Not Stock Ones
The business arrived with their Facebook page, which meant real bathrooms in real houses: inconsistent lighting, mixed resolutions, and a lot more honesty than any stock photo. I kept them. A stock image of a bathroom tells a customer nothing except that you know where to buy stock images.
The gallery is built to be handled rather than glanced at, so images zoom on mobile. That is where the deciding happens, usually on a sofa with a phone. It's a Payload collection rather than markup, so when a job finishes the owner uploads the photo and hits publish. The newest bathroom on the site should always be the last one he tiled.
Fig. 2Emerald and Gold, Not Plumber Blue
Every plumber in Hampshire has the same generic blue, white and grey website. I wanted to go upmarket instead, so the palette is emerald and gold. The work being sold is luxury bathroom installation, and the site should look closer to the bathrooms than to the van. The palette does the positioning on its own, before anyone has read a word.
Design took longer than the code, across two Figma rounds with the owner. I think that was the right way round for a site like this: the design is doing the arguing, and the code's job is to stay out of its way.
Fig. 3The Build Underneath
The stack is the same as Ravenscroft's: Payload behind Next.js, deployed to AWS with OpenNext, and the same shallow content model philosophy. Services, gallery and testimonials are each a collection the owner edits against a live preview and publishes when he's ready, so nothing goes live by accident.
The engineering problem specific to this one is weight. A page that is mostly photographs is a page that is mostly bytes, and the customers are on phones. So the page loads in the order a visitor reads it: the bathtub and the logo first, the rest of the gallery after the paint is dry. Nobody is waiting on a photo they haven't scrolled to yet.
He Runs It, and He Hasn't Called
Since handover the gallery and testimonials have been his to run, and he runs them. He hasn't needed me since. Not one call, not one 'how do I'. That was the design goal of the admin panel, and it's the only metric on this page.
Which is the same lesson as the last build, really. The site earns its keep the same way he does: show the work, and be there when someone looks.
The newest bathroom on the site should always be the last one he tiled
— Harry