Logo Lanfrica

JBlizzard-sketch/gawa-bill-splitter

Domain:

digital infrastructure

Record type:

software
Creator:
JBl
Host:
Mobile-first Mpesa bill splitter for the Kenyan market — split bills, send STK push requests # Gawa — Split Bills, Send Mpesa > A mobile-first bill splitter built for the Kenyan market. Enter a bill, add friends' Mpesa numbers, and each person gets an STK push payment request instantly. --- ## Features - **Bill Splitting** — Equal, itemised, or custom splits across any number of people - **Mpesa STK Push** — Each participant gets a payment prompt sent directly to their phone - **Real-time Payment Status** — Track who has paid and who hasn't in one view - **Trip Expense Tracker** — Group multiple events under a trip (e.g. Mombasa Weekend) - **Recurring Bills** — Handle flatmate rent, utilities, and subscriptions on a schedule - **Activity Feed** — Full audit log of all splits, payments, and status changes - **Dashboard Analytics** — Outstanding amounts, collections, and active event counts --- ## Tech Stack | Layer | Technology | |---|---| | Frontend | React 18 + Vite, TypeScript, TailwindCSS, shadcn/ui | | Backend | Express 5, Node.js, TypeScript | | Database | PostgreSQL + Drizzle ORM | | API Contract | OpenAPI 3.0 → Orval codegen (React Query hooks + Zod schemas) | | Payments | Safaricom Daraja API (Mpesa STK Push) | | Monorepo | pnpm workspaces | --- ## Project Structure ``` . ├── artifacts/ │ ├── gawa/ # React + Vite frontend (serves at /) │ └── api-server/ # Express 5 API server (serves at /api) ├── lib/ │ ├── api-spec/ # OpenAPI spec + Orval codegen │ ├── api-client-react/ # Generated React Query hooks │ ├── api-zod/ # Generated Zod validation schemas │ └── db/ # Drizzle ORM schema + migrations └── scripts/ # Shared utility scripts ``` --- ## Database Schema | Table | Purpose | |---|---| | `events` | A bill-splitting event (e.g. dinner, rent) | | `participants` | People in an event with their share and payment status | | `bill_items` | Line items for itemised splits | | `payments` | Mpesa STK push records and their status | | `trips` | Groups of related eve …