Skip to content
All work

Platform · 2026

Private

Cheers

A cash-first services marketplace with a worker-safety spine.

  • 49k+lines of TypeScript
  • 3marketplaces on one booking model
  • 5roles with distinct permissions

Overview

A Jamaica-wide open services marketplace running three interlocking models at once — a gig marketplace, a reverse marketplace where customers post budgets, and a ride marketplace where drivers counter-offer. Threaded through all three is a safety system: PIN-verified job starts, timed check-ins, a live map and an SOS path monitored from a staff safety desk.

The hard part

Three marketplaces that resolve into one booking

Gigs, job requests and rides are three different negotiation shapes — fixed price, budget-and-counter, and route-and-counter — but they all have to land on the same booking object with the same safety guarantees and the same money rules. Getting that convergence right meant the safety spine, the payout ledger and the review system could each be built once. The money model is genuinely awkward in a good way: it is cash-first, so workers keep what they collect and the platform fee is netted against their weekly payout, which means a cash-heavy week produces a negative payout the system has to represent honestly rather than hide.

What it does

  • Five roles with sub-roles, including a dedicated safety-monitor desk
  • SSE over ReadableStream as the realtime channel, since the deployment has no WebSocket path in route handlers
  • Cash-first payout ledger where a negative weekly payout is a first-class state
  • Access control layered as layout-level UX plus server-action guards for actual security
  • Documented codebase map, safety architecture and demo walkthrough kept current alongside the code

What it proves

  • Holding a large product surface coherent — this is the biggest codebase here
  • Modelling money and trust carefully, including the uncomfortable states
  • Writing documentation good enough for someone else to take over

Stack

  • Next.js 16
  • React 19
  • TypeScript
  • Drizzle
  • PostgreSQL
  • next-auth
  • Stripe
  • Web Push
  • Google Maps

Related