1. ສະຖານະການລູກຄ້າ
ລູກຄ້າເປັນຜູ້ໃຫ້ບໍລິການທົວຣ໌ເກາະໃນແຂວງກະບີ່ ດຳເນີນກິດຈະການມາ 12 ປີ ມີເຮືອສະປີດໂບ໊ດ ແລະເຮືອຫາງຍາວໃນເຄືອຂ່າຍ ແຕ່ລະລຳຈຸໄດ້ 30 ບ່ອນນັ່ງ ແລ່ນ 2 trips/day ຄອບຄຸມເສັ້ນທາງ Phi Phi, Hong Islands, James Bond, 4 Islands ແລະ private charter
ກ່ອນເລີ່ມໂປຣເຈັກ ລະບົບຈອງຍັງເປັນ manual ປະສົມກັບ digital ແບບລູກຜີລູກຄົນ — paper booking ຕອນວອລ໌ກອິນທີ່ໜ້າຮ້ານ, WhatsApp ສຳລັບລູກຄ້າຕ່າງຊາດ, Line ສຳລັບຄົນໄທ, ແລະເວັບໄຊເກົ່າທີ່ເປັນ WordPress + WooCommerce ບັນຫາໃຫຍ່ຄື checkout dropoff rate ຂອງ direct booking ສູງເຖິງ 78% ເພາະ payment option ດຽວຄື bank transfer ທີ່ລູກຄ້າຕ່າງຊາດແທບບໍ່ມີໃຜຍອມໃຊ້
ໂຄງສ້າງລູກຄ້າ: ຄົນຈີນ 45%, ເອີຣົບຕາເວັນອອກ (ລັດເຊຍເປັນຫຼັກ) 25%, ໄທ 15%, ອື່ນໆ 15% — ເວັບເດີມຮອງຮັບພຽງພາສາອັງກິດ ແລະຄຳແປທີ່ເຮັດເອງດ້ວຍ Google Translate ເຮັດໃຫ້ຜູ້ໃຊ້ຕີຄວາມຜິດເລື່ອງສິ່ງທີ່ລວມຢູ່ໃນແພັກເກັດເລື້ອຍຄັ້ງ
ຕອນນີ້ revenue 70% ມາຈາກ OTA platforms (Klook, GetYourGuide, Viator) ເຊິ່ງຫັກຄ່າຄອມ 18-25% ເຮັດໃຫ້ margin ບາງລົງເລື້ອຍໆ ເປົ້າໝາຍຂອງໂປຣເຈັກຄື ເພີ່ມ direct booking 400%+ ພາຍໃນ 6 ເດືອນ ແລະຫຼຸດສັດສ່ວນ OTA dependency ລົງໃຫ້ເຫຼືອບໍ່ເກີນ 40% ຂອງ revenue
2. ເຫດໃດ solution ທົ່ວໄປບໍ່ work
ພວກເຮົາເລີ່ມຈາກປະເມີນ off-the-shelf solutions ກ່ອນ ເພາະລູກຄ້າບໍ່ຢາກລົງທຶນ custom development ຖ້າຊື້ SaaS ໄດ້
WooCommerce + multilingual plugins (WPML, Polylang) — ໃຊ້ງານຈິງແລ້ວ plugin ຕີ route ພາສາຜິດເລື້ອຍ ແລະ checkout flow ແຕກເມື່ອ currency switch ລະຫວ່າງ session ແມ່ນແຕ່ enterprise plan ກໍ່ບໍ່ໄດ້ແກ້ບັນຫາ core architecture ທີ່ WooCommerce ອອກແບບມາສຳລັບ retail ບໍ່ແມ່ນ booking
FareHarbor, Rezdy, Bokun — ຮອງຮັບ tour booking ດີ multi-currency ກໍ່ໂອເຄ ແຕ່ບໍ່ມີໂຕໃດຮອງຮັບ PromptPay QR ເຊິ່ງເປັນຊ່ອງທາງຫຼັກຂອງລູກຄ້າໄທ → ລູກຄ້າໄທຕ້ອງໂອນເງິນແລ້ວສົ່ງສະລິບ ບໍ່ instant
Multi-boat scheduling SaaS — ບໍ່ມີລະບົບໃດຮອງຮັບ business logic ຂອງ “boat shuffle” ທີ່ລູກຄ້າຕ້ອງໃຊ້ເລື້ອຍ ຄືເມື່ອເຮືອ B ມີບັນຫາ ຕ້ອງຍ້າຍລູກຄ້າໄປເຮືອ A ໂດຍອັດຕະໂນມັດ ພ້ອມສົ່ງ notification ແຈ້ງກັບຕັນ ແລະລູກຄ້າທຸກລາຍ
ຈຶ່ງສະຫຼຸບວ່າຕ້ອງ custom build
3. ແນວທາງຂອງພວກເຮົາ
Tech stack: Next.js 14 (App Router) + Stripe + PromptPay QR generator (custom) + next-intl (i18n) + Prisma + PostgreSQL + Vercel Edge ສຳລັບ caching tour catalog ລະດັບ regional
Multi-currency: ໃຊ້ Stripe handle THB/USD/EUR/CNY/RUB native ໂດຍ locked exchange rate ຕອນ checkout ເລີ່ມ (ກັນ rate fluctuation ລະຫວ່າງທີ່ລູກຄ້າເລືອກ add-ons)
Custom vs SaaS — ເຫດຜົນທີ່ລູກຄ້າເລືອກ custom:
| ລາຍການ | SaaS (Bokun) | Custom |
|---|---|---|
| ປີທຳອິດ | $24,000 | $14,000 one-time |
| 5-year TCO | $120,000 | ~$20,000 |
| PromptPay | ບໍ່ມີ | ມີ |
| Boat shuffle logic | ບໍ່ມີ | ມີ |
| OTA webhook customization | ບໍ່ໄດ້ | ໄດ້ |
5-year TCO ຂອງ custom ຕໍ່າກວ່າ SaaS ເຖິງ 60%+ (custom = $14K one-time + $1.2K/year hosting × 5 = ~$20K)
4 Pillars ຂອງ architecture:
- i18n done right — 4 ພາສາ (TH/EN/CN/RU) lazy-loaded ຕາມ route ແລະ user locale, copy ທຸກບັນທັດຜ່ານ native translator (ບໍ່ແມ່ນ Google Translate)
- Real-time fleet sync — Postgres triggers + websocket subscription ເຮັດໃຫ້ availability update ໃນ <500ms ທຸກ client
- Multi-payment — Stripe (international cards + Apple/Google Pay), PromptPay QR (instant THB), bank transfer (fallback)
- Boat captain mobile PWA — offline-first ສຳລັບໃຊ້ເທິງເຮືອທີ່ບໍ່ມີສັນຍານ, sync ເມື່ອກັບເຂົ້າຝັ່ງ
4. ອາທິດຕໍ່ອາທິດ
Week 1-2: Discovery
- ສຳພາດ owner, GM, boat captains 2 ຄົນ, admin 1 ຄົນ ເພື່ອ map workflow ຈິງ
- Database schema design 22 tables ຄອບຄຸມ boat schedule, captain shift, tour package, customer, payment, refund, OTA sync log
Week 3-5: Backend API
- Booking flow API ພ້ອມ seat-lock mechanism (5 ນາທີ hold ລະຫວ່າງ checkout)
- Fleet availability engine: ເບິ່ງ conflicts real-time ຂ້າມເຮືອທັງເຄືອຂ່າຍ, ຮອງຮັບ boat shuffle
- Payment processors: Stripe integration + custom PromptPay QR generator + bank transfer reconciliation worker
Week 6-8: Customer Frontend
- Mobile-first booking UI (70% traffic ມາຈາກມືຖື)
- 4 langs lazy-loaded — initial bundle ພາສາດຽວ = 38KB
- Checkout flow: select tour → date → pax → add-ons → payment → confirmation
- Currency converter widget ສະແດງ real-time ແຕ່ lock rate ຕອນ checkout
Week 9-10: Admin Console
- Reservations console UI ພາສາໄທ (admin ໄທທັງໝົດ)
- Refund flow ຮອງຮັບ partial refund, weather cancellation
- OTA partner webhooks: Klook, GetYourGuide, Viator — inventory sync 2-way
Week 11-12: Captain Mobile PWA
- Offline-first ດ້ວຍ Service Worker + IndexedDB queue
- QR scan check-in (ລູກຄ້າສະແດງ booking QR ທີ່ທ່າເຮືອ)
- Weather-based cancellation flow: ກັບຕັນແຈ້ງ cancel → admin approve → ລະບົບ refund ອັດຕະໂນມັດ + ແຈ້ງລູກຄ້າ 4 ພາສາ
Week 13: Polish
- Native CN + RU translator review copy ທຸກບັນທັດ
- Accessibility audit (WCAG AA)
- Security review (OWASP Top 10 + PCI scope review)
Week 14: Soft Launch
- Gradual rollout: 10% → 50% → 100% over 5 days
- Training sessions: 2 ຄັ້ງສຳລັບ admin, 1 ຄັ້ງສຳລັບກັບຕັນ
- Post-launch monitoring 2 ອາທິດເຕັມ
5. ບັນຫາທີ່ພົບ
Stripe ໃນ Thailand: ຕອນ plan ຄັ້ງທຳອິດ Stripe ຍັງບໍ່ available ໃຫ້ກັບ TH-registered entities ໂດຍກົງ → ລູກຄ້າເລືອກໃຊ້ Stripe Atlas ເປີດບໍລິສັດໃນ Delaware ເພື່ອຮັບ international payments + ໃຊ້ PromptPay ສຳລັບ THB payments → tax setup ຊັບຊ້ອນກວ່າຄາດ ຕ້ອງປະສານທັງ Thai accountant + US CPA ສຳລັບ form 5472, ຕິດເວລາ compliance review ເພີ່ມ 2 ອາທິດ
Russian translation glossary: ລູກຄ້າລັດເຊຍຄຸ້ນກັບສັບ marine specific ເຊັ່ນ “Skiff” (ເຮືອນ້ອຍ), “Catamaran” — Google Translate ແປຜິດເປັນຄຳທີ່ບໍ່ມີໃຜໃຊ້ໃນວົງການ → ແກ້ດ້ວຍການສ້າງ glossary 80+ ຄຳສັບ ໃຫ້ native translator review ກ່ອນແປທັງໝົດ
Captain app ຄ້າງເທິງເຮືອ: ອາທິດທຳອິດຂອງ soft launch ມີ report ວ່າ captain app ຄ້າງເມື່ອຢູ່ກາງທະເລບໍ່ມີສັນຍານ → ແກ້ດ້ວຍ service worker + offline-first sync queue ທີ່ເຮັດວຽກເມື່ອ network ກັບມາ, ລວມເຖິງ pre-cache ຂໍ້ມູນ booking ຂອງມື້ນັ້ນທັງໝົດເມື່ອເຮືອອອກຈາກທ່າ
6. ຜົນຫຼັງ launch + ongoing
ເດືອນທີ 3:
- Direct booking +420% ທຽບ baseline
- OTA dependency ຫຼຸດຈາກ 70% ເຫຼືອ 35% ຂອງ revenue
- Average order value +25% ເພາະ multi-pax booking ງ່າຍຂຶ້ນ ແລະ add-ons (lunch upgrade, photographer) ເຮັດໃຫ້ຄົນຊື້ເພີ່ມ
ເດືອນທີ 6:
- Return customer rate 18% (ກ່ອນໜ້ານີ້ 4%) — ຜົນຈາກ email retargeting ຈາກ booking data ທີ່ເກັບເປັນ first-party
- ຂະຫຍາຍໄປເປີດ private charter booking flow (ລູກຄ້າ request ຫຼັງ launch)
Lessons learned:
- i18n ຕ້ອງລົງທຶນ native translator ບໍ່ມີທາງລັດ — Google Translate ເຮັດໃຫ້ສູນເສຍ credibility 100% ໂດຍສະເພາະກັບລູກຄ້າຈີນແລະລັດເຊຍທີ່ຈ່າຍແພງ
- Boat shuffle logic ເປັນສິ່ງທີ່ SaaS ບໍ່ມີທາງ cover ໄດ້ — operational reality ຂອງ tour operator ໄທຊັບຊ້ອນກວ່າມາດຕະຖານ Western tour ops
Ongoing:
- ດູແລລະບົບ + feature releases ທຸກໄຕມາດ ພາຍໃຕ້ quarterly retainer
- Roadmap: AI-driven dynamic pricing, group booking widget ສຳລັບ corporate clients, multi-property expansion (ລູກຄ້າມີແຜນເປີດ resort)