Cruise Booking & Itinerary System
Modular booking engine for cruise discovery, cabin availability, deck plans, and ancillary upsells.
Overview
Cruise shoppers need rich discovery (route, dates, ship amenities) and trustworthy cabin availability. I implemented a search and booking experience that merges multiple data sources, handles edge cases, and keeps performance high on media-heavy pages.
Problems We Solved
Slow, image‑heavy itinerary pages increased bounce rates
Inconsistent cabin availability from upstream feeds
Search results lacked quality ranking (price, duration, ports)
Upsells and add‑ons were not surfaced at the right time
Approach
- Discovery and search quality
- Scoring by price per night, total duration, unique ports, and user prefs.
- Availability and consistency
- Reconciliation layer across supplier feeds; soft holds to prevent over‑sell.
- Media performance
- Progressive images via CDN + responsive
next/image; ship/deck lazy groups.
- Progressive images via CDN + responsive
- Upsells and UX
- Timed offers (beverage, Wi‑Fi, excursions) placed on decision points with clear value copy.
Reference Architecture
- Next.js (pages/app) for SSR + dynamic routes
- Node/TypeScript services for suppliers + reconciliation
- Redis caching; CDN for images and static data
- Queue workers for feed refresh and image processing
Outcomes
- 21–33% faster page loads on itinerary and deck pages
- 14% lift in search‑to‑details click‑through rate
- 9–12% increase in ancillary attach rate with context‑aware offers
Key Metrics
| Metric | Before | After | Delta |
|---|---|---|---|
| LCP (itinerary) | 3.2s | 2.3s | −28% |
| Search→Details CTR | 22% | 25% | +14% |
| Ancillary attach | 18% | 20–22% | +9–12% |
Delivery Timeline
- Discovery & modeling: 1 week
- MVP search + details + deck: 3–4 weeks
- Availability reconciliation + upsells: 2–3 weeks
Stack
- Next.js, Node/TypeScript
- Redis, Postgres, CDN images, queues
- OpenTelemetry, structured logs
Want a cruise booking flow that loads fast and sells more ancillaries? Let’s review your suppliers and current funnel metrics.
