Cobrá al Día
Gym fees kept up to date, without chasing anyone

- 155
- database guard checks
- 85
- tests against the real server
- 3
- plans, from basic to full
A subscription-based collection system for gyms: every fee has its own reminder sequence, emails go out on their own, WhatsApp messages are written and ready to send with one tap, and each member has their own portal to pay with Mercado Pago, which credits the gym's account and closes the fee without anyone entering it. Around that, what a gym uses every day: front-desk check-in, each person's till, the due-date calendar, the month's finances with the fee measured against inflation, and importing members from the spreadsheet the gym already has.
The problem
At a gym, collecting fees is the owner's manual job: checking a spreadsheet, messaging each person who owes, noting who paid in cash and who by transfer, and at month-end not quite knowing how much is still outstanding. Chasing members is awkward, it gets put off, and a fee that isn't claimed in time is lost. On top of that, with inflation, the price set six months ago is no longer worth the same and nobody tells them.
The solution
The system knows what falls due each day and builds the reminders with the right amount — with the discount for paying early, with the late fee for paying late. Emails go out on their own; WhatsApp messages go out from the gym's own number with one tap, so the member talks to someone they know. Mercado Pago payments land straight in the gym's account and are confirmed by a signed notification the system checks against the API before marking the fee as paid. Each gym only sees its own data, and that's enforced by the database, not by the code of each screen.
The outcome
The owner opens the panel and sees how the month is going; what used to be an afternoon of messages is a list of taps.
Tech sheet
- Node.js
- PostgreSQL 18 · RLS
- Mercado Pago
- SMTP
- 2FA (TOTP)
- VPS · Docker
