
Book My Services
A home services marketplace built for scale.
7
Team size
3 mo
Duration
3
Applications
Next.js
Stack
Overview
Book My Services is a home services marketplace platform for the UK market — connecting homeowners with vetted cleaners and service technicians. The platform needed to support three distinct user types: customers booking services, technicians managing their jobs in the field, and admins overseeing the entire operation.
I was brought in as technical lead and architect, responsible for the full-stack direction across all three applications. The team of seven delivered the platform in three months.
The Challenge
Building a marketplace means building multiple products simultaneously — each with its own interaction model, performance requirements, and data needs — while keeping shared logic consistent and the codebase maintainable as the team scaled.
Core problems to solve
- Three separate applications needed to share types, validation logic, and UI components without duplicating code or drifting out of sync.
- Build times and developer experience had to stay fast across a growing monorepo as the team worked in parallel.
- Database schema changes needed to be coordinated carefully — a migration that broke one application could take down the entire platform.
Architecture Approach
The foundation was a Turborepo monorepo, which gave the team a single repository for all three applications with shared internal packages for types, validators, and UI components. Turbo's build pipeline handled caching and parallel execution, keeping CI fast and local builds predictable.
The backend was built with Express and PostgreSQL, with Prisma managing the data layer. Schema migrations were treated as a first-class concern — every change was reviewed for cross-application impact before being applied.
Redis and BullMQ handled background job processing for things like booking confirmations, notifications, and scheduled tasks. Stripe powered the payment layer end to end.
Key architectural decisions
- Shared TypeScript types and Zod validators in a common internal package, consumed by both frontend and backend — a single source of truth that eliminated a whole class of runtime bugs.
- Turbo's remote caching and task graph kept build times from growing as the repo expanded across three applications and multiple shared packages.
- Prisma migrations versioned and reviewed collaboratively, with a clear process for rolling back safely if a schema change had unintended effects.

The customer-facing booking experience — one of three applications in the platform
Execution
The three applications served very different users. The customer-facing web app focused on a fast, confident booking journey. The technician application was optimized for field use — quick to load, easy to action on mobile. The admin dashboard gave the operations team full visibility and control over the platform.
Leading a team of seven meant decisions needed to be clear and documented. Architecture choices were written up so engineers could work autonomously within agreed boundaries, and code reviews were used to enforce the shared conventions that kept the monorepo coherent.
Outcome
The platform launched in 2026 and is live at bookmyservices.co.uk. The monorepo architecture delivered what it was designed to — a codebase where three applications could evolve in parallel without stepping on each other, and where shared logic stayed consistent across the entire product.
"The architecture decisions made early on paid off throughout the entire build. The team delivered a platform we're genuinely proud to launch." — Product Owner, Book My Services