Case study
Tiem Tour
Tour search, filters, and custom itineraries — built to book without friction.
- Role
- Frontend Developer
- Period
- 06.2025 — 08.2025
- Stack
- WordPress + NextJS · REST API · ShadCn UI

Overview
Tiem Tour is a tour booking site for travelers exploring Ha Giang and nearby routes. Guests need to find trips fast, filter by real constraints, request custom itineraries, and pay with confidence — mostly on mobile.
The problem
01Tour operators often juggle Facebook inbox, spreadsheets, and a brochure-style site. Travelers bounce when they can't answer three questions quickly: where can I go, when is it available, and how do I book?
Tiem Tour needed a customer-facing experience that felt modern, while ops still managed content in a familiar CMS.
Approach
02I built a Next.js frontend on top of WordPress as a headless CMS:
- Custom post types + ACF for tours, pricing fields, and availability metadata
- REST API feeding listing, detail, and filter UIs
- Booking + inquiry forms with admin notifications
- OnePay for payment checkout
Key decisions
03- Filters first: destination, date, duration, and price — the real decision drivers
- Custom tour requests: a dedicated flow for trips that don't fit fixed packages
- WordPress for ops, Next.js for guests: admin comfort without a sluggish theme for customers
- Motion with restraint: GSAP/Swiper where they clarify hierarchy
Impact
Lab / shipping
LCP
1.4s
Mobile lab
Performance
96
Lighthouse
Live filters
4
Destination → price
Checkout rail
1
OnePay wired
Outcomes
Complete browse → filter → book/request loop on mobile and desktop
Ops update tours in WordPress without touching the frontend
Payment and inquiry paths wired for admin follow-up
Reusable headless booking pattern for later travel projects
Gallery
Technologies
- WordPress + NextJS
- REST API
- ShadCn UI
- Tailwind CSS
- GSAP
- Swiper
Want something in this vein — booking, headless CMS, or a travel storefront?

