Amory.dev
All flights
Flight AA202Arrivals · Client work--:--
Destination

Chrishi Beach Club

A beach bar, restaurant, and villas at Cades Bay, Nevis, with a 360° walk-through of six luxury villas.

Status
LandedDelivered
Gate
Next.js
Route
Beach club site
Operator
Built for a client

Chrishi Beach Club is a beach bar, restaurant, and set of villas at Cades Bay on Nevis. I built it on Next.js 16 and React 19, with hand-rolled CSS, Neon Postgres through Drizzle, Resend for email, and Vercel for hosting.

Pages cover the restaurant and menus, the bar, six villas (Villa Olympia, Cades Bay Watch, The Lighthouse Suite, The Beach View Suite, The Guestroom Suite, and Tropicana Suite), water sports, vehicle rentals, events, Sunday Funday, citizenship, the club's story, and a reserve and contact page.

PassengersWho it's for

People looking at the club's restaurant, bar, villas, and events at Cades Bay, plus the club itself.

On boardWhat's inside

The club, page by page

Restaurant and menus, bar, six villas, water sports, vehicle rentals, events, Sunday Funday, citizenship, story, and reserve/contact.

360° tours

All six villas have a 360° tour, 36 rooms in all: Villa Olympia 7, Cades Bay Watch 7, The Lighthouse Suite 7, The Beach View Suite 7, The Guestroom Suite 5, and Tropicana Suite 3. The club has its own six-scene tour on the home page: entry, restaurant, bar, counter, popup, and roof.

SEO

Search metadata with JSON-LD, including the club's map pin.

Analytics

Google Analytics on the site.

EquipmentUnder the hood

Next.js 16React 19Hand-built WebGL 360° viewerHand-rolled CSSNeon Postgres (Drizzle)ResendVercelGoogle Analytics
Captain's notes

A 360° viewer I wrote by hand

The site has 360° tours of all six villas, 36 rooms in all, plus the beach club itself, which has its own six-scene tour on the home page.

The tours run on a viewer I wrote myself in WebGL, with no tour library. Each scene is a 4096×2048 equirectangular photo shot on an Insta360.

Doorway markers move you between rooms, and there are room tabs too. You can drag or use the arrow keys to look around, zoom with + and −, and go fullscreen, with a fallback for iOS Safari. If WebGL isn't available, it falls back to a flat panorama.

Flight logTimeline

LandedDelivered

Live at chrishibeach.com.

Like what you see?Get in touch

I'm open to full-time and contract roles, remote or on-island. Happy to walk through any of this on a call.

Check in