# Jamb

> We rebuilt Jamb on Sanity and Next.js, merging two legacy PHP sites into one calm catalogue without losing the SEO equity their antique and reproduction collections had built up.

**Published:** 2026-05-25 | **Updated:** 2026-07-23 | **Client:** Jamb | **Technologies:** Next.js, Sanity, Shopify, Vercel | **Services:** Brand, Web development, Migration
---

Jamb and Hawker Antiques had just merged when we picked up the project. Two PHP sites, 70+ duplicate meta descriptions, and a custom CMS where adding a furniture category meant hoping nothing else fell over. The catalogue runs from 18th-century Irish chimneypieces to six-figure antiques, the kind of stock collectors and interior designers wait years for. Most of it sells through enquiry rather than a cart. We worked with Toni Howarth and the [benweaver.eu](http://benweaver.eu) team to merge the two sites into one and rebuild the platform on Sanity, Next.js, and Shopify.

Jamb's catalogue runs on two flows. Some pieces sell through checkout, most still sell through enquiry. [Headless Shopify](/services/shopify) lets the same product record route to either, with variations (sizing, finish, edition) carrying through when there's a cart to render. The rest stays on the enquiry path the team has spent years tuning. For the homeware that carries stock, Shopify's Buy Button drops in beside the Sanity catalogue with no separate storefront and no second CMS. Adding or pulling a category takes minutes, and the rest of the site never has to know about it.

Ben Weaver led the creative direction. Our job was to tighten the lens in Figma so the designs survived the trip into code. We worked through every breakpoint from mobile, where Jamb's best photography has to carry the whole page, up to 5K iMacs where the marble grain in a chimneypiece needs to stay sharp at 1:1. The handoff to development was a spec. Every breakpoint and interaction was defined, not implied. The site's design intent doesn't drift between Figma and production.

Most rebuilds break somewhere in the URL space. Jamb had two URL spaces merging into one, decades of organic equity to keep, and antique-specific terms that rank slowly and stay ranked for years. Before launch we built a full sitemap spanning both legacy sites, mapped every page into the new one, and wired internal links through Sanity document references rather than hardcoded URLs, so a slug change in one place doesn't cascade into 404s anywhere else. After launch we watched Search Console and Vercel observability for even the smallest 4xx and 5xx errors, and shipped redirects the same day. Rankings held through the cutover.

jamb.co.uk launched with no drama. Hundreds of enquiries came through in the first week, and page loads stayed sub-second. Build times went from 30 minutes to three across 2,000+ pages, so the team can push changes without waiting on a developer. A wider [Shopify Connect](https://www.sanity.io/docs/apis-and-sdks/sanity-connect-for-shopify) roll-out is queued for the parts of the catalogue that suit a checkout flow, but there's no rewrite on the horizon.