James & The Site arrow_back All projects
Case 02 · Vendora

Luxury vending, reframed as a venue partnership.

A premium brand needed a site that doesn't sell machines. It sells a hospitality upgrade. Built around editorial scale, restrained motion, and a frictionless partner enquiry.

Client
Vendora
Sector
Hospitality · Retail
Scope
Brand site & enquiry flow
Stack
Vanilla HTML · CSS · Netlify
Timeline
4 days
Live
luxvendora.com ↗
Vendora site full-page screenshot
The Brief

Sell the partnership, not the machine.

Vendora places premium vending systems inside hotels, private members' clubs, and flagship retail spaces. The product photographs beautifully, but the offer isn't the machine: it's the hospitality upgrade. Guests notice; venues earn.

The brief was clear: make the site feel like the kind of publication a venue owner would want to be featured in. Editorial confidence. No stock imagery. A single, calm call to action.

"We install. We stock. You earn." This became the organising principle for every page on the site.
Design System

Typography as the primary surface.

Instead of leading with product photography, the hero leads with type, set at magazine scale, with tight optical tracking and a single muted accent colour. The product appears as you scroll, not before.

Type scale

Colour

A near-black ink over warm paper, with a single saturated accent reserved for calls to action. No gradients, no glassmorphism. Everything earns its pigment.

Interaction

Restrained motion that reinforces hierarchy.

Motion is there to guide attention, not perform. Three patterns do most of the work:

Under the Hood

Fast by design, not by accident.

Vendora is built with plain HTML, CSS, and a small amount of vanilla JavaScript. No frameworks, no build tools, nothing to maintain between updates. Every page is a static file served directly from Netlify's global CDN, which is a large part of why the performance scores are as high as they are. The partner enquiry form routes submissions straight to the client's inbox via Formspree, with no backend server required. Scroll-triggered animations run through the browser's native IntersectionObserver API, keeping the whole thing fast and self-contained. Fonts load without blocking the first paint, so the page arrives quickly on any connection.

Key decisions

Four decisions that shaped everything downstream.

The small calls you make in week one are the ones clients feel in year three.

01

No stock photography, ever.

All product and venue photography was shot in-situ. It made the build slower, but every image now says "this is real, not staged."

02

One-pass partner form.

Name, email, venue name, type, guest volume, and context: everything to qualify and respond in a single touch. No back-and-forth required.

03

Hand-rolled, no platform.

Built to own. No Wix, no Squarespace, no monthly fee. The client keeps the codebase and hosts for free.

04

Mobile is the primary composition.

Designed at 375px first. Every hero, every grid, every form scales up from there, never the other way around.

Outcome

A site that reads like a partnership proposal.

Partner enquiries now land in inbox with enough signal to reply in a sentence. No CRM glue, no lead-scoring, no platform lock-in.

Visit the live site arrow_outward
6
Fields qualify each lead in one pass
4d
From kickoff to launch
£0
Platform fees, ongoing
100%
Client owns the codebase
Performance

Google Core Web Vitals.

Mobile scores via Google PageSpeed Insights.

Metric Score
Performance score 97
LCP (Largest Contentful Paint) 1.2s
FCP (First Contentful Paint) 0.8s
CLS (Cumulative Layout Shift) 0.01
TBT (Total Blocking Time) 35ms

Measured on mobile · Google PageSpeed Insights

Other case studies

See all projects arrow_forward
Kasto Bali
Case 01

Kasto Bali

Retired a costly Wix site. Kept the staff in control.

Barnes Estates International
Case 03

Barnes Estates International

A real-estate portfolio that feels like a monograph.