ModernVet Web Booking (2026)

Built book.modernvet.co from an empty repository: a web booking app that lets pet owners book a vet appointment at a ModernVet clinic without installing the mobile app. The flow takes four steps (basic info, choose a slot, verify, confirmed) and is available in English and Indonesian.
Technical Implementation:
- Built the frontend with React, Vite, TanStack Query, Zustand, and Tailwind CSS
- Designed the booking flow around availability:
- Suggests the nearest clinic from the browser’s location
- Sorts vets by available slots and distance
- Prefetches upcoming availability in the background so the slot screen opens without waiting
- Re-checks the chosen slot before confirming, in case someone else booked it first
- Recognizes returning customers by phone number and verifies every booking with an OTP
- Protected the public flow with Cloudflare Turnstile and an API-key scheme on the backend endpoints
- Rolled out features and analytics behind LaunchDarkly flags, with Segment tracking switched on by flag
- Built the backend endpoints for the booking flow in the shared Node.js API
- Covered the flow with Playwright end-to-end tests

Delivery & Infrastructure:
- Set up the CI/CD pipeline with GitHub Actions: it builds a Docker image, pushes it to a container registry, and deploys it with Docker Compose
- Separate staging and production environments, with image tags per branch
Key Features:
- Book a vet appointment in four steps, no app install needed
- English and Indonesian language switcher
- Nearest-clinic suggestion and live vet availability
- OTP phone verification
- Booking summary on the confirmation screen
Booking is live at book.modernvet.co. It runs on the same backend as the ModernVet Pet Care App.