All projects

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.