← Back to work
Demo ProjectLive

Azure Sands · Fitness & Cafe

A resort gym and a resort cafe are separate businesses, and a small operator usually ends up paying for a separate website and a separate back office for each one. The condotel already had a booking engine, a design system, and an admin dashboard. The question was whether two more products could share all of it instead of being built from scratch twice.

Azure Sands · Fitness & Cafe preview

Overview

Two venues added to the Azure Sands codebase, each with its own route group and layout so either can be demoed on its own. Azure Sands Fitness at /gym is a marketing site with a weekly class timetable and six membership tiers, and its sign up form drops a lead straight into a new, contacted, enrolled pipeline. Azure Sands Cafe at /cafe is a working food ordering system: 29 dishes across seven sections, a cart that survives a reload, and three ways to get the food. Both venues report into the admin dashboard the condotel already used.

My role

  • Two module builds (Next.js + TypeScript)
  • Cart, checkout & fulfillment logic
  • Kitchen board & membership pipeline

The problem

A resort gym and a resort cafe are separate businesses, and a small operator usually ends up paying for a separate website and a separate back office for each one. The condotel already had a booking engine, a design system, and an admin dashboard. The question was whether two more products could share all of it instead of being built from scratch twice.

What I built

  • Gym site with a 13 session weekly timetable
  • Membership sign ups with a new to enrolled pipeline
  • Cafe menu, cart & checkout with three fulfillment modes
  • Live order status page and a four column kitchen board

Tools used

  • Next.js
  • TypeScript
  • Supabase
  • Tailwind CSS

Challenges

  • Charging food to a room without inventing a second source of truth. The cafe calls the condotel's own booking lookup, so a room delivery can only exist against a stay that is real and still open.
  • Keeping three products in one repo from becoming three codebases. Content stays as plain arrays, each venue gets its own route group, and both venues reuse the demo store or Supabase switch the condotel already had.

Outcome

  • Two more products on the condotel's stack, sharing one design system and one admin dashboard
  • Membership sign ups get their own reference and move through new, contacted, enrolled, declined
  • Room service orders are checked against a real booking before the kitchen sees them, so cancelled and checked out stays are refused
  • The cart lives in the browser, so closing the tab does not lose the order
  • Guests follow their order on a status page while staff work the tickets on a kitchen board

Gallery

Project links

azure-condotel.vercel.app/gym

martejohnvincent13@gmail.com