Skip to main content

กำลังโหลด...

Southern Whale
Free SEO Audit
Hospitality / Coastal Resort Nakhon Si Thammarat Web Development + Booking Engine + SEO + Direct Booking Funnel

Case Study: Pink Dolphin coastal resort direct-booking system in Nakhon Si Thammarat cuts OTA dependency 55% in 6 months

Boutique beachfront resort in Nakhon Si Thammarat province (client name withheld for confidentiality)

+1,850%
Organic Traffic
From 120 to 2,340 sessions/month within 6 months
+420%
Direct Booking
Rooms booked directly through the website
35%
OTA Dependency
Down from 78% to 35% of revenue
+THB 1.8M
Ancillary Revenue
Pink dolphin tour + airport transfer + spa package add-ons in month 6

The challenge

The boutique resort sits on the beach in Nakhon Si Thammarat province, only a few kilometers from the pink dolphin viewing pier in the same province. Average room rate THB 2,400-4,800/night, in business for 11 years. The owner is a Hong Konger married to a Nakhon Si local, intent on positioning the property as an “alternative” to the famous tourist destinations — quieter, cheaper, but still with world-class wow factor. The discovery call revealed 78% of revenue came from OTAs (Agoda 42%, Booking.com 28%, Expedia 8%) at an average 18% commission — meaning total annual commission was about THB 2.4 million. The owner was visibly frustrated, knowing that recovered money would fund a planned room renovation and a phase 2 spa addition.

Worse, the pink dolphin tour — the resort’s signature experience (70% of customers visit specifically to see the pink dolphins) — had no online booking flow. Customers had to LINE the front desk manager one-by-one to book a trip, send a transfer slip, and receive a text confirmation. Pink dolphin booking conversion was abysmal despite the high traffic interest. The same friction applied to airport transfers (the nearest airport is in Surat Thani — 1.5 hours by car), pushing many customers to Grab or public transit and costing the resort ancillary revenue.

The client had previously hired a freelancer to build a WordPress + WooCommerce site, used for 3 years. Problems: 4.8s mobile LCP, checkout flow breaking on language switches (TH/EN/CN) because the multilingual plugin didn’t fully integrate with WooCommerce. Measured checkout dropoff: 71%. Target with us: +400% direct booking within 6 months + tangible ancillary revenue growth from pink dolphin + airport transfer + spa packages.

Why the previous approach failed

WooCommerce is designed for retail product sales, not booking with complex business rules: room availability changing by date, package bundles where customers pick room + tour + transfer together, dynamic pricing for high/low season. All technically possible on WooCommerce, but only by stacking 8-12 plugins at combined annual licensing of USD 600-800 + broken Core Web Vitals from overlapping JS loads.

The SaaS booking engines popular with Thai resorts (Cloudbeds, Little Hotelier, eviivo) handle room booking well, but none support activity/tour bookings linked to room bookings in a single transaction — meaning customers had to check out twice (room + tour separately), an obvious conversion killer. Plus monthly licensing of THB 4,500-9,000 — for a mid-size resort 5-year TCO is THB 270,000-540,000.

Google Ads burned cash because “resort นครศรีธรรมราช” has low search volume. High-volume “pink dolphin tour thailand” carried high CPC and the old landing page converted under 0.5%. Facebook Ads aimed at the Hong Kong audience pulled CTR but no bookings — mobile checkout didn’t work.

The Southern Whale approach

After 2 discovery sessions with the owner and GM (husband and wife), we structured 4 pillars.

1) Astro migration + performance baseline — Chose Astro over WordPress for LCP <1.5s + zero JS by default + zero plugin attack surface. R2 hosted 320+ images of the resort + pink dolphins. Technical rationale at web development service.

2) Custom booking engine on Supabase — Built a booking flow combining room + pink dolphin tour + airport transfer in a single transaction using Supabase (Postgres + Auth + Realtime), 70% cheaper than SaaS (5-year TCO ~THB 90,000 vs SaaS THB 400,000+), with real-time fleet sync across tour boats to prevent overbooking.

3) Pink dolphin tour widget — Designed a widget embeddable on any page + team email signatures, showing available slots + booking in a single click. Schema markup for TouristAttraction + Trip to qualify for Google Rich Results.

