Skip to content
Back to projects

CoperachApp

Snap the receipt. The app works out who owes whom.

I build and maintain CoperachApp, a shared-expense app for iPhone and Android. I own the architecture, the React Native client and the Node backend, and I built receipt-photo and voice capture on top of OpenAI. It ships on the App Store and Google Play, with its own download site.

coperachapp.com.mx
My role
Architecture, React Native app, backend and AI integration
Sector
Producto propio · App de finanzas
Scope
App móvil (iOS y Android) + Sitio web
iOS + Android
Platforms shipped
3
Split methods
3
Expense capture modes
4
Group types

Stack

  • React Native
  • TypeScript
  • Node.js
  • Express
  • Mongoose
  • MongoDB
  • OpenAI
  • Cloudflare R2
  • Resend

Screens

Screenshots from the live system.

App móvil

Inicio y balances

La pantalla del grupo muestra cuánto debes o cuánto te deben, y sugiere los pagos justos para que todos queden a mano.

App móvil

Captura inteligente con IA

Anota un gasto tomándole foto al ticket o dictándolo en voz alta, y pregúntale a Pesito cómo vas con tu dinero.

App móvil

Presupuestos y metas de ahorro

Presupuestos tuyos y del grupo para ver cómo vas, y metas de ahorro que puedes juntar entre varios.

App móvil

Pagos programados y a meses

Control de los pagos que se repiten cada mes y de las compras a meses, con calendario y recordatorios para no atrasarte.

App móvil

Comunidad y experiencia

Un recorrido inicial para entenderle rápido y un foro dentro de la app con publicaciones, novedades y logros.

Sitio web

Página para descargar la app desde App Store y Google Play, con sus funciones y ejemplos de uso.

The problem

When people split costs — roommates, couples, family, a trip — the ledger lives in phone notes and in the memory of whoever paid. Nobody is sure who owes what, and the awkward conversation shows up at the end of the month. I started from one design premise: the arithmetic was never the hard part. Typing in every purchase costs more effort than most people will spend, and an app that demands it stops getting opened. And shared spending doesn't end at a dinner halved — some payments come back every month, and some purchases are paid off in installments someone has to keep track of.

What I built

I built the app in React Native and TypeScript on a Node/Express backend with Mongoose and MongoDB. The core is the split engine: an expense can be divided evenly, by percentage or by exact amounts, and from the net balances the app doesn't list debt against debt — it returns the fewest payments that settle everyone. To cut the cost of entry I wired OpenAI into two paths: a photo of the receipt, which yields amount, merchant and category, and spoken dictation. Around that I shipped personal and group budgets, shared savings goals, scheduled and installment payments with their own calendar and reminders, household chores, onboarding, and an in-app forum. One codebase ships to both stores.

Technical decisions

  1. 01

    Minimum transfers, not a web of IOUs

    Instead of showing every pairwise debt, I compute net balances and derive the fewest payments that clear the group. That's the difference between a list nobody reads and an instruction people actually act on.

  2. 02

    One expense, three ways to split it

    Even shares, percentages or exact amounts, all resolved against a single data model. The real case isn't a dinner halved — it's rent split by percentage and a grocery run where everyone chipped in a different amount.

  3. 03

    Receipt-photo and voice capture on OpenAI

    Manual entry is where these apps die. I integrated OpenAI to read the receipt — amount, merchant, category — and to log an expense by speaking it; images go to Cloudflare R2, not the app server. Typing it in became the fallback, not the default path.

  4. 04

    Pesito: ask your spending in plain language

    An in-app assistant that answers spending questions and returns charts of where the money went, instead of making the user assemble the report themselves.

  5. 05

    Installments and recurring bills, modelled apart

    Payments that come back every month and purchases paid off in installments are modelled as commitments with their own calendar and reminders, rather than one-off expenses someone has to re-enter.

Next project

SmartChef

A recipe app that reads your grocery receipt, stocks your pantry and tracks the spend.