Next.js on Vercel
Catalogue, brand routes, and inquiry funnel as one deployment.
Client work

A catalogue and an introduction for an independent dealer whose inventory is quoted, never priced.
HL–004 · 2026 · Luxury retail · Web platform


An independent dealer selling watches and jewelry nationwide, with a client base built through professional sport. The business ran the way that business always has — a message, a call, a piece sourced for someone who already knew what they wanted. What it lacked was anywhere to send someone who had heard the name.
Six-figure inventory has to look credible online before anyone starts a conversation about it. But this business publishes no prices — every piece is quoted individually — and holds no authorized-dealer relationship to borrow trust from. A storefront would have been wrong twice: it promises a transaction the business does not offer, and flattens a relationship-led operation into a checkout.
Treat the site as a catalogue and an introduction rather than a shop. That single reframing settled everything downstream: if browsing has to feel complete without a price, the photography and the reference details carry the weight a price normally carries.
The second question was who arrives. Collectors come looking for a maison. Agents and managers arrive on behalf of someone else, and need a different conversation entirely.
Each manufacturer gets a route of its own rather than a filter on one index, so a collector arriving for a single brand lands somewhere composed for it. Agents and collectives get a section framed around representation rather than retail.
Inventory is photographed like editorial and the interface treats it that way. The inquiry funnel carries a type, so a link opens already framed as sourcing or selling — and the trademark notice is stated plainly in the legal pages rather than buried, because an independent dealer referencing protected brand names needs it there.

Each manufacturer is a section of its own, not a filter on one index.

The catalogue is edited in Sanity and read by the site, so a new piece goes live without a developer and without a deploy. Enquiries route through a pipeline that confirms receipt to the sender. Every route carries its own canonical URL and social image, so a brand section is indexed as a page in its own right.

One form, three framings — sourcing, selling, or general, without asking anyone to pick a department.
Several structured review rounds through staged deploys, working through navigation, catalogue presentation, and the wording of the inquiry. Most of what changed was language rather than layout — what to call a section, how much to say before asking for a message.
The business has an owned platform to send agents, clients, and collectors to directly. Six manufacturer sections give a collector a familiar way in. The catalogue is maintained by its owner without a developer. Enquiries arrive already typed by intent, route to the right conversation, and confirm themselves to the sender.