4) Local content + Mandarin SEO — Since 35% of customers are Chinese/Hong Konger/Singaporean searching Baidu + Xiaohongshu for Chinese content, we built a Mandarin content hub of 8 launch articles on the province + pink dolphins (native Mandarin writer, not Google Translate).

The build (week-by-week)

Week 1-2: Discovery + database schema — Interviewed resort team + boat captain + spa manager to map operational workflow. Designed Postgres schema with 18 tables covering room, tour, transfer, package bundle, payment, refund, audit log. Keyword research on 180+ keywords across 4 clusters (direct booking TH, direct booking EN, Mandarin search, pink dolphin tour intent).

Week 3-5: Backend + booking engine — Built booking API on Supabase: 5-minute seat-lock, real-time fleet sync for tour boats via Postgres triggers + Supabase Realtime, payment processors Stripe + PromptPay QR (custom generator) + bank transfer reconciliation, email confirmation in 3 languages (TH/EN/ZH) via Resend.

Week 6-7: Frontend + migration — Migrated WordPress → Astro 28 pages, built conversion-first landing pages (hero booking checker + pink dolphin video background + sticky bottom bar on mobile), implemented i18n routing TH/EN/ZH + Cloudflare R2 with 1.2GB image library → 290MB after WebP conversion.

Week 8-9: Pink dolphin tour widget + add-ons — Built embeddable widget for any page + email signature, designed package bundle UI letting customers select room + tour + transfer + spa package in one step, built admin console for the front desk to manage bookings + cancel + refund.

Week 10-11: SEO + content + Schema — Wrote a content hub TH/EN/ZH 22 articles (8 ZH added) covering pink dolphin guide, Nakhon Si Thammarat itinerary, Wat Phra Mahathat day trip, southern Thai food guide. Implemented Schema markup for Hotel + TouristAttraction + Trip + FAQPage, optimized Google Business Profile + 30 local citations.

Week 12: QA + soft launch — End-to-end booking flow testing + payment gateway testing + load test (Locust simulating 500 concurrent users), accessibility audit WCAG AA, soft launch 5 days at 10% → 30% → 70% → 100%.

Post-launch we kicked off a 6-month retainer producing 3 articles/month + monitoring + weekly GBP posts + backlink outreach.

Obstacles + pivots

Problem 1: Pink dolphin schedule depends on tide + weather — In week 8 implementing the booking flow we hit a business-logic constraint not in the original spec — pink dolphin tours only run during high tide + good weather, and the boat captain confirms 1 day in advance. The system needed tentative bookings that could be confirmed/canceled later. We added a “tentative booking” status with auto-notify to customers 24h before trip + auto-refund on weather cancellation.

Problem 2: PromptPay slip reconciliation had high manual workload — First month post-launch, accounting was checking PromptPay slips against booking IDs one-by-one for 2-3 hours/day. We integrated Bangkok Bank’s Slip Verify API + auto-match to booking amount + booking ID, cutting workload 85%.

Problem 3: Month 3 Mandarin traffic below expectation — Despite native ZH writers, Baidu indexing in Thailand is slow (Baidu crawler IP blocks for TH hosting). Resolved by submitting sitemap directly via Baidu Webmaster + linking the resort’s Xiaohongshu (Little Red Book) account for traffic exchange. Six weeks post-implementation, Mandarin traffic was up 3.2x.

Post-launch + ongoing

Within 6 months post-launch organic traffic grew from 120 to 2,340 sessions/month (+1,850%), direct booking +420%, OTA dependency dropped from 78% to 35% of revenue, ancillary revenue (pink dolphin tour + airport transfer + spa package) added THB 1.8 million in month 6 — an entirely new revenue stream that previously didn’t exist.

Lessons learned: Resort + activity bundles processed in a single transaction is a “moat” generic SaaS booking engines can’t reach — for resorts with signature experiences, custom booking engine ROI is faster than expected. The resort recovered the new system’s CAPEX by month 8 from saved OTA commissions alone.

The client is now in retainer month 9 and started phase 2 — extending the booking system to support wedding venue (the resort has a private beach for beach weddings) + corporate retreat packages, with HubSpot CRM integration for B2B lead management. See Krabi tour booking system using a similar pattern or our software development service for other custom builds.

Have a similar project?

Free consultation · limited to 3–5 projects per month