All projects

Tranche

Shoppers buy now and pay in four installments; merchants get paid and see their orders. I built the whole thing: an Expo shopper app, a NestJS payments engine, and a Next.js merchant dashboard and staff console.

Role
Sole engineer
Year
2026
Stack
  • Expo
  • React Native
  • Redux Toolkit
  • NestJS
  • PostgreSQL
  • BullMQ
  • Paystack
  • Next.js
  • Turborepo

Context

Buy-now-pay-later is mostly a scheduling and money-movement problem. Every order turns into a set of installments that have to be charged on time, reminded before they're due, and reconciled exactly, without the app and the server ever disagreeing about what's owed.

What I built

A Turborepo with one shared contract package: TypeScript types, Zod schemas, and the installment-schedule and naira-formatting functions, used by the app, the web, and the API so they compute the same numbers. The NestJS API records money in a double-entry ledger, charges saved cards through Paystack, and schedules payment reminders on BullMQ. The Expo app opens Paystack's hosted checkout in an in-app browser session and returns through a deep link.

Details

  • Shopper app: catalog, pay-in-four plan picker with schedule preview, checkout, installment timeline, and early payment
  • Push reminders before each installment is due, through Expo notifications
  • Double-entry ledger in the payments engine, with Paystack for card charges and BullMQ for scheduled jobs
  • Next.js merchant dashboard, staff console, and marketing site sharing the same contract package
  • Docker images, a Render blueprint, and CI/CD for deployment

Status

Built end to end, with Docker and a Render blueprint configured for deployment.