ModernVet Web Booking (2026)

ModernVet booking page with Basic Info, Choose Slot, Verify, and Confirmed steps above a phone number form

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

ModernVet booking page on a phone, with the step indicator, language switcher, and phone number form

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.