Services booking marketplace
Marketplace for booking nanny services with vendor accounts, availability calendars, multi-point travel pricing and deep Zoho CRM integration.
A marketplace for booking nanny services in Vietnam and on the islands, with vendor accounts, deep Zoho CRM integration and pricing built around travel, not simple rent.
Task
The marketplace already ran on an existing architecture. It had to be scaled and refactored. Pricing was the core challenge of the domain: a booking is not a simple rental, it is travel with overnight stays, delivery to the location and transportation.
What I built
- Scaling and refactoring of the existing architecture.
- Custom theme and marketplace on Directorist, without Dokan.
- Vendor approach: personal accounts for nannies, who can work individually from their own account or organise an agency.
- Complex booking logic around available time: each nanny has a calendar that can be partly booked.
- Multi-point destinations: a nanny can be booked to be present and accompany at several points, from the base or travel position to others, depending on the time range built in the calendar.
- Service price calculation by base position, travel position, extra night for accommodation and delivery.
- Deep integration with Zoho CRM.
- Integration with the mobile app.
- Payment systems.
- Dockerized platform hosted on DigitalOcean.
- Meta Pixel, chatbots and other marketing tracking.
- React application for multi-step search, with search data saved for analytics.
- Gutenberg blocks.
- English as the single language for an international audience, though the services are provided in Vietnam and on the islands.
How it went
The hardest part was available time. Each nanny has her own calendar, partly booked, and a booking can span several points and travel, overnight stays and transfers. Availability and price had to be calculated correctly from all of them.
The other challenge was situational high load from scraping and DoS attacks. The niche is competitive, and competitors at times try to overload the platform, so it had to stay up and protected.

