Tea Country Holidays
Commercial travel booking platform and bespoke rate-management CMS
The Problem
The client operated manually with Excel sheets and static Word files. Generating personalized itineraries, updating rates for dozens of destinations, and managing packages caused extreme administrative lag and conversion drops.
The Solution
Built a custom database-driven travel CMS using Next.js and Supabase. Features a rate-calculation engine, an admin panel with PKCE OAuth authentication, and a Python ReportLab microservice that converts destination packets into client-ready PDFs dynamically.
Architecture & Flow
A serverless, edge-cached content model designed for fast load times and absolute data integrity.
Client Interaction
User views and builds custom vacation packets using Next.js server actions.
Authentication & Role Security
Admin modifies rate tables via PKCE OAuth validation.
Dynamic Processing
Python worker pulls from PostgreSQL database and generates customized, printable PDF packets.
Edge Caching
Assets cached on Vercel CDN, bringing First Contentful Paint down to 0.8s.
Key Challenges & Fixes
PDF Compilation Crash on Mobile Devices
Issue: Initial client-side PDF creation crashed low-memory mobile browsers due to complex image rendering.
Fix: Offloaded PDF compilation to a dedicated serverless Python API worker using ReportLab and cached the compiled outputs on S3 with signed URLs.
Rate Calculations Synchronization
Issue: Seasonal rates, transport multipliers, and room-occupancy matrices made query responses slow.
Fix: Denormalized rate tables with daily index caching and implemented PostgreSQL materialized views, cutting query durations from 1.2s to 15ms.
Impact & Metrics
Business Value
Empowered the travel agency to manage 94+ custom packages. Fully automated the itinerary packet assembly, reducing staff time per package from 45 minutes to 30 seconds. Attracted 250+ booking inquiries in the first month.