Butee
A two-sided marketplace for home-service hairstyling: customers book, stylists get matched, and payments sit in escrow until the job is done.
The problem
Booking a home-service stylist needs trust in both directions: a customer paying before the work happens, and a stylist trusting they'll get paid after. That made this fundamentally a payments and dispute system with a booking flow wrapped around it.
Approach
I built customer, stylist, and admin portals on Next.js and Redux against a Node.js and TypeORM API, with escrow-based payments (Paystack, plus a dedicated escrow service) and wallet ledgers instead of direct transfers. Realtime chat runs over Socket.io, and Redis-backed queues handle notifications and payout processing.
What it does
- Escrow-held payments with wallet ledgers, released only once a booking is confirmed complete
- Stylist onboarding with portfolio and KYC review, service requests, and booking management
- In-app chat between customer and stylist, plus a disputes and reporting flow for when things go wrong
- An admin backoffice covering bookings, escrow, payouts, KYC review, and platform analytics
Where it stands
Built solo end to end, from schema to deployment tooling (Docker, Railway health checks and migrations), across roughly five months of active development.