Skip to content



Sanity & Next.js agency for e-commerce

Template storefronts flatten brands that trade on look and provenance. We build headless Shopify storefronts with Sanity and Next.js, so merchandising and editorial content live in one system and the front end is designed around the catalog.

What we build for e-commerce brands

Template storefronts flatten brands that trade on look and provenance, and they tend to assume every product sells the same way. Both assumptions break on the catalogs we get asked to build.

Jamb sell antique and reproduction chimneypieces, lighting and furniture, where most stock sells by enquiry rather than checkout. They came to us with two legacy PHP sites left over from the merger of Jamb and Hawker Antiques, 70 or more duplicate meta descriptions between them, and a custom CMS where adding a furniture category meant hoping nothing else fell over. We rebuilt on Sanity, Next.js and Shopify as one calm catalog, including the brand work and the merge, in three months.

Hungry Pumpkin needed the opposite call. Their existing platform was worth keeping, so we optimized it rather than replacing it, adding one-click checkouts and inventory management and moving them onto hosting that delivers near-perfect performance scores.

The stack behind these builds

Headless Shopify with Sanity and Next.js is the pairing we reach for when the brand matters as much as the checkout. Shopify handles the commerce it is good at, Sanity owns merchandising and editorial content in one place, and the front end gets designed around the catalog instead of around a theme.

That split is what makes mixed selling models possible. For Jamb, headless Shopify lets the same product record route to either a cart or an enquiry, with variations like sizing, finish and edition carrying through when there is a cart to render, while everything else stays on the enquiry path the team had spent years tuning.

Replacing the platform is not always the right call. Hungry Pumpkin kept their existing e-commerce setup and WordPress CMS, and the work went into checkout, inventory and hosting, with a set-and-forget maintenance plan and CMS training so their team manages products themselves.

What the work changed

Jamb's build times went from 30 minutes to three across more than 2,000 pages, so the team pushes changes without waiting on a developer. Page loads stayed sub-second after launch and hundreds of enquiries came through in the first week.

Rankings held through the cutover, which is the part that usually goes wrong when two sites merge into one. Before launch we built a full sitemap spanning both legacy sites and mapped every page into the new one, and we wired internal links through Sanity document references instead of hardcoded URLs, so a slug change cannot cascade into 404s. After launch we watched Search Console and Vercel observability and shipped redirects the same day.

Hungry Pumpkin earned a Travellers Choice award shortly after launch. Their team now updates content and manages products without coming back to us, which was the point of the CMS training.

Catalogs that do not fit a standard cart

Plenty of commerce does not end in a checkout button. Antiques sell once. Made-to-order pieces need a conversation. Trade and procurement buyers need a quote before anyone can approve a purchase. A standard cart handles none of these well, and bolting a contact form next to it is not the same as designing for it.

The approach that works is to keep one product record and let it route. Jamb's catalog sends a piece to a cart or to an enquiry depending on what it is, with variations rendering only where a cart exists. For Slingshot Bio's research catalog we went further: a researcher turns a basket into an itemized, branded PDF to send to a principal investigator or procurement, and the cart holds for weeks so they can return and check out once approval lands.

Both depend on the product being structured data rather than a hand-built page, which is also what keeps filtering fast as the catalog grows.

Case studies

Related posts



Related services



Common questions

E-commerce FAQs

What buyers ask us about E-commerce projects, answered from the work above

How long does a headless Shopify rebuild take?
Jamb took three months, covering the brand work, the merge of two legacy sites into one, and the rebuild on Sanity, Next.js and Shopify. Slingshot Bio's convergence of a WordPress marketing site and a separate Shopify store into one platform also ran three months from design through to launch.
What happens to our search rankings when two sites merge into one?
They held for Jamb. Before launch we built a full sitemap spanning both legacy sites and mapped every page into the new one, and wired internal links through Sanity document references rather than hardcoded URLs so a slug change cannot cascade into 404s. After launch we watched Search Console and Vercel observability and shipped redirects the same day.
Most of our stock sells by enquiry, not checkout. Does headless commerce still fit?
Yes, and it was the central design problem on Jamb. Headless Shopify lets the same product record route to either a cart or an enquiry, with variations like sizing, finish and edition carrying through when there is a cart to render. Everything else stays on the enquiry path the team had already spent years tuning.
Do we have to replace our current store?
Not always. Hungry Pumpkin's platform was worth keeping, so we optimized it instead, adding one-click checkouts and inventory management and moving them onto hosting with near-perfect performance scores. They also took WordPress CMS training so their team runs content and products without us.
How much faster does the site get to work with?
Jamb's build times dropped from 30 minutes to three across more than 2,000 pages, so the team pushes a change instead of queueing it behind a developer. Page loads stayed sub-second after launch, and hundreds of enquiries came through in the first week.

Work with us

Tell us what you're building and we'll show you how we'd approach it, grounded in the projects above.
Book a meeting