Every group trip I've been on ends the same way: someone opens a spreadsheet, someone else says "I'll pay you back later", and two weeks later nobody remembers who paid for the Airbnb. Splitwise solves this, but its free tier now caps how many expenses you can add per day, and everyone in the group has to make an account.

So I built Parejo: https://getparejo.com

It's a small web app (works on any phone, installable as a PWA) for splitting trip and group costs. I'm Jacko, an indie maker from Mexico City, and this is one of a few small free apps I've shipped this month.

What it does

  • No sign-up. Open the page, create a group, add people, add expenses.
  • Unlimited expenses on the free plan.
  • Any currency. Pay dinner in euros and the hotel in dollars; it converts.
  • Fewest payments to settle up. Instead of everyone paying everyone, it works out a short list of "A pays B" transfers.
  • Share by link. Friends open the link and see the same balances, and can add their own expenses and merge them back.
  • WhatsApp-friendly summary image of who owes whom.
  • English and Spanish.

A few technical choices

No backend, no accounts. Groups live in your browser's localStorage, and receipt photos (a Pro feature) stay in IndexedDB on your device.

The whole group lives in the share link. The group is packed to compact JSON, compressed with deflate-raw (the browser's CompressionStream), base64url-encoded and put in the URL fragment (#g=...). Fragments are never sent to the server, so sharing a group doesn't upload anything. When a friend adds expenses and sends their link back, the two copies merge as a union by member/expense id, with tombstones for deletions.

Money in integer cents. Every amount is stored in cents, and splits allocate the leftover cent deterministically so balances always sum to exactly zero. The core money logic is a separate pure module with tests, including a fuzz test that generates 400 random groups and checks that every one settles to zero in at most n−1 transfers.

Settling up. It's a greedy match: sort debtors and creditors by amount and repeatedly pair the largest debtor with the largest creditor. Not provably minimal in every case (that's a hard problem), but it never needs more than n−1 payments and in practice it's what you'd do by hand.

Pricing (honest version)

Splitting is free with no limits. There's an optional one-time Trip Pass ($4.99) for one group or Lifetime ($14.99) that adds receipt photos, CSV/PDF export, custom categories and removes the "Made with Parejo" watermark on the summary image. No subscription.

Try it / tell me what's broken

https://getparejo.com (there's a "See an example" button if you just want to poke around).

I'd love feedback, especially on the settle-up screen and the share-link flow. What would make you switch from whatever your group uses now?