Butee
Customers book stylists to come to them; payment is held in escrow until the booking is complete. Customer, stylist, and admin portals on one API.
- Role
- Sole engineer
- Year
- 2026
- Stack
- Next.js
- Redux Toolkit
- Node.js
- TypeORM
- MySQL
- Redis
- Socket.io
- Paystack
Context
Booking a stylist to your home needs trust in both directions: the customer pays before the work, and the stylist needs to know they'll be paid after. That made the product mostly a payments and disputes system with booking on top.
What I built
Next.js and Redux Toolkit portals against a Node.js and TypeORM API on MySQL. Payments go through Paystack into escrow, with wallet ledgers rather than direct transfers. Socket.io carries chat; Bull queues on Redis process notifications and payouts.
Details
- Escrow-held payments and wallet ledgers, released when a booking is confirmed complete
- Stylist onboarding with portfolio and KYC review
- Customer-stylist chat, plus a disputes and reporting flow
- Admin backoffice for bookings, escrow, payouts, KYC, and analytics
Status
Built over about five months, from schema to Docker and Railway deployment config.