Internal preview

Management console

This is the structure the live site already follows. Everything visible on the public pages comes from one typed content layer, so adding a real admin panel later means connecting a database and an editor — not redesigning the website.

Read-only preview · authentication not yet enabled

Content modules

ModuleRecordsManaged fields
Destinations14Name, province, area, hero image, description, highlights, activities, getting there, best time
Resorts & accommodation12Property name, type, capacity, facilities, photo gallery, supplier contact
Packages12Title, destination, nights, inclusions, exclusions, activities, gallery, featured flag
Pricing12From-price, price basis, seasonal rates, group tiers, currency
Photos36Upload, alt text, ordering, per-destination and per-package assignment
AvailabilityBlackout dates, seasonal windows, on-request flags per property
Special offers3Label, was-price, conditions, validity window, linked package
EnquiriesContact details, trip brief, source page, status, assigned consultant, quote history
Reviews6Guest name, location, package, rating, quote, publish toggle
Provinces9Name, blurb, towns, live/on-request flag

Live package inventory

PackageProvinceNightsFromOfferStatus
Swadini GetawayMpumalanga3R3 450Featured
Blyde Canyon EscapeMpumalanga2R4 290Midweek escarpment specialFeatured
Kruger Safari PackageMpumalanga3R8 950Featured
Durban Beach HolidayKwaZulu-Natal4R4 150Kids stay freeFeatured
Drakensberg Mountain RetreatKwaZulu-Natal3R5 250Published
Bela-Bela Family SplashLimpopo2R2 290Last-minute weekend ratePublished
Cape Town City & CoastWestern Cape4R9 750Featured
Dullstroom Fireside WeekendMpumalanga2R3 690Published
Dinokeng City SafariGauteng1R2 950Published
St Lucia Wetlands & Big FiveKwaZulu-Natal3R6 450Published
Magaliesburg Spa WeekendGauteng2R4 890Published
Winelands & WhalesWestern Cape3R11 250Published

Built to extend

Authentication & roles

Admin and consultant roles with server-side checks. The site already routes all writes through a single content layer, so gating is a drop-in.

Database-backed content

Every list on this site is served from one typed content module. Swapping it for loader data from a database needs no component changes.

Payments & POP tracking

Today payment is manual EFT to the Nedbank account published on /pay, with proof of payment sent on WhatsApp and reconciled by a consultant against each enquiry. The next step is logging POP receipt and deposit status per enquiry; card processing is intentionally not implemented.

Supplier & provider feeds

Rate and availability imports from resorts and lodges, mapped onto the same package shape.

Analytics & attribution

Which destination pages drive WhatsApp clicks and enquiries; cookie consent is already captured.

Integrations

WhatsApp Business API, email automation, calendar sync and accounting export.