Skip to main content
Navigation
HomeTechnical ReferenceJournalGitHubGitHub
Sidebar — toggle document categories via the logo
Luke Stays — Short-Term Rental & Property Platform

Luke Stays — Short-Term Rental & Property Platform

September 7, 2023

Overview

Luke Stays is a comprehensive property platform that operates as three distinct portals within a single Next.js application. It combines short-term rental bookings (like Airbnb), a partner/landlord management portal, and a Dubai real estate marketplace — all powered by a serverless backend layer and headless WordPress blog.

The platform connects to a network of third-party services through Azure Functions: Uplisting for property management, Stripe for payments, PriceLabs for dynamic pricing, Superhog for guest verification, and Goyzer for property management, with ActiveCampaign driving a sophisticated CRM-based marketing engine.


Key Features

  • Three-in-one portal: Guests, Partners, and Dubai Real Estate all in a single Next.js app with URL-path routing
  • Full booking funnel: Multi-step pre-booking → calendar selection → guest details → payment → verification
  • Dynamic pricing: PriceLabs integration for real-time property pricing with seasonal adjustments
  • CRM-driven marketing: ActiveCampaign with abandoned cart recovery, booking confirmation lists, WiFi opt-in
  • Component-level i18n: 173 translation namespaces auto-translated via Google Cloud Translate at build
  • Mixed rendering: SSG for static pages, SSR for property detail pages
  • Legacy migration: 495-line redirect map handling old URL structure

Architecture

A serverless-proxy architecture — the Next.js frontend is the only service in this repository:

ServiceRole
www (Next.js)Three portals in one app — guests, partners, real estate
Azure FunctionsServerless proxy layer to Uplisting, Stripe, PriceLabs, Superhog, Goyzer
WordPressHeadless blog via GraphQL
ActiveCampaignCRM with 40+ per-city contact tags

No local database, no Next.js API routes for business logic — all backend operations go through Azure Functions which act as a secure proxy layer between the frontend and third-party services.


Frontend — Three Portals in One App

The Next.js application uses the Pages Router with MUI v5 and MUI X Pro components. It contains 143 components, 10 context providers, 10 custom hooks, and 24 type definition files — making it one of the largest CODATIVITY frontends.

Guests Portal (/guests)

The main booking experience — property search with Google Maps integration, a multi-step booking funnel (city → dates → guest details → season pricing → payment), Stripe checkout, and Superhog guest verification. Properties display dynamic pricing from PriceLabs and availability from Uplisting.

Partners Portal (/partners)

A landing-page-style experience for property owners and landlords covering franchise opportunities, the academy program, and listing management. Includes dedicated pages for landlord services, franchise partnerships, and trade stays.

Dubai Real Estate (/dubai-real-estate)

A property marketplace for the Dubai market with buying/renting guides, off-plan property listings, and real estate agent resources. Features dedicated hero sections, area guides, and financing process overviews.


Internationalization

The platform supports English and Russian through next-translate-plugin with 173 component-level translation namespaces. Google Cloud Translate auto-generates Russian translations at build time — ensuring every piece of content is available in both languages without manual translation overhead.


Backend — Azure Functions & Integrations

Eight Azure Functions serve as the serverless backend:

FunctionPurpose
GetUplistingDataProperty listings, details, and availability
GetPropertiesAggregated property data
GetCalendarReal-time availability calendars
CreateBookingBooking submission and confirmation
CreatePaymentIntentStripe payment intent creation
ProductPaymentHandlerAdditional product/service purchases
SuperhogHandlerGuest identity verification
GoyzerProperty management operations

This serverless architecture keeps credentials server-side (the frontend never sees Uplisting, Stripe, or Superhog API keys) while providing scalable, cost-efficient compute.


CRM-Powered Marketing

ActiveCampaign drives the marketing engine with 40+ per-city contact tags, abandoned cart recovery flows, booking confirmation email sequences, and WiFi opt-in campaigns. This allows highly targeted communication based on user location, booking stage, and property interest.


Tech Stack

LayerTechnology
FrontendNext.js (Pages Router), React, TypeScript, MUI v5, Emotion, SCSS
BackendAzure Functions (serverless proxy layer)
CMS / BlogWordPress (headless, GraphQL)
PaymentsStripe (payment intents, checkout sessions)
PMSUplisting (property management system)
PricingPriceLabs (dynamic pricing)
VerificationSuperhog (guest identity)
CRMActiveCampaign (email marketing, abandoned cart)
i18nnext-translate-plugin (EN/RU, 173 namespaces